轻量化卷积神经网络目标检测算法研究*

2022-04-22 13:30丁瑞敏田军委刘雪松李锦涛
西安工业大学学报 2022年2期
关键词:轻量化类别卷积

丁瑞敏,田军委,刘雪松,王 沁,李锦涛

(1.西安工业大学 机电工程学院,西安 710021;2.内蒙古北方重工业集团有限公司,包头 014033)

车间巡检机器人在巡检过程中需要对巡检路线中的障碍物进行快速目标检测判断,为后续机器人自动避障提供数据依据。传统的目标检测方法在设备正常运行时实时性与检测精度较差[1],因此研究一种实时性高、检测精度高的目标检测方法以适应嵌入式设备实际应用[2]。

近年来深度学习目标检测算法取得了长足的发展,但是由于卷积神经网络的设备资源占比大,并不适合直接在移动和嵌入式设备上运行[3-5]。其中,文献[6]中提出的R-CNN(Region-CNN,R-CNN)目标检测算法,区别于传统目标检测方法,其检测精度高,但网络结构复杂导致检测实时性差限制了实际应用。文献[7-8]中提出的针对检测速度慢出现了端到端的目标检测算法SSD(Single Shot MultiBox Detector,SSD)、YOLO(You Only Look Once version,YOLO)等,SSD舍弃了R-CNN中对目标的检测器与分类器分开的检测方法,将检测器与分类器合为一体,检测速度获得较大提升;YOLO相比于SSD检测速度更进一步,但是在实际应用时实时检测速度仍然受制于算法的复杂。文献[9]中YOLOv4算法采用CSPDarknet53为主干网络,检测性能较好但是复杂的主干网络结构导致模型整体体积过大,实际应用时较难达到预期效果。针对检测算法实时性差,网络轻量化是主要的方法之一。在文献[10-12]中指出网络轻量化大致分为两种:一是对算法网络的通道或者层数剪枝的方法实现网络轻量化来提高检测速度的目的,但这种方法存在不确定性,可能会导致检测精度大幅下降;二是对网络主干部分的修改,利用轻量化特征提取网络替换原主干网络,这样做整体网络结构不会因为网络层次大幅减少而失衡,且能较好的与原网络结构进行结合避免检测精度产生太大损失。轻量化检测网络的种类也有很多,其中MobileNet网络就是一种轻量化的检测分类网络,文献[13]提出的MobileNetV1系列轻量化特征提取网络,利用深度可分离卷积代替普通卷积计算减少计算量;文献[14]中MobileNet轻量化网络结合SSD在机器人视觉系统中的应用实例更具体的说明了轻量化网络在实际应用中的效果较为良好;文献[15]在MobileNetV1的基础上提出了具有线性瓶颈的倒残差结构的MobileNetV2网络,有效减少了网络整体过大的张量数据,文献[16]中在MobileNetV2网络的基础上提出MobileNetV3,改变了MobileNetV2复杂的尾部结构,更加轻量化同时尽可能的保证网络的检测精度。修改网络结构的同时要注意网络改变后可能对检测效果产生影响,对于数据集存在的数据样本不均衡问题容易导致模型训练的过拟合结果,同时影响网络的分类性能。文献[17]中提出的Focal loss损失函数可以较好的改善数据集中数据样本不平衡问题,对模型整体的损失函数进行优化,提高网络的检测准确率。

为了兼顾算法检测精度和实时性,满足巡检机器人实时目标检测要求,文中以YOLOv4算法框架为基础,引入MobileNetV3网络为特征提取网络的目标检测算法;在LYOLO算法的损失函数中,将Focal loss损失函数作为置信度损失函数进行复杂样本的挖掘。

1 改进的检测网络算法结构

1.1 LYOLO检测网络框架

YOLOv4采用CSPDarknet53作为网络主干结构,CSPNet结构保证检测的准确性也使得网络更加轻量化;SPP池化结构增加了网络的感受野;尾部的PANet特征融合结构获得网络最终的特征图。如图1中所示,LYOLO目标检测网络以YOLOv4为基础网络框架进行改进,在网络主干引入MobileNetV3特征提取网络;设计LYOLO网络的整体损失函数。

图1 LYOLO任务框架

1.2 特征提取网络

MobileNetV3采用深度可分离卷积代替普通卷积操作,大幅减少了网络参数量;其次加入SE(Squeeze and Excitation,SE)轻量级注意力机制提高特征提取的准确性;使用了新的H-swish激活函数;在MobileNetV2的基础上利用全局平均池化操作将网络末尾7×7的特征图改成1×1的特征卷积,再次减小了网络参数量。

