改进YOLOv4-tiny网络的狭小空间目标检测方法

2022-05-19 13:30王长清贺坤宇
计算机工程与应用 2022年10期
关键词:卷积特征融合

王长清,贺坤宇,蒋 帅

河南师范大学 电子与电气工程学院,河南 新乡 453007

狭小空间目标检测是计算机视觉的特殊应用任务之一,在禁入目标管控识别[1]、人流量智能统计[2]、异常行为检测[3]等方面具有广泛的应用价值。狭小空间是受到光线、角度和内部结构等因素影响较小的单一背景场景,其难点在于面临多目标之间相互遮挡和摄像头取景不完整等因素影响时,传统轻量级算法的检测结果存在大量漏检和虚检,因此实现狭小空间遮挡目标轻量级检测算法具有重要的研究意义。

传统目标检测依赖人工特征提取,并通过支持向量机(support vector machine,SVM)[4]等分类器完成检测任务[5],其识别过程较为复杂且主观性强,对遮挡显著区域不敏感,在检测精度与速度均衡性和鲁棒性方面表现较差。现阶段,随着卷积神经网络(convolutional neural network,CNN)[6]的不断发展,端对端的思路被应用到目标检测算法中,其中典型算法有SSD[7]和YOLO系列[8-9]等。这类算法将分类过程与回归网络合并为一个阶段进行,在检测精度与速度的均衡性方面有着明显的提升,适合部署在移动端进行狭小空间目标检测。王新国等[10]提出一种融合ECA注意力机制的YOLOv4-tiny网络,在狭小空间行人检测数据集中准确率达到84.12%。李海滨等[11]将候选框融合网络PRN(partial residual network)融入YOLOv4-tiny颈部位置,完成对狭小空间的四种粉尘检测,准确率达到81.27%。华志超等[12]提出一种YOLO网络与HOG特征结合的检测方法,将狭小电梯场景中禁入目标的正确识别率提高至89.02%。王琳等[13]针对狭小场景中行人检测,提出一种引入金字塔池化模型的YOLO_PPM网络,能够充分融合上下文语义信息,检测精度明显提升。

现有的基于YOLOv4-tiny网络的算法在狭小空间中取得良好的检测性能,但也存在以下不足:(1)骨干网络过于轻量化,特征图在逐层传递过程中轮廓演化不足,无法在训练过程中有效地学习更多的遮挡目标特征。(2)颈部传统特征融合网络FPN(feature pyramid network)[14]过于简单,不同尺度特征图间融合效率低下,易丢失边缘细节信息。(3)传统IoU-NMS算法在后处理阶段具有局限性,易将重叠预测框误删,导致漏检。

针对存在的问题,以狭小场景中电梯轿厢、公共汽车车厢、客机机舱为主要研究场景,基于YOLOv4-tiny算法[15]提出一种自适应NMS的多尺度检测算法(YOLO adaptive-NMS based multi-scale feature fusion,YOLOAMF)。首先,通过骨干网络引入大尺度特征图优化策略(large-scale optimization strategy),形成更加细粒化的三种尺度有效特征层,增加模型对遮挡目标显著区域的关注度,学习更多遮挡细节特征,并引入改进的金字塔池化模型,聚合上下文信息扩增感受野;其次,颈部网络设计内嵌空间注意力的双路金字塔特征融合网络(coordinate attention based double feature pyramid network,CA-DFPN),在原始FPN结构上增加自下而上和跳跃连接两条融合通道,提升不同尺度间特征图利用率,减少边缘信息丢失问题;最后,在后处理阶段提出将预测框中心因子融入自适应NMS的判别方法,减少传统IoU-NMS算法对重叠目标框的误删,提高网络对遮挡目标的判别性。实验结果表明,YOLO-AMF算法面对狭小空间遮挡目标时检测精度与速度的均衡性优于常用轻量级算法,满足应用需求。

1 YOLO-AMF算法

