APP下载

密集堆叠下的高相似度木块横截面检测

2019-07-16魏文戈谭晓阳

智能系统学报 2019年4期
关键词:木块精度图像

魏文戈,谭晓阳

(1. 南京航空航天大学 计算机科学与技术学院,江苏 南京 211106; 2. 软件新技术与产业化协同创新中心,江苏南京 211106)

木材是林业主产物,对于人类生活起着重要的支持作用。实际生产过程中,工人们经常将木材制成横截面各异的矩形木块。木块横截面信息主要体现为木块横截面尺寸信息以及木块横截面数量信息。在木块交易时,往往通过木块横截面的数量信息直接决定总体售价;或根据木块横截面的尺寸信息来决定木块用途,进而间接影响售价。因此,木块的横截面信息尤为重要。然而由于木块往往被批量地密集堆叠,使得木块横截面之间的分布高度密集且缝隙极小;外观较相似、边界不明显,易导致漏检和误检;且拍摄时光照、亮度变化范围较大,进一步加大了检测难度,给有效检测木块横截面信息带来了较大的挑战。现有的目标检测算法[1-8]均不能很好地解决该问题。本文为此提出了Wood R-CNN模型,在模型损失函数和非极大值抑制算法上进行了改进以提升检测精度,同时简化网络结构并改进特征金字塔网络以保证检测速度。实验结果表明:该模型保证了较快的检测速度,且对密集程度、亮度、光照、纹理的变化具有良好的鲁棒性。

1 木块检测相关工作

目标检测作为计算机视觉领域的一个重要分支,一直是专家们研究的热点之一。然而,鉴于传统目标检测算法依赖人为设计特征的局限性,检测效果较差、算法较为复杂、且检测速度也较慢。因此传统目标检测算法并没有被广泛运用。

之后,基于深度学习的目标检测算法的出现在检测精度、检测速度和实现成本上均优于传统的目标检测算法。目标检测算法因此逐渐转向以深度学习为主流。其中最具有代表性的是RCNN系列[1-4]目标检测算法,此外还有SPP-Net[5]、SSD[6]、YOLO[7]以及 YOLO2[8]等经典算法。

1.1 R-CNN系列目标检测算法

R-CNN[1]网络是一种基于区域候选的卷积神经网络算法,是CNN在检测问题上的首次尝试。其通过提取一系列的区域候选框送入卷积神经网络,将检测问题转化为分类问题。R-CNN首先通过选择性搜索[9]算法,使用不同大小的滑动窗口来感受输入图像并生成候选区域。每张图像大概会生成近2k个候选区域。这些候选区域经过扭曲变换,统一缩放成相同尺寸的方形区域,并输入卷积神经网络,进行进一步的特征抽取。最后对各候选区域进行标签分类以达到目标检测的效果。

Fast R-CNN:为了省去R-CNN[1]算法中重叠区域被反复特征提取,Fast R-CNN[2]首先记录下选择性搜索所得的区间,并对整张输入图片进行卷积操作得到特征图,然后将先前记录的区间映射到特征图以生成各块候选区域。Fast R-CNN提出了RoIPooling[2]层结构以保证映射后的候选区域尺寸一致,并输入全连接层提取更高级的特征。最后将结果数据送入分类器和边界框回归器,前者用于识别候选区域的类别标签,后者用于微调边界框的坐标位置。

Faster R-CNN:为了改进Fast R-CNN[2]较为耗时的候选区域生成过程,Faster R-CNN[3]算法提出区域候选网络(RPN)[3],将区域候选功能块也交由CNN实现,提高了检测速度。通过该设计,区域候选网络可与Fast R-CNN共享前半部分的卷积提取结果。

Mask R-CNN:该算法在Faster R-CNN基础上并行添加了一个目标掩膜分支,用于对每一个候选区域预测目标掩膜。3个任务分支并行设计不仅简化了网络结构,也提升了灵活性便于做进一步修改。Mask R-CNN能够对图像中的目标精准地检测,并精细分割出每个实例。

