改进RetinaNet的轻量化工件检测算法研究

2022-11-20 13:57梅菠萍李林静
计算机工程与应用 2022年22期
关键词:工件卷积样本

梅菠萍,赵 皓,2,阳 珊,李林静,张 静,2,张 华

1.西南科技大学 信息工程学院,四川 绵阳 621010

2.中国科学技术大学 信息科学技术学院,合肥 230026

目标检测是计算机视觉领域中重要的研究方向之一,广泛应用于行人检测[1]、自动驾驶[2]、工业自动化检测[3]等场景。传统的目标检测方法主要基于手工特征与分类器[4-6],这类方法一般利用图像边缘、关键点等浅层特征进行稠密滑动窗口检测,由于手工特征的设计受限于设计者的经验且计算复杂度高,开发周期长,可扩展性低,不适宜用于多类别目标检测任务。近年来,得益于神经网络技术发展与计算能力提升,基于深度学习的目标检测方法被广泛应用于工业自动检测场景。刘信君等[7]改进RCF网络进行边缘检测,并提出BP神经网络拟合复杂非线性映射实现坐标映射。雷毅[8]基于深度学习算法进行工件目标的定位。洪奔奔[9]基于深度学习模型进行扁平工件的识别、定位与缺陷检测。基于深度学习的工件检测相比于传统方法更具任务扩展能力和环境适应能力,但深度学习模型通常参数量巨大,模型训练与推理时间较长,且对于硬件设备有较高的要求。

当前主流的目标检测方法根据检测流程主要分为以YOLO[10]、SSD[11]为代表的基于回归分析的一阶段检测算法和以R-CNN[12]系列为代表的基于候选区域的两阶段检测算法。两阶段检测算法流程分为候选区域的选取和候选区域的分类、回归两部分。而一阶段检测算法直接对分类及回归进行预测,降低了模型复杂度,提高了检测效率。根据是否生成候选区域又可将目标检测算法分为Anchor-based方法[11-12]和Anchor-free方法[13-14],主要差别在于是否通过预定义锚框进行目标回归与分类。通常前者相对后者检测精度更高,但牺牲了检测速度。Anchor-based检测算法在特征图像素点上预设不同尺度和比例的锚框以适应不同形状的目标,然而这种稠密采样方式所获取锚框集合中包含大量背景区域子集,因此造成了一阶段检测算法中的正负样本不平衡问题。文献[15]提出了FocalLoss算法,应用于密集场景下的目标检测,解决了正负样本不平衡的问题。但在算法后续计算损失及推理过程中,对大量锚框的筛选,增加了算法的时间复杂度,降低了检测速度。

为了保证检测精度的同时降低检测模型复杂度,本文基于一阶段Anchor-based目标检测算法RetinaNet[15]进行改进,提出一种轻量化的实时目标检测模型,以满足工业环境下多类别工件的实时准确检测。主要改进方面为:设计锚框引导采样算法,基于特征金字塔输出特征层类激活图,生成模型感兴趣区域掩码,对锚框进行预筛选,减少后处理阶段的锚框总数,降低算法时间复杂度;采用MobileNet-V2[16]替换RetinaNet检测模型中ResNet50[17]特征提取网络,减少模型整体参数量;引入FocalLoss的改进版损失函数GFocalLossV2[18]代替FocalLoss算法,实现分类及回归的联合表示,改善模型检测性能。

1 RetinaNet

RetinaNet作为典型Anchor-based的一阶段目标检测算法,具有如下特点:

(1)ResNet采用残差结构,在输入输出之间建立了一条关联通道,解决网络层数过深导致的梯度消失问题,越深的神经网络具有更强的特征表达能力,但也增加了大量的参数。

(2)采用FPN(feature pyramid network)[19]模块,输出5层不同strides的特征图,根据Anchor机制,在5层特征图上生成大量的候选锚框,实现对各尺度目标的检测。

(3)提出FocalLoss损失函数,改善了Anchor-based检测算法普遍面临的正负样本不平衡问题,检测精度得到了较大的提升。

2 GS-RetinaNet

随着卷积网络层数加深,模型参数呈指数级增加。Anchor-based的目标检测模型通过锚框稠密采样进一步加剧模型计算复杂度。为实现模型轻量化与实时检测,本文提出一种基于RetinaNet框架的轻量化实时目标检测模型GS-RetinaNet(guided-sampling RetinaNet)。网络结构如图1所示,输入图片I,通过MobileNet-V2骨干网络提取I的卷积特征C,获取其中的C3、C4、C5特征层构建P3~P7的特征金字塔(Pj表示不同金字塔层级,j表示特征图相对于输入图像的步长)。特征金字塔输出特征层P3~P7分别生成对应感兴趣区域掩码,并送入检测分支进行分类及回归预测。Anchor-based采样机制基于特征层P3~P7,以每个特征点为中心生成多种比例及尺寸的锚框进行采样。在检测分支中,利用引导采样掩码对锚框预筛选,并根据分类及回归结果对筛选后的锚框进行调整得到最终预测结果。