基于YOLOv4-tiny算法,本文提出如图1所示的YOLO-AMF网络模型,由骨干网络、特征融合网络、检测头网络三部分组成,输入端为3通道RGB图像。首先通过改进的骨干网络中P3、P4、P5层将特征图尺度扩增为76×76、38×38、19×19进行关键信息提取;然后将3个不同尺度的特征图输入双路金字塔特征融合网络进行低、高层语义信息的特征融合,再将含有丰富语义信息的特征图输入检测头网络;最终通过改进的自适应NMS算法进行后处理阶段,其中密度估计模块(density subnet)[16]能够使训练模型感知场景密集程度,并融入预测框中心距离因子,自适应调整阈值对多余锚框进行筛选,得到目标预测框。

图1 YOLO-AMF网络结构图Fig.1 YOLO-AMF network structure diagram

1.1 改进的骨干网络

改进后的CSPDarknet53-tiny骨干网络如图2所示,由CBL卷积层(convolutional)、CSP Block、最大池化层、CSP_PPM池化金字塔四部分构成,原始网络的输出层是32倍和16倍下采样的两个比例尺寸特征图(P4、P5),感受野是作用于输入图像上的区域,网络越深感受野越大,低分辨率的深层特征图拥有更大的感受野检测大、中目标,高分辨率浅层特征图的感受野较小,边缘信息丰富,更适用于检测遮挡目标。

图2 改进的骨干网络Fig.2 Improved backbone network

针对遮挡目标具有显著区域较小的特点,原始网络只有P4、P5通道进行加强特征提取,易丢失大量边缘细节信息。改进的骨干网络中引入大尺度特征图优化策略和改进的金字塔池化模块,使网络捕捉更加细致的图像信息,通过提升输入图像分辨率,将输出特征尺寸由13×13、26×26改变为19×19、38×38。而相对输入图像为8倍下采样的第二个CSPNet结构[17]中包含更多遮挡细节特征,因此添加P3(76×76)细粒化检测分支,加强对浅层网络的学习能力,减少训练过程中浅层信息丢失。

针对特征提取过程中网络不断加深,导致实际网络感受野总有一定偏差,使网络无法有效融合全局特征,丢失特征信息问题,将CSPNet结构思想引入到金字塔池化模型(pyramid pooling module,PPM)[18],构成如图3所示的CSP_PPM池化网络,并加入骨干网络末端。采用聚合策略将1×1、2×2、3×3、6×6四种不同尺度的平均池化窗口作用于传入的高级语义信息,实现将丰富的高层次信息向低层次特征的映射,利用1×1卷积将池化后的4个特征图进行通道压缩,通过3×3卷积层的特征整合和跳跃连接通道,与未经过池化的特征图进行级联融合。最后将聚合各个区域有效上下文信息的特征图传入骨干网络的瓶颈层,网络加深的同时聚合浅层细节信息与高层语义信息,增强弱小遮挡目标的表征能力且不会带来性能损失。

图3 CSP_PPM结构Fig.3 CSP_PPM structure

1.2 改进的多尺度融合网络及自适应NMS算法

原始YOLOv4-tiny使用传统金字塔FPN结构为特征融合网络,该结构仅通过一条自上而下的融合路径进行高、底层特征信息的融合,会出现冗余信息过多,传递过程中易丢失浅层边缘信息的问题。

针对上述问题,提出如图4所示的双路金字塔特征融合网络CA-DFPN结构。在传统FPN结构基础上,引入两个融合节点,构建自上而下、自下而上和加入空间注意力的跳跃连接三条特征融合通道,并引入深度可分离卷积(depthwise separable convolution,DS Conv)[19]为下采样,改进模型在不增加额外计算量的同时拥有更有效的P3、P4、P5不同尺度间特征融合效果,融合后特征图包含更加丰富的底层细节信息与高级语义信息。

图4 CA-DFPN结构图Fig.4 CA-DFPN structure diagram