1.2 木块检测领域

目前业界针对木块检测的研究主要集中于木块缺陷检测[10-16]、木块含水率检测[17]、木块年轮检测[18]、木块性质检测[19-22]、木块密度检测[23]及木块腐朽检测[24]等领域。

文献[10]通过超声波实现木块缺陷检测;文献[11]总结了木块缺陷的理论方法,指明接下来的发展方向;文献[12]将基于RGB彩色空间的木块图像作为一个整体,由四元数矩阵奇异值分解完成检测分析;文献[13]侧重研究木块无损检测;文献[14-16]将人工神经网络技术引入木块缺陷检测并取得较大影响;文献[17]首次在木材含水率检测中使用深度学习技术;文献[18-19]将图像处理技术应用于木块检测;文献[20]对模态分析技术进行研究,为木块检测提供新思路;文献[21-22]通过应力波技术及应力波传播模型实现木块检测;文献[23]研究了计算机断层扫描技术在木块密度检测上的可行性;文献[24]侧重对木材腐朽情况进行检测,该研究对后续的防治工作起到了辅助作用。

但目前业内并没有针对木材横截面检测这一特定任务的先行研究。本文创新性地设计并提出了Wood R-CNN网络模型,将深度学习成功运用到木块横截面检测中,在该复杂场景下通过卷积神经网络学得网络模型,实现了对木块横截面的有效检测。

2 Wood R-CNN模型设计

2.1 Wood R-CNN网络结构

如图1,Wood R-CNN分为以下3部分:

前半部分以ResNet-50[25]组合FPN[26]作为卷积神经网络结构的主体,对输入的图像进行了特征提取。

图 1 Wood R-CNN网络结构Fig. 1 Structure of Wood R-CNN

中间部分负责生成候选区域。由区域候选网络(RPN)[26]对得到的多层不同尺度的特征图进行候选区域提取,生成不同尺寸和形状的候选框(anchor)[3],同步进行类别评分和边界框回归。再根据结果通过剔除越界候选框和非极大值抑制算法(NMS)[27]来降低候选框数量。并将候选框映射回原图像得到对应区域,通过RoIAlign[4]结构将所有区域映射为相同尺寸。

后半部分负责分类和边框回归。主要为全连接层及互相平行的分类器和边框回归器,最终输出检测结果。

2.2 检测精度的提升

由于木块密集堆叠、木块横截面相似度高且边界不明显,因此对检测的精度和准度要求极高。然而现有的检测算法并不能很好地应对该挑战。目前主流的检测算法所设置的损失函数简单地将分类任务和检测任务按相同的权重进行分配,往往不够灵活;区域伸缩功能一般交由RoIPooling来实现,该结构基于最近邻插值,通过四舍五入来选取距离目标最近邻点进行填充,容易丢失较多的位置对称信息;非极大值抑制算法往往被设定较大的算法阈值以减少重叠,但并不适用于低重叠度的木块横截面检测问题。

若直接使用这些现有的检测算法,会不可避免地存在检测精度低和误检的情况。对此通过修改模型损失函数和改用RoIAlign进行RoI池化来提升检测准确率,并通过改进非极大值抑制算法来降低误检率。

2.2.1 损失函数的改进

在训练过程中,Faster R-CNN[3]针对感兴趣区域(RoI)和区域候选网络(RPN)设计的训练损失函数为

其中:

可以看出,该算法中分类损失和回归损失只是简单地按相同权重进行处理,这样的设计不利于边框准确率要求较高的检测任务。

Mask R-CNN[4]算法中3个任务平行,且同样为相同的权重分配。该算法设计的训练损失函数为

其中:

