面向智能仓储的特征融合物品检测算法*
2022-11-09袁庆霓孙睿彤衣君辉
白 欢,袁庆霓,王 晨,李 恒,孙睿彤,衣君辉
(贵州大学现代制造技术教育部重点实验室,贵阳 550025)
0 引言
随着图像识别、深度学习和大数据等技术的飞速发展,基于深度学习的物体识别与目标检测成为计算机领域中的两个研究热点,将物体识别与仓储货柜环境结合能提高查找物品的效率,节省仓储管理所需的人力与物力,对实现仓储管理的智能化和自动化的意义重大。在实际的仓储货柜应用场景中,物体种类繁多且差距较大,因此,货柜物品检测具有一定的挑战性。
目标检测是机器视觉领域中的研究重点,在红外探测技术、医疗诊断、行人检测以及工业检测中都有广泛应用[1]。近年来,研究者提出了很多出色的目标检测算法,如精度较高的Faster R-CNN[2]、Cascade RCNN[3]和速度较快的YOLO[4]、SSD[5]等,但是这些方法并没有同时兼顾精度和速度,并且在复杂环境下检测效果差。 在仓储货柜环境下的目标容易受到遮挡、光照、背景相似等因素的影响,因此特征提取比较困难,检测效果较差,究其主要原因是随着CNN不断加深,特征图感受野越大,提取出的特征信息越抽象,但同时也丢失大量的细节信息。针对上述问题,国内外学者作了大量的研究,LIU等[6]提出了一种基于Faster R-CNN的无人机检测方法,该模型在检测精度方面取得了不错的效果,但是受限于Faster R-CNN网络,该模型检测的实时性不好。LIU等[7]提出RFB(receptive field block)模块, 提高了检测精度,但是该算法直接从网络不同层提取不同尺度的特征进行独立预测,忽视了深层特征与浅层特征之间的关联性,因此小目标检测效果不好。LIN等[8]提出了一种金字塔似的逐级特征融合方法,该方法充分利用了深层网络的语义信息和浅层网络的细节信息,在目标检测中取得了较好的效果,但是由于这种逐级特征融合方式大大的增加了网络的计算量,网络运行速度受到了严重的影响,导致实时应用相当困难。姚群力等[9]提出一种端到端的多尺度特征融合目标检测算法,通过反卷积将深层特征与浅层特征进行融合,特征图信息得到了丰富,改善了小目标的检测效果,但是降低了检测速度。
因此,本文针对货柜环境(目标遮挡、背景相似、光照变化)下目标检测效果差的问题,提出一种特征融合物品检测算法,在满足实时性的前提下,提升算法对于小目标的检测精度,改进思路如下:①采用深层与浅层特征融合的思想,将Conv4_3层、Conv7层、Conv9_2层提取到的特征进行融合。②在特征图后添加通道注意力机制,让网络调整不同通道中重要特征的权重,提高模型性能。
1 RFBNet网络
1.1 RFBNet网络框架
RFBNet[7]是一种改进的SSD算法,保留了SSD网络的优点,如利用不同比例的默认框获取不同尺度的目标、多尺度特征图目标检测等,RFBNet最大的改进之处是在SSD网络中引入了RFB模块,即:将原SSD网络中的部分卷积层改为RFB模块,并在Conv4_3和Conv7层后分别接RFB-s和RFB结构。
1.2 RFB模块
RFB模块启发于人类视觉感知系统,由多个具有不同感受野的卷积核结合而成,不仅能扩大有效感受野,还能加强感受野中心的特征信息。RFB模块结构主要由多分支卷积层和空洞卷积组成,其结构如图1所示。
图1 RFB模型
(1)多分支卷积层。为了获取更好的特征表示,RFB模块使用不同尺寸的卷积核,并以inception的连接方式构成一个多分支网络。如图1a所示,RFB模块分别采用了1×1、3×3、5×5的卷积核,此外,为了防止网络层数过深而引起的梯度消失的问题,RFB模块还使用了残差网络中短接的连接方式。如图1b所示,RFB-s模块在RFB的基础上采用3×3的卷积核代替5×5的卷积核,并采用小卷积核串联的方式来代替大卷积核,如使用1×3和3×1的卷积核来代替一个3×3的卷积核,该操作不仅扩大了感受野,同时减少了参数量。
(2)空洞卷积。为了扩大感受野,RFB模块使用了大量的空洞卷积,空洞卷积是在标准卷积的基础上增加一个扩张率参数d,将卷积核扩张到相应的尺度中,同时在原卷积核中未被占用到的区域填充0,该操作可以在不增加参数计算量的前提下扩大卷积核感受野,并且感受野能呈指数级增长[10]。在空洞卷积中,扩张率越大,卷积核之间的空洞数量越多,感受野越大,如卷积核大小为3×3,d为1、2、3时感受野分别为3×3、5×5、7×7。因此可通过调整扩张率参数来扩大特征图感受野。空洞卷积核N和图像经过卷积后的特征图尺寸M的计算公式为:
(1)
式中,k为普通卷积核的尺寸;d为卷积核扩张率;W为输入图像尺寸;S为卷积步长;P为填充大小。如图1所示,RFB模块在每个标准卷积后都加入了空洞卷积。
2 特征融合物品检测算法
针对RFBNet网络存在目标定位精度不高的问题,本文借鉴浅层与深层特征融合与注意力机制的思想,提出一种特征融合的物品检测算法SFRFBNet。具体如下,首先采用双线性插值方法对Conv7、Conv9_2层特征图扩大到与Conv4_3特征图相同的尺寸,然后利用concat方式进行融合,最后,通过加入通道注意力机制让网络自动的重新分配特征通道权重来改善模型的性能,网络结构如图2所示。
图2 SFRFBNet网络结构图
2.1 特征融合
在检测目标时,不同卷积层所提取的特征图所包含的信息不一样,浅层特征图包含大量的细节信息,如纹理、边界等,而深层特征图细节信息少,但是语义信息丰富。因此,为了让模型能学习到更加丰富的特征信息,考虑到各个特征间并非独立的关系,本文将语义信息丰富的深层特征融入到细节信息丰富的浅层特征中以提升网络的特征提取能力。
相比于反卷积方法,双线性插值方法具有计算简单、速度快的优点,因此本文选用双线性插值法。首先将conv7层特征图扩大两倍得到尺寸为38×38的特征图,通道数为256个;将conv9_2层扩大8倍得到尺寸为40×40的特征图,再通过卷积核大小为3×3、通道数为256的卷积运算得到尺寸为38×38的特征图;将conv4_3层的特征图通道数由512个降为256个,不改变特征图的尺寸。最后,将上述3层得到的特征图通过叠加通道数的方式进行拼接,拼接后特征再经过通道数为512、卷积核大小为1×1的卷积运算及激活函数操作后得到新的融合特征。
2.2 注意力机制
HU等[11]提出一种网络结构SENet,该网络具有轻量化、泛化能力强、扩展性好的优点。SE模块采用了人类注意力的思想,会对感兴趣的区域进行重点关注,忽视或削弱其他区域。在神经网络中,SE模块表现为能学习到每个特征通道的重要程度,并根据重要程度对特征图的权重进行调整,通过提升重要特征权重,抑制次要特征权重,提高网络对特征信息的处理能力。SE模块的示意图如图3所示,Ftr表示神经网络中的卷积、池化等操作,网络的输入通道数为c1,经过一系列变换后得到通道数为c2的特征;首先是挤压(Fsq)操作,具体过程就是将输入为H×W×c2的特征通过全局平均池化操作变成1×1×c2的特征,该特征具有全局的感受野,用式(2)表示:
(2)
式中,H、W为特征图的高和宽;uc为特征图中的第c个通道;uc(i,j)为第c个通道中第i行、第j列的像素;zc为输出。其次是激励(Fex)操作,用于生成每个通道的权重,用式(3)表示:
s=Fex(z,w)=σ[W2δ(W1z)]
(3)
式中,z为挤压操作的输出;W1为全连接操作;δ为Relu激活函数;W2为全连接操作;σ为Sigmoid函数;s为输出。
最后注意(Fscale)操作,将激励输出的权重s分配到先前的通道上,用式(4)表示:
y=Fscale(uc,sc)=sc·uc
(4)
图3 SENet网络
式中,uc为特征中的第c个通道;sc为步长s中的第c个权重;y为输出。本文在Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2特征图后加入SE模块,其结构如图3所示,通过SE模块提升重要层的网络权重参数,降低次要层的网络权重参数,提升目标的检测效率。
3 实验及结果分析
3.1 实验环境
本文实验搭配的平台配置如下:CPU为Intel(R) Core(TM)i7-8700,GPU选用NVIDIA GeForce GTX 1080,操作系统为Windows10,深度学习框架为Tensorflow。
3.2 数据集
在仓储货柜物品检测领域,公开的数据集很少,本实验所采用数据集为自制数据集,选用仓储环境中常见的物品:水杯、螺丝刀、插线板、订书机、鼠标5类。通过不同光照强度、不同背景、不同角度、不同远近大小的情况拍摄图片,总共包含2768张图片,其中2491张作为训练集,277张作为测试集。由于水杯的形状差距较大,因此水杯的样本数多于其他种类的样本数,水杯样本数约2300个,其余种类样本数约1200个。图像使用labelimg进行标注。数据集图像来源实拍图片,由于实验拍摄的样本多样性少,因此通过网络图像以及数据增强提升样本的多样性,部分数据集如图4所示。
图4 部分数据集样例
3.3 模型训练
图5 不同模型训练过程中Loss、Valloss曲线图
因数据集数量小,训练时采用缩放、随机裁剪、明暗度变化等进行数据扩增,模型训练参数设置如下:使用Adam优化器进行训练,batch_size=16,初始学习率为0.001,动量参数为0.9,学习率下降因子为0.5,当3个epoch后模型性能没有得到优化后,减小学习率。模型训练过程中每个Epoch的loss、valloss下降曲线如图5中红线所示,随着迭代次数的增加,模型的损失值下降速度先快后慢,直到后期趋于平稳,训练出现早停现象,得到最优模型。
3.4 模型性能指标
在目标检测领域中,通过综合考虑平均精度均值(mAP)和每秒帧数(FPS)来评价模型的性能[12]。mAP是所有类别检测结果的平均精度(AP)的均值,AP值是指精准率(precision)与召回率(recall)曲线下的面积,precision与recall的计算表达式分别为:
(5)
式中,TP为检测正确分类的正样本数;FP为检测错误分类的负样本数;TP+FP为模型检测出的总目标数;TP+FN为真实目标数。
3.5 结果对比分析
为了验证模型的整体性能,设计了两类实验:①与经典算法对比,本文主要与SSD、RFBNet的训练过程和检测精度做对比;②消融实验,验证本文所提模型不同模块的有效性。
(1)与经典算法对比。为了验证模型的性能,将模型训练过程可视化,其结果如图5所示,其中,实线和虚线分别为模型训练过程中每个Epoch的loss、valloss下降曲线,红线为本文所提模型(SFRFBNet)训练损失曲线,蓝线为SSD网络损失曲线,绿线为RFBNet网络损失曲线,由图5知3个模型下降速度都是先快后慢,最终收敛,但是本文模型(红线)最终收敛值比其它两种模型值小,因此可以认为本文所提模型收敛效果更好。另外,图6给出了SSD、RFBNet和SFRFBNet模型的PR曲线图,由图6知SFRFBNet模型的PR曲线与坐标轴所围成的面积大于其它模型,这表明SEFRFB模型的检测精度高于其它模型。算法的实时性与模型的参数有关,表1给出了3种网络模型的基本组成、参数量、准确率和FPS,由表1知,相比SSD网络,SFRFBNet网络的参数量有少许增加,FPS也有轻微的下降,但是网络的整体性能有了很大的提升,mAP提高了9.53%。SFRFBNet网络与RFBNet网络在参数量和FPS上相差不大,但是SFRFBNet网络的mAP比RFBNet网络高了8.42%。
图6 SSD、RFBNet、SFRFBNet网络(从左到右)PR曲线
表1 网络模型参数量、准确率及实时性
(2)消融实验。为了验证SE模块、特征融合程度对算法性能的影响,本文设计了3个网络模型,模型组成如表2所示,其中模型1为SSD网络,模型2为RFBNet网络,模型3在RFBNet网络的特征提取层后添加了SE模块,模型4在RFBNet网络基础上将Conv4_3、Conv7、Conv9_2层特征进行融合得到,模型5则在RFBNet网络上同时进行特征融合和添加SE模块。用自制数据集对各种改进后的模型进行训练,训练完后将各类目标的准确率及平均准确率进行对比,其结果图7所示,由表2知,模型3在原模型RFBNet后添加了SE模块,模型的整体mAP从79.05%提升到83.94%,模型mAP提升了4.89%,这是因为在加入SE模块后网络能重点关注目标感兴趣的部分,提高网络检测效果;模型4在RFBNet的基础上将Conv4_3、Conv7、Conv9_2层特征进行融合得到,模型的mAP由79.05%提升至81.2%,模型mAP提升了2.15%,各个类别的AP均得到了提高,这是因为图像在经过多次卷积和池化以后会丢失大量的特征信息,导致深层网络中有效信息缺失,在检测时容易漏检,而特征之间融合程度越深越能提取出目标更多的细节信息;模型5以RFBNet为基础,增加了特征融合和SE模块两个模块,模型的mAP由79.05%提升至87.47%,模型mAP提升了8.42%,其中对于螺丝刀这种细长类的目标精度提升了14.05%。由于增加SE模块和特征融合模块需要额外的计算时间,因此检测速度有细微的下降,但是仍然满足是实时性。图8所示为RFBNet与SFRFBNet模型检测可视化结果对比图,由图8知,RFBNet模型的检测效果差,对细长类目标存在较多漏检和误检的情况,与之相比,SFRFBNet模型目标检测结果更加准确,对漏检和误检的情况有了明显的改善,并且对小目标、遮挡目标以及背景相似目标也能很好的检测出类别。
表2 不同模型组成
图7 不同网络模型检测结果
图8 RFBNet(上)与SFRFBNet(下)检测结果对比
4 结论
本文针对仓储货柜物品检测提出一种面向智能仓储的特征融合物品检测算法,在自制数据集上通过多个网络模型作了实验对比,可得以下结论:
(1)仅采用特征融合的网络mAP比RFBNet提高了2.15%;仅添加SE模块的网络mAP比RFBNet提高了4.89%;同时添加两种模块后网络能提取出的特征信息更丰富,重要特征的通道权重得到了提升,网络的mAP可达87.47%,比RFBNet提高了8.42%。
(2)相比RFBNet算法,本文所提的SFRFBNet算法提高了检测精度,并且在小目标、遮挡目标以及相似背景等复杂环境下取得了较好的效果。
(3)本文所提算法SFRFBNet在检测网络部分加入特征融合和SE模块后,增加了计算量,对网络运行速度有轻微的影响,但是能保证算法的实时性。
未来准备进一步扩展仓储物品数据集,并从网络轻量化方向进行优化研究,在保证精确度的前提下加快网络运行速度。