深度可分离卷积是将空间和通道两个维度的卷积操作转化成在空间维度上的深度卷积操作与通道维度上的逐点卷积操作。深度可分离卷积过程如图2所示。

深度卷积的输入通道个数与过滤器数量一致,且每个滤波器的卷积核大小均为K×K,在S个通道每个通道大小为H×W的输入的条件下,将输出W张H×W的过滤特征图,其过程的计算量为H×W×K×K×S。

逐点卷积使用的过滤器为1×1 的卷积核,该过程的计算量为H×W×S×N。为此,深度可分离卷积的总计算量为H×W×K×K×S+H×W×S×N。

图2 深度可分离卷积过程

(1)

式中:K为卷积核大小;S为通道个数;H×W为输入图大小;N为卷积个数。

1.3 LYOLO网络结构

LYOLO网络结构如图3所示。

图3 LYOLO网络结构

图3中Bneck是MobileNetV3中的特有结构,主要包含 Bottleneck(逆残差卷积结构)、Block(深度可分离卷积)、轻量型注意力机制SE模块以及H-swish激活函数等部分。采用多尺度特征提取算法,模型最终得到三个不同尺度的特征图,经尾部卷积操作叠加后得到最终的检测结果。

1.4 LYOLO算法的损失函数

样本分布不均衡也是影响算法性能的问题之一,样本数据分布不均将导致少量复杂样本会淹没在较多简单样本数据中,从而降低了少量复杂样本的重要性占比,减少了复杂样本对算法损失的贡献[18]。

LYOLO损失函数包括位置损失、置信度损失与类别损失,LYOLO中采用位置损失函数(Complete-IoU,CIoU)作为目标框坐标回归的损失函数,类别损失中仍采用交叉熵函数,即LYOLO总的损失函数为

Ltotal=Llocation+Lconfidence+Lclass,

(2)

式中:Ltotal为总损失;Llocation为位置损失;Lconfidence为置信度损失;Lclass为类别损失。

(3)

式中:IoU为位置损失函数;在一个数据目标中A为真实目标框;B为目标预测框。

(4)

式中:d为预测框与真实框中心点之间的欧式距离;l为覆盖预测框与真实框的最小闭合框的对角线长度;v为衡量长宽比一致性;α为权重函数。

(5)

式中:wgt、hgt为真实框宽和长;w、n为预测框宽和长。

(6)

为了提高模型的分类性能,引入Focal loss损失函数替换原本置信度函数中的交叉熵函数,改善目标样本分布不均以及样本中难区分目标的分类问题,提高算法模型对目标的分类性能。可以有效解决前景类与背景类比例严重不均衡的问题。该损失函数降低了大量简单负样本在训练过程中所占的权重,是一种发现复杂样本的方法[19]。

(7)

(8)

式中:L为二分类损失函数;m为正样本数;n为负样本数;N为样本总数,在模型训练时样本多的类别会更加占优势,当样本正负样本数差距过大时,会造成少样本类别性能较差。

Focal loss损失函数的公式为

fFL(Pt)=-αt(1-Pt)γlgPt,

(9)

式中:αt为控制正负样本的权重的超参数;γ为控制难易分类样本的超参数,可进行调节。Pt为分类的难易程度,Pt越大,说明分类的置信度越高,样本越易分,Focal loss损失函数即在损失函数中增加难分样本的权重,有助于提高难分样本的准确度。

所以改进的LYOLO的损失函数为

Ltotal=∑LCIoU+∑fPL(Pt)+∑fCE(Ct)。

(10)

2 实验结果及分析

文中针对巡检机器人工厂环境下常见的3类目标物如图4所示:叉车、置物箱、平板推车,共有图片1 813张,数据比例为3∶2∶1,分布并不均衡。实验训练设备采用RTX 2080 Ti显卡,软件平台采用Ubuntu20.04,使用Pytorch1.0深度学习框架训练,设置学习率为0.000 1,迭代100轮次,设置超参数score_threshold = 0.5,batch_size=50。

2.1 不同算法模型综合性能分析