2.1 MobileNet-V2

MobileNet[20]作为典型的轻量化神经网络模型,可部署到移动设备和嵌入式设备。其基本单元是深度可分离卷积(depth wise separable convolution),通过PW(point wise convolution)和DW(depth wise convolution)顺序组合为特征提取网络。MobileNet-V2在此基础上结合残差结构的思想,提出了倒残差模块,解决模型过深导致的梯度消失问题,将检测模型设计得更深,提高了检测精度。

2.1.1 深度可分离卷积

深度可分离卷积包括DW和PW两部分,结构如图2(a)所示,DW采用3×3卷积核,卷积核个数与输入特征图通道数一致,即每个输入通道单独对应一个卷积核,PW采用1×1卷积核,用于将DW卷积后的特征图进行融合与维度变换。而常规3×3卷积输入通道共享一个卷积核,卷积核个数与输出通道数一致,如图2(b)所示。

深度可分离卷积将常规卷积操作拆解为两部分,大幅度减少了卷积计算量。设输入特征图尺寸为W×H,卷积核尺寸为Wk×Hk,P、S分别表示padding和strides,那么输出特征图尺寸Wout×Hout计算方式如下:

因此,单通道输入与单个卷积核的计算量为:

假设输入通道为Nin,输出通道为Nout,那么对于DW与PW,计算量表达式如下:

整理深度可分离卷积总计算量如下:

相对的,标准卷积计算量C表达式如下:

2.1.2 倒残差模块

在ResNet残差结构模块中,第一个1×1卷积层对输入特征进行降维,然后在低维空间通过3×3卷积提取特征,最后再经过1×1卷积层对输出进行维度扩张,保证输入输出通道数一致,进行shortcut。而倒残差模块是指在残差模块中对输入维度先进行扩增,在高维空间进行特征提取,输出时再降低维度,同时最后一层1×1卷积层输出不经过ReLu激活函数,以免破坏特征。如图3所示,倒残差模块有两种结构,DW卷积的步长为1,则在输入输出之间添加关联通道。

2.2 引导采样

RetinaNet采用稠密采样方式,在每个特征点位置生成3种尺度、3种比例组合的9个锚框,这种稠密采样的方式生成的锚框绝大部分为只包含背景区域的冗余样本。针对冗余样本的相关计算造成计算量损失。

为了减少冗余样本数量,降低模型计算量,提高检测效率,本文提出引导采样机制,如图4所示,对特征图像素点进行阈值分割,生成特征点位置对应掩码,过滤掉背景区域生成的锚框,使模型仅对重点区域进行预测。模板生成算法如算法1所示,首先计算每个FPN输出特征图通道维度的均值,并归一化,生成相应的类激活图,对比类激活图特征点值与均值大小,生成值为[-1,1]的模板,利用该模板对锚框进行筛选,保留模板值为1对应特征点位置的锚框。

算法1使用金字塔特征层生成掩码过滤锚框

输入:P={P3,P4,…,P7},P是金字塔输出特征层集合;A是生成的锚框。

输出:M,生成的模板;A′,筛选过后剩余的锚框。

1.P←∅

2.forpinPdo

3.p′←mean(p,dim=1)

4.p″←p′/max(p′)

5.m←where(p″>mean(p″))

6.M←m

7.end for

8.returnM

9.A′←A·M

2.3 GFocalLossV2

FocalLoss旨在解决一阶段检测算法中训练时的前景和背景即正样本、负样本类别极度不平衡问题。FocalLoss(FL)算法如下所示:

其中,y∈{0,1}表示二分类任务类别标签,p∈[0,1]表示类别预测结果y=1的概率。-lgpt表示标准的交叉熵损失(cross entropy loss function)。FocalLoss在标准交叉熵损失函数基础上乘以调节因子α与(1-pt)γ,参数α用于控制正负样本对总损失的共享权重,当减小α即降低负样本权重;(1-pt)γ用于在训练过程中降低易分类样本的权重,使模型更关注难分类样本。

GFocalLoss将FocalLoss从离散标签扩展到连续标签中得到相应的QFL(quality FocalLoss)损失函数,使用定位框质量估计得分作为分类分支的类别置信度,实现分类得分和质量估计的联合表示,并设计DFL(distribution FocalLoss)损失函数回归一个分布来对框进行建模。GFocalLoss能够实现对边界框的分布建模,对于清晰的边界,分布比较尖锐,模糊不清的边界分布平缓。基于这种特性,GFocalLossV2采用可学习到的检测框分布特征指导定位质量估计并对分类预测进行加权,如图5所示。

3 实验及结果

3.1 实验准备

3.1.1 工件数据集

本文自建多类别工件数据集,选择25类具有不同尺寸、比例的工件,设置一张图片中包含的工件种类及工件总数,采集不同复杂度的300张图片,利用LabelImg数据标注软件对图片进行Pascal VOC格式的标注。