为防止遮挡目标信息在下采样过程中被噪声淹没导致特征信息的丢失,同时保证轻量化,采用3×3深度可分离卷积层代替普通3×3卷积层作为下采样。两种卷积层结构如图5所示,假设利用普通3×3卷积层将大小为H×W、维度为x的特征图像提取为维度y,计算量为9×x×y×H×W;深度可分离卷积将提取特征过程分解为深度卷积和逐点卷积,先使用C个3×3×1卷积核依次对H×W×C的图像进行单通道特征提取,再通过N个1×1×C卷积核对经过深度卷积的图像进行通道堆叠,计算量为9×x×H×W+x×y×H×W,计算量只有普通卷积层的1/9。通过批量归一化(batch normalization,BN)和LeakyReLU激活函数有效解决因DS Conv加深网络带来的梯度消失与爆炸现象。

图5 标准卷积层和深度可分离卷积层Fig.5 Standard convolutional layer and depth separable convolutional layer

针对检测过程中对遮挡目标显著区域注意力不足问题,将CA(coordinate attention)空间注意力机制[20]加入特征融合网络,在通道注意力基础上兼顾其位置关系,考虑跨纬度交互的重要性,使得网络模型对感兴趣目标的位置更加敏感和精准。注意力网络提取显著特征过程如图6所示。分别对特征图的水平、垂直方向进行全局平均池化,得到两个方向的聚合特征,通过级联融合和1×1卷积变换函数F进行特征变换;然后两个1×1卷积通过F h和F w变换函数,将整合在一起的特征图分解为两个通道数相等的特征图,通过sigmoid激活函数输出张量;最终经过特征整合得到显著性注意区域y c。

图6 CA注意力机制结构图Fig.6 CA attention mechanism structure diagram

其中,f表示特征图的中间映射,β表示非线性激活函数,z h、zw是垂直和水平上的位置信息;g h和g w表示经过sigmoid输出的两个通道数相同的特征图;xc表示跳跃连接上的特征信息。

原始YOLOv4-tiny网络后处理阶段采用传统IoUNMS算法,通过设置固定NMS阈值,对冗余锚框采用严格过滤方法,在遮挡严重的场景中因为不同目标框重叠面积(IoU)过大,易被视为同一目标,而将真实预测框去除,导致模型漏检。

针对后处理阶段存在问题,提出融合预测框中心距离因子的自适应NMS算法,并代替传统IoU-NMS。在回归网络最后一层引入密度估算分支,该结构由1×1、3×3卷积核与sigmoid激活函数组成,用来学习预测框中目标区域的密度,从而通过反馈的密度值自适应地调整NMS阈值大小,减少在遮挡场景因NMS阈值不匹配而导致的漏检。每个区域所映射的目标密集程度如式(4),首先计算真实框(ground true)M i与周围真实框M j的最大IoU值,以此表示该区域密度d i。真实框之间IoU值越大表示该区域密集程度大,此时将使用较大NMS阈值处理冗余锚框。动态阈值定义如式(5)所示:

其中,d x表示置信度最高候选框周围的密集程度,当密度得分高于所预先设置的阈值Nt时,则使用更高的N x阈值进行监督预测,否则使用预先设定的阈值。

经过动态NMS阈值的改进,模型能够自适应地判别复杂场景与稀疏场景,但传统IoU-NMS算法依赖固定的IoU值判断目标框之间的重叠情况具有一定的局限性。例如当目标框之间重叠面积相同时(IoU相等)或没有相交时(IoU=0),无法区分目标框之间相交姿态,此时传统IoU-NMS失效,于是引入目标框中心距离因子,计算如式(6),使目标间发生重叠时得到目标框此时的位置情况,预测框回归得更加准确,进一步降低漏检情况。DIoU-NMS可视化如图7所示。

图7 DIoU-NMS示意图Fig.7 Schematic diagram of DIoU-NMS