通过仔细分析问题需求并对比文献[3-4]的损失函数设计,考虑到具体的算法运用场景下的分类任务较简单但回归任务较难且精度要求较高,因此Wood R-CNN算法模型的重点在于其中的回归任务。重新设计了更具灵活性的损失函数计算式为

其中:

在实验中,发现该改进操作明显提升了模型算法的检测精度。

2.2.2 非极大值抑制算法的改进

非极大值抑制[27]算法用来选取邻域边界框中分数最高的边界框,并抑制那些分数较低的边界框,能有效去除边界框重叠现象,从而提升目标检测精度。该算法在Faster R-CNN和Mask R-CNN等目标检测算法中均有着广泛的运用。非极大值抑制的算法阈值在文献[3]中被设定为0.7,在文献[4]中被设定为0.5,并在常规数据集上取得了很好的去重效果。通过仔细观察木块横截面检测这一特定任务的检测对象图像样本特征,发现样本中的木块横截面实例重叠度较低,但是对漏检率较敏感。因此在Wood R-CNN中,新设定非极大值抑制的算法阈值为0.3。经过实验表明,这种改进在一定程度上减少了误检率,从而明显改善了最终的检测效果。

2.2.3 RoI池化的改进

RoIPooling结构在2015年于Fast R-CNN[3]论文中提出,其作用旨在替换掉R-CNN网络中的区域伸缩结构,使之满足在一次性特征抽取的情况下实现多目标检测。但RoIPooling结构使用的是最近邻插值算法,在调整特征图尺寸时存在缺陷,当出现缩放后坐标无法刚好为整数的特殊情况时,简单地通过四舍五入来处理,相当于直接选取距离目标位置最近的像素点而没有考虑空间对称性。文献[4]中发现了这种算法可能在一定范围内损失空间上的对称性,因此提出了RoIAlign[4],具体表现在将最近邻插值替换为了更合理的双线性插值。

考虑到具体的问题需求,通过仔细分析本文任务的数据集样本特性发现,由于木块密集堆叠、木块横截面相似度高且边界不明显,因此木块横截面检测得到的边界框必须具有很高的位置精确度。因此,Wood R-CNN受文献[4]启发,改用RoIAlign[4]结构以替代传统的RoIPooling[3]结构,保证了在池化感兴趣区域(RoI)的过程中不丢失位置对称信息,从而提高了模型算法的检测精度。

2.3 检测速度的提升

直接使用现有的目标检测算法,由于结构的复杂性,会不可避免地存在检测速度慢的问题。如何有效提升检测速度,是保证模型算法性能所需要克服的挑战。在Wood R-CNN中,通过简化网络结构和改进特征金字塔网络,成功地提升了模型算法的检测速度。

2.3.1 网络结构的简化

考虑到本任务针对木块横截面进行检测,主要提取的特征为木块横截面的自然纹理、轮廓等,属于比较低级的特征,因而并不需要太深的网络结构去提取过于高级的目标特征。但同时太浅的网络结构又无法满足该任务的高精度要求。基于这些考量,选择了ResNet-50[25]作为Wood RCNN前半部分的卷积神经网络主体,主要任务是进行图像的特征提取。相比ResNeXt-101[28]这种更深的网络结构,ResNet-50[25]可以在保证检测精度的同时,减少计算量和内存要求,并加快模型在训练时的收敛速度。

2.3.2 特征金字塔网络的改进

目标检测算法中,往往只在卷积结构提取的最后一层特征图上生成候选区域,该设计易造成小尺度目标的漏检。而特征金字塔网络(FPN)[26]则在多层不同尺度的特征图上进行生成候选区域的操作,充分降低了对小目标的漏检率。考虑到本任务图像样本中多为狭长形的小尺度目标,因此Wood R-CNN采用特征金字塔网络以生成候选区域。但在研究中发现,该结构生成的候选框数量过多且过密,计算量较大,影响了检测速度。所以本文在特征金字塔网络(RPN)上进行了改进。