为了适应生产环境中的光照、灰尘等图像质量影响因素,对数据集进行特性增广,包括照度变化、添加噪声、颜色抖动。最终数据集扩展至2 100张图像,增强后效果展示如图6所示,第1列为原图,第2至4列为增强算法随机组合得到的增强图片。

3.1.2 训练细节

全部实验均基于pytorch架构,在两块12 GB显存的NVIDIA GeForce GTX TiTan X GPU工作站进行训练。两个数据集皆选择随机梯度下降(stochastic gradient descent,SGD)作为优化器,训练batch_size=24,迭代次数epoch=30,初始学习率learn_rate=0.001,权重衰减为0.005,动量momentum=0.9,每张图像的尺寸大小resize为短边大于480,长边小于640的范围。

3.1.3 评估标准

本文模型使用mAP(mean average precision)作为模型性能评价指标,计算公式如下:

其中,C表示数据集类别数,c表示某一类别,P表示精度(precision),R表示召回率(recall),P与R计算公式如下:

其中,TP表示正样本分类为正样本,FP表示负样本分类为正样本,FN表示正样本分类为负样本,那么TP+FP即表示分类为正样本总数,TP+FN表示所有正样本数。

通过计算IOU(intersection over union)并设定阈值来判断分类结果是否正确,IOU计算公式如下:

其中,A、B分别表示标注框和模型预测框。

3.2 实验结果

3.2.1 对比实验

实验对比了6种典型的深度目标检测算法在Pascal VOC2007和自建工件数据集上的检测效果,包括YOLOV3[21]、SSD等 表现较好的检测模型及ATSS[22]、EfficientDet[23]等近年提出的检测模型。由表1和表2可以看出,本文改进RetinaNet模型,在VOC2007和WP数据集上分别可达到80.5%、99.5%的平均检测精度,检测速度分别提升到38.3 FPS,39.8 FPS,平均比RetinaNet快大约13 FPS,极大提升了检测速度,这表明本文方法能有效地提升深度学习目标检测模型的检测性能。

表1 Pascal数据集对比实验Table 1 Comparison experiment on Pascal dataset

表2 工件数据集对比实验Table 2 Comparison experiment on WP dataset

3.2.2 消融实验

本文对改进模块及算法在Pascal VOC2007测试集上分别进行了消融实验验证。如表3所示,利用MobileNet-V2作为骨干网络提取特征,有效减少了参数量和计算量,采用MobileNet-V2的模型参数量仅有1.1×107,相对于采用ResNet50减少了约2/3,且计算量仅4.72×109FLOPs(浮点运算数)。同时使用GFocalLossV2损失函数替换FocalLoss损失函数后,检测精度如表3所示,达到了82.5%的平均检测精度。

表3 模块消融实验Table 3 Ablation experiment

图7展示了模板的生成过程,前5行为Pascal数据集样本,后5行为WP数据集样本;第1列为原图,第2、3、4、5列为特征金字塔输出特征图可视化,第6、7、8、9列分别为对应金字塔特征层生成的引导采样模板。

为验证引导采样对减少冗余样本的有效性,如图8所示,选择金字塔特征层P4对引导采样后的锚框进行可视化,第1行为WP数据集样本,第2行为无引导采样时的锚框,第3行为引导采样后的锚框,可看出经过引导采样后,冗余锚框数量明显减少。

如图9所示,在两个数据集上,对使用引导采样前后的正负样本数量进行统计对比。由图可知,经过引导采样后负样本数量减少一半,正样本数量基本不变。并且由表3可以看出,采用引导采样算法后,相对于原始的RetinaNet算法,模型计算量降低了13.4%。

最终,使用本文模型对工件数据集部分测试图片检测结果如图10所示,可以看到,本文模型能够实现对多类别工件的准确检测。

4 结束语

本文对流水线多类别工件检测进行了研究,在RetinaNet检测模型的基础上,采用MobileNet-V2作为骨干网络,并设计了引导采样算法对锚框进行预筛选。在Pascal VOC0712和自制工件数据集WP上验证了模型的有效性,改进模块实验说明了引导采样算法的引入明显提升了模型的检测速度。同时根据表1、表2中所示两个数据集的检测精度变化,及图9中所示的两个数据集引导采样前后负样本量变化可以看出,引导采样算法对于简单背景情况下的检测效果有更大的提升。在后续的研究中,将进一步优化模型结构,提升检测精度,同时解决重叠情况下的目标检测问题。

猜你喜欢
工件卷积样本
带服务器的具有固定序列的平行专用机排序
带冲突约束两台平行专用机排序的一个改进算法
工业机器人视觉引导抓取工件的研究
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
用样本估计总体复习点拨
一类带特殊序约束的三台机流水作业排序问题
从滤波器理解卷积
规划·样本
基于傅里叶域卷积表示的目标跟踪算法