2 数据集和实验环境

2.1 实验环境

实验平台为Win10操作系统,CPU为Intel®CoreTMi5-7500 CPU@3.40 GHz,GPU为NVIDA GeForce RTX 2080TI,使用Pytorch1.6.0框架。

2.2 数据集制作

为实现轻量级狭小空间遮挡目标识别算法,共设置PASCAL VOC07+12公开数据集(包含训练集16 551张图片,测试集4 952张图片)和自制数据集两组数据集。

其中自制数据集共20 291张图片,由11 296张电梯轿厢和8 995张公共汽车车厢、客机机舱与自然场景的真实图片组成,包含四种不同场景,训练集和验证集按照7∶3划分,其中70%的图片具有目标相互遮挡或摄像头取景不完整的特点,能够有效防止训练中因狭小空间背景过于单一造成过拟合现象,并提升模型在通用狭小场景的泛化能力。数据集定义人(person)、电动车(electric-bicycle)、自行车(bicycle)三种检测类别,并设置婴儿车(baby carriage)、手推车(trolley)、家具(furniture)、货物(goods)、宠物(pet)等负样本提升模型鲁棒性。每张图片的标注面积与图片面积按照一定比例利用LabelImg软件标注,且图片长宽不超过3∶1,使得Kmeans++聚类算法可以计算出更加匹配的先验框(anchors box)尺寸,使预测框更加贴合目标。数据集所含样本见表1所示。

表1 数据集所含类别数量Table 1 Number of classes in dataset

由于狭小空间的大小具有不确定性,且摄像头取景高度变化很大,导致目标在图像中的占比大小具有差异性,使模型对不同尺寸目标的自适应能力下降,故在预处理阶段采用Mosaic数据增强[21]对数据集通过随机缩放、随机裁剪、随机分布的方式随机选取4张图片进行拼接,使训练集中大、中、小目标更加均匀,故数据集得到更多遮挡和不完整目标样本,模型训练更加鲁棒。数据增强后的部分数据集如图8所示。

图8 部分数据集Fig.8 Part of dataset

3 实验结果与分析

自制数据集以7∶3随机划分训练集与测试集,并设置多组消融实验,以验证每个改进策略对模型的效果,进而得到最优模型。同时为进一步验证算法性能方面的说服力,在PASCAL VOC07+12公开数据集上设置与目前最常用的几种轻量级算法的对比实验,通过比较评估参数平均检测精度(mAP)和检测速度(FPS)来对比算法的有效性。

3.1 评估参数

在评估过程中,目标是否被网络正确分类表示为T(true)或者F(false),目标本身是正类或负类表示为P(positive)或者N(negative)。TP为被正确检测的正类总数。TN表示被正确检测的负类总数。FP表示被误检的正类总数。FN表示被误检的负类总数。

其中,精确率(precision)表示网络检测的所有目标中为正类个数的比例,召回率(recall)表示网络检测的所有正类占数据集所有正类的比例。对于最终的评估结果,AP代表某一类别的综合评价,AP值越高代表单一类别精度越高。mAP是对整个网络水准的评估,C表示数据集所包含类类别数,c表示单个类别。

3.2 模型训练

实验均在以下参数设置中进行,输入图片为608×608;epoch为300轮;batch_size前70轮为128,后230轮为32,;learning_rate学习率前70轮为1E-3,后230轮为1E-4;momentum为随机梯度下降(stochastic gradient descent,SGD),根据梯度下降的程度对初始学习率进行动量减少,以达到更好的收敛结果,设置为0.9。训练过程Loss曲线如图9所示。

图9 训练损失曲线Fig.9 Training loss curve

随着epoch不断增加,Loss损失值在不断降低,训练进行到70轮后损失曲线趋于稳定,没有产生欠、过拟合现象,原始YOLOv4-tiny算法与改进算法的Loss值收敛于2.3和1.9左右,证明模型的识别精度在不断提高,YOLO-AMF算法各项超参数设置合理。