特征金字塔的最低层级相对于图像具有4像素的跨度,因此候选框是每隔4个像素间隔进行一次创建。为了减少计算量同时降低内存负载,本文将滑窗移动步长改进为2,候选框的数量因此缩小到了原来的1/4,而检测精度并没有出现下降。由于减少了候选框数量所带来的计算量降低,算法检测速度明显加快。在一块8 GB显存的显卡上,Wood R-CNN对输入大小为1 024×1 024的木块横截面图片进行检测,检测速度相比改进前的模型平均提高了0.47 f/s。

2.4 实现细节

2.4.1 数据扩充

由于公共网络上未提供开源的木块横截面数据集,因此本文采用某木材厂提供的一批木块横截面拍摄图像作为数据集。但由于拍摄成本较高,图像数据数量有限。深度卷积神经网络需要大量有效数据来驱动模型的正常训练,否则往往会陷入过拟合的困境。通过仔细观察图像样本,注意到木块横截面多为轮廓简单且形状方正的长矩形,因此原图像经过翻转或抠取之后依然会符合该检测任务的常规数据特性。根据这一数据特性,本文采用了图像水平翻转、图像垂直翻转、图像水平垂直翻转、随机抠取和尺度变换等一系列数据扩充手段,成功地将图像样本数量扩充至原有数量的数倍,同时增加了训练样本的多样性。不仅可以很好地降低过拟合风险,也使模型性能得到一定程度上的提升。

2.4.2 数据标记

在标记过程中,通过标记工具记录图片中每个木块横截面实例4个角点的二维坐标并生成坐标列表,由该表可以生成该图片中每个木块横截面实例的边界框分布图。

2.4.3 实际训练

在实际训练过程中,将木块横截面图像数据集分为训练集、验证集及测试集,分配比例为8:1:1。由于该任务与Mask R-CNN的多目标检测任务具有一定的相似度,Wood R-CNN模型训练采用在Mask R-CNN已收敛的成熟模型上做进一步的迁移学习。学习率初始设置为0.002,经过10个训练周期降为0.000 2,30个周期后结束训练。

卷积神经网络输入原始图片,得到预测结果并与真实分布计算误差损失,对网络参数进行负反馈调节,引导神经网络学习到对木块横截面的特征提取能力和检测能力。

经过一定轮数训练,在最终的收敛模型上进行木块横截面检测的测试。测试结果表明Wood R-CNN模型在测试集上取得了较佳的木块横截面检测效果,验证了模型的有效性。

2.5 Wood R-CNN的扩展运用

由于Wood R-CNN网络模型具有较好的实用性,故其可在多个子任务场景下使用。例如,可以利用木块横截面检测算法的输出结果,实现对木块尺寸的测量。

具体方法为,先通过Wood R-CNN对木块图片进行横截面检测以得到每个边界框的尺寸数据,并乘上图片——实际场景比例尺,计算出真实场景下每个木块横截面的真实尺寸数据。

还可根据其他特定需求对输出的真实尺寸数据进行筛选,对于尺寸符合特定需求(例如宽度、高度大于指定阈值)的木块横截面实例进行单独输出,或加上星标以突出显示。

3 实验分析

3.1 检测效果对比实验

本文采用不同的目标检测算法,在相同数据集上进行同等训练,并对比模型的测试效果。具体地,选取了目前学界用于目标检测任务的主流网络模型Faster R-CNN和前沿网络模型Mask R-CNN,分别与本文提出的Wood R-CNN网络模型进行实验对比。在相同的图像样本训练集上进行训练,采用相同的超参数设置,各自训练了30个周期,并在相同的图像样本测试集上进行最终的检测效果对比。从图2可以看出,在木块横截面检测这一特定任务上,Wood R-CNN有着比Faster R-CNN、Mask R-CNN更好的检测效果及更低的漏检率。

图 2 不同网络结构下的检测结果Fig. 2 Test results under different network structures