目标检测算法的综合检测性能不能单一的依靠精确率(Pprecision)或者召回率(Prceall)来衡量,因为在具体的计算中这些数据可以通过设置相应的阈值以达到100%的检测准确率,这样会造成检测结果出现大量目标检测错误。算法性能的评估主要借助单个检测类别的平均精确度(Average Precision,AP)与平均精确度均值(mean Average Precision,mAP)这两个综合评估数据进行评价。其中,AP指的是单一目标物检测结果的PR曲线与X轴围成的图形面积大小,通常小于1。PR曲线利用Pprecision和Precall来绘制,精确率即查准率,表示被预测为正样本中实际正样本的比例。

Pprecision=VTP/(VTP+VFP),

(11)

图4 目标类别

召回率表示测试集中正样本被预测为正样本的比例。

Precall=VTP/(VTP+VFN),

(12)

式中:VTP为被正确识别为正样本的数量;VFP为被错误识别为正样本的负样本数量;VFN为被错误识别为负样本的正样本数量。表1为不同算法的AP值。

表1 各算法AP值

表1中的单个检测类别的平均精确度值反映了模型在检测过程中对单个目标类别的检测效果。算法的参数量体现了其复杂程度。从表1中可得,在引入Focal loss损失函数的LYOLO算法后,对于数据集呈现3∶2∶1这样不平衡的数据分布,单个目标的检测平均精确度均可达92%以上。为了更好的说明改进算法的效果,利用VOC数据集验证改进算法的可行性。

VOC2007公开数据集中共有80个类别,9 000余张数据图片。实验结果由表2可得,在利用公开数据集进行训练后LYOLO仍然可以保证较好的检测性能,说明该算法能够适应不同检测对象,具有较好的普适性。

表2 算法检测性能

同时绘制在多类别目标数据检测结果各算法的PP-PR曲线如图5所示。

图5 PP-PR曲线图

PP-PR曲线与坐标轴围成的面积越大,代表该算法性能越好,如图5中三种目标子集检测PP-PR曲线中,LYOLO算法检测效果可直观的看出对比YOLOv3算法的检测效果,LYOLO占明显优势;与YOLOv4对比, LYOLO整体同样优于YOLOv4的性能。 算法性能评估的另外一个指标数据平均精确度均值指对多个验证集个体求平均AP值,反映了算法在多类别目标物体系中的检测能力,各算法检测性能见表3。

表3 算法检测性能对比

从表3中可得,在LYOLO的参数量为44.74 MB,权重为56.7 MB;mAP达到93.61%,相较于YOLOv3、YOLOv4分别提升了3.42个百分点和0.82个百分点;同时LYOLO的实时检测速度为92 f·s-1,相较于YOLOv3提升了9.5%,较YOLOv4则提升了近40%,LYOLO实时性得到显著提高。从对比结果来看,LYOLO在大幅减少了参数量的同时,mAP和检测速度均得到提升。

2.2 不同模型的目标检测精度

IoU(交并比)是测量在特定数据集中检测相应物体准确度的一个标准。在算法验证阶段设置定值的IoU,用于测量真实和预测之间的相关度,相关度越高,IoU值越高。在实验中IoU分别取0.50,0.60,0.70,0.75,表4为不同IoU下的各算法的mAP的值。

表4 不同IoU下的检测结果

从表4可看出:随着IoU的增加,LYOLO也依然具有较高的mAP,说明其得到的预测框与真实目标框的重合度高,目标框定位更为准确。

从图6中实际实验部分检测结果对比,从检测类别的准确率和位置框的准确度以及多目标识别,LYOLO在目标物体的实际检测效果优于YOLOv4。

图6 部分检测结果对比

3 结 论

1) 文中以YOLOv4检测算法框架为基础,引入MobileNetV3网络作为主干结构,采用深度可分离卷积替代普通卷积,利用Focal损失函数作为置信度函数,构建了一种轻量化网络目标检测算法。

2) 利用改进的轻量化网络目标检测算法,网络参数量降至44.74 MB,平均检测精度可达93.6%,单张图片检测耗时为0.01 s。 LYOLO目标检测模型的参数量相比YOLOv4减少了191.58 MB,mAP比YOLOv4提高0.82%,检测速度比YOLOv4提升38.8%,对巡检时的综合检测定位及检测实时性均获得较大提升。

3) 文中LYOLO算法是在模拟环境下完成目标检测,后续可将小型嵌入式设备作为搭载平台,通过优化轻量化网络目标检测算法及相关网络参量,实现实际应用复杂场景下目标物的检测识别。

猜你喜欢
轻量化类别卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于ABAQUS的某轻卡车蓄电池支架轻量化
中低速磁浮直线感应电机轻量化研究
重卡车架轻量化设计
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一起去图书馆吧
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计