3.3 消融实验

消融实验是以YOLOv4-tiny为基准结合不同创新策略,在包含四种场景的自制数据集下进行训练和性能评估,在保证实时性的前提下,提高算法的识别精度。不同算法模型测试结果见表2所示。

表2 消融实验Table 2 Ablation experiment

表2对每项改进策略的有效性进行分析,从实验2~6可以看出每项改进模块均对模型有着不同程度的贡献。其中实验4引入CA-DFPN结构对网络贡献最大,mAP提高1.61个百分点。初始YOLOv4-tiny(实验1)的mAP值为94.23%,采用大尺度特征图优化策略后(实验2)的mAP值为94.72%,召回率提升1.30个百分点,表明引入该优化策略使模型加强对浅层细节信息的提取,使遮挡目标的训练更加深入;实验7在实验2的基础上在骨干网络瓶颈区加入CSP_PPM池化金字塔,mAP值和召回率比实验1提升1.03个百分点和2.37个百分点,可以看出CSP_PPM结构在扩大感受野的同时降低网络过深带来的感受野偏差,从而提高对特征图轮廓信息的表达效果;实验8在实验7的基础上引入双路金字塔特征融合网络,mAP值和召回率达到了96.33%和91.93%,相比于实验1提高了2.10个百分点和4.21个百分点,表明不同尺度间浅层细节信息和高级语义信息有着更优的融合效果,使特征图有更丰富的语义信息,从而提升对遮挡目标的检测。考虑到传统IoU-NMS算法的局限性,固定阈值法易将严重遮挡的目标删除,实验5引入动态NMS阈值法,mAP值和召回率均有提升,但仅根据传统IoU值判断相互重叠预测框位置,易导致回归过程中产生误差,故实验5、实验9检测效果提升不明显;实验10在实验9的自适应NMS算法中引入目标框中心位置影响因子,使预测框回归更加准确,mAP值和召回率比实验9高0.69个百分点和1.69个百分点,比实验1高3.06个百分点和6.17个百分点,进一步减少对遮挡重叠目标的漏检、虚检,且FPS保持87.9左右,表明模型仍有较高的检测速度,满足移动端实时检测。

图10展示了原始YOLOv4-tiny与消融实验中最优模型YOLO-AMF在真实电梯轿厢场景的检测效果对比。可以看出改进后的算法在面对目标较多且目标之间相互遮挡的情况下,能够有效地将原始算法所漏检的严重遮挡目标与图像取景不完整目标识别出来,明显提升对遮挡目标的检测能力,而且对目标重叠产生的大量冗余信息也有较好的消除作用,使预测框更加贴合目标,减少虚检现象。在第4张图中目标被非目标物体严重遮挡时也有较好的检测效果,进一步证明算法的鲁棒性较优。

图10 电梯轿厢场景测试对比Fig.10 Comparison of elevator car scene detection

为进一步验证最优模型YOLO-AMF在其他狭小场景中的检测能力,建立包含公共汽车车厢与客机机舱两个场景的测试集,如图11展示YOLOv4-tiny模型与YOLO-AMF模型在其他真实狭小场景的测试实验结果。前两行图片为飞机客舱场景,其中多数目标被座椅、口罩等非目标物体所遮挡,导致YOLOv4-tiny模型出现大量漏检现象,而改进后的模型能够快速分辨真实目标与非目标物体,减少漏检;后两行图片为公共汽车车厢场景,其中目标与目标之间的遮挡较为严重,导致YOLOv4-tiny模型产生虚检、漏检现象,而YOLO-AMF后处理阶段的动态NMS阈值能够降低目标框严重重叠被误删的情况,减少虚检、漏检现象。通过其他狭小场景测试实验可知,YOLO-AMF模型在不同狭小场景中均有着良好的泛化能力。

图11 其他狭小场景测试对比Fig.11 Comparison of other narrow scene detection