3.2 算法性能对比实验

由于检测算法的性能主要取决于检测精度和检测速度,本文选取了业内用于目标检测任务的主流网络模型YOLO[7]、Faster R-CNN[3]及Mask RCNN[4],与本文的Wood R-CNN网络模型在木块横截面数据集上对比检测精度和检测速度,并选取AP(average precision)和FPS(frame per second)衡量算法精度和速度。经过实验,得到各检测算法在木块横截面数据集上的性能对比如表1。从表中可以看出,Wood R-CNN具有最高的检测精度和较快的检测速度,算法性能最优。

表 1 检测算法性能对比Table 1 Detection algorithm performance comparison

3.3 模型收敛对比试验

实验中还发现,Wood R-CNN相比Faster RCNN和Mask R-CNN能够更快地收敛。图3为模型收敛情况折线图,可以看出Wood R-CNN模型收敛速度快于Faster R-CNN和Mask R-CNN,意味着降低了模型训练成本,具有更好的实用性。

图 3 不同网络模型训练时的收敛情况Fig. 3 Convergence of training different network models

3.4 鲁棒性对比实验

在实际检测中,木块图像往往存在光照明暗程度不一、木块颜色各异等专有特性。为了保证模型算法的实用性,本文还额外设置了模型鲁棒性对比实验。经过仔细对比,发现在木块横截面检测这一任务下,Wood R-CNN网络模型相比Faster R-CNN和Mask R-CNN具有更好的鲁棒性。图4分别为光照不足情况下木块横截面检测效果对比图以及特殊颜色木块横截面检测效果对比图。可以看出,Wood R-CNN的鲁棒性优于Faster R-CNN以及Mask R-CNN,因而具有更好的泛化性能和更强的实用性。

图 4 检测算法的鲁棒性对比Fig. 4 Robust comparisons of detection algorithms

3.5 损失函数设定实验

考虑到密集堆叠下高相似度木块横截面检测这一任务的特殊性,灵活设计了损失函数,如式(7)~(9)。该损失函数对分类任务和检测任务灵活分配相应权重,使模型可以根据问题需求有所侧重地训练。

本文对λ1和λ2的设置进行了一系列实验,实验效果如图5。

图 5 权重损失函数实验Fig. 5 Weight loss function experiment

经过实验对比,设置λ1=1.0、λ2=2.0为损失函数最佳参数配置。从损失函数设定实验的对比结果可以看出,Wood R-CNN网络模型的损失函数改进对提升木块横截面检测精度具有关键性的作用。

通过以上一系列实验,可以看出,Wood RCNN在密集堆叠下的高相似度木块横截面检测这一任务上具有较高的检测精度和检测速度,同时兼具良好的鲁棒性和实用性,能切实解决实际生产过程中的木块横截面检测问题,节省人力成本,节约物力开销,有效提高生产率。

4 结束语

在密集堆叠下的高相似度木块横截面检测问题中,由于木块密集堆叠、木块横截面相似度极高且边界不明显,导致传统的检测算法不能有效地发挥作用。为此,本文设计了Wood R-CNN网络模型。通过改进模型损失函数和非极大值抑制算法来提升检测精度;简化网络结构和改进特征金字塔网络来保证检测速度。该模型结构简单高效。经过实验结果表明:在木块横截面数据集上,本文所提模型优于目前主流的目标检测算法,在检测精度和检测速度上均具有较好的表现。鉴于其良好的鲁棒性和实用性,可在实际生产过程中被广泛使用。

猜你喜欢

木块精度图像
热连轧机组粗轧机精度控制
浅析p-V图像中的两个疑难问题
巧用图像中的点、线、面解题
有趣的图像诗
超高精度计时器——原子钟
怎样数出小木块的个数
分析误差提精度
基于DSPIC33F微处理器的采集精度的提高
趣味数独等4则
错在哪里