以上实验表明,对于实际的狭小空间目标检测而言,YOLO-AMF算法各项改进策略是有效的,能够检测到原算法的漏检、虚检目标且提高检测的精准度,同时具备轻量级算法检测速度快的特点,更高效地完成通用狭小场景遮挡目标检测任务。

3.4 PASCAL VOC数据集对比实验

为进一步验证算法的有效性,将YOLO-AMF算法与目前使用率最高的几类经典算法Faster RCNN、YOLOv4、MobileNet-SSD、YOLOv3-tiny、YOLOv4-tiny,在PASCAL VOC07+12公开数据集进行对比实验,实验结果见表3所示。

表3 对比实验Table 3 Comparative experiment

从表2可以看出,大型网络算法的优势在于检测精度高,例如使用Resnet50为主干网络的Faster RCNN二阶段算法和YOLOv4一阶段典型算法,平均检测精度分别达到了81.16%和89.03%,但模型体积过大,分别为522.9 MB和244.7 MB,导致难以部署到算力有限的移动端。改进后的YOLO-AMF与大型网络Faster RCNN在平均精度上相比也毫不逊色,仅落后0.39个百分点,模型体积只有其1/20。轻量级网络的优势在于检测速度和精度较为均衡,能够在移动端进行实时检测,但面对复杂场景时的检测效果较差,YOLO-AMF相比于MobileNet-SSD、YOLOv3-tiny和YOLOv4-tiny三种最常用的轻量化网络在mAP上分别提高了10.09个百分点、9.34个百分点和2.84个百分点,有着更高的检测精度,且符合实时检测的标准。YOLO-AMF与YOLOv4-tiny在PASCAL VOC数据集上mAP曲线对比图如图12所示。可以看出从各个类别的不同尺度目标上mAP均有明显提升,例如在小目标较多的pottedplant、boat、bird类别上分别提高了7个百分点、4个百分点、3个百分点,说明改进后的算法在面对遮挡目标和小目标较多的场景时有着更优秀的检测效果,进一步验证了改进后算法的有效性。

图12 YOLOv4-tiny和YOLO-AMF的mAP曲线对比Fig.12 Comparison of mAP curves of YOLOv4-tiny and YOLO-AMF

4 结束语

本文针对YOLOv4-tiny算法在狭小场景中遮挡目标检测方面的不足,基于YOLOV4-tiny算法,提出YOLOAMF算法,共进行三种可行的改进:(1)在骨干网络提出大尺度特征图优化策略和引入聚合策略的金字塔池化网络,使模型学习更多遮挡目标信息;(2)在特征融合网络提出轻型双路金字塔特征融合网络CA-DFPN结构,提高不同尺度间特征图的融合效率,增加丰富的边缘细节信息;(3)在后处理阶段提出动态NMS阈值结合目标中心位置信息的方法,使模型能够根据场景的复杂情况自动调整NMS阈值,防止对真实预测框的过滤,进一步提高检测精度。

实验表明,YOLO-AMF算法在PASCAL VOC07+12数据集和自建数据集中的mAP值分别提高2.84个百分点和3.06个百分点,达到80.77%和97.29%,且FPS保持在87.9,能够快速准确地检测出遮挡目标,为狭小空间目标检测的实际应用提供一种高效的检测方法。虽然算法精度有很大提升,但受限于主干网络的轻量化,在通用场景目标检测时,小目标检测精度仍低于大型网络,下一步将继续优化主干网络,扩充数据集,以适应通用场景的小目标检测。

猜你喜欢
卷积特征融合
根据方程特征选解法
离散型随机变量的分布列与数字特征
村企党建联建融合共赢
基于3D-Winograd的快速卷积算法设计及FPGA实现
融合菜
从创新出发,与高考数列相遇、融合
《融合》
卷积神经网络的分析与设计
从滤波器理解卷积
不忠诚的四个特征