改进SSD算法及其在口罩佩戴检测中的应用

2022-06-14 09:50波,冯
计算机仿真 2022年5期
关键词:置信度损失口罩

于 波,冯 伟

(东北石油大学物理与电子工程学院,黑龙江 大庆 163000)

1 引言

自从2019年12月份以来,新冠肺炎疫情蔓延到全球各地,新型冠状病毒具有较强的传染性,它可以通过空气作为媒介进行传播,其形式主要有飞沫和气溶胶等,并且可以在较适宜的环境中存活5天左右[1-2]。因此佩戴医用外科口罩和N95口罩可以有效避免该病毒在人与人之间传播。虽然公共场合下佩戴口罩是每个的责任,但仍需要靠政府和社会的管理,因此在人流量密集的区域比如高铁站,地铁站和旅游景区等地方可以采用一定的手段进行管理和监督,例如使用基于神经网络的目标检测算法进行一定程度上的监督,这种检测算法较以往传统算法在检测精度和速度上都有了很大提升。

近年来,目标检测算法进入了快速发展阶段[3-5]。2014年Chen等人提出了RCNN网络[6],RCNN通过用CNN提取出固定的特征,对每个类别都用SVM进行分类训练,代替了用迁移学习的softmax分类器,虽然在当年实现了较高质量的目标检测,但是其SVM训练和候选框回归训练不仅占据了大量的磁盘空间,更对计算的实时性有着巨大的挑战。在2016年,Girshick等人提出了Fast RCNN[7],Fast RCNN在RCN上提出了区域建议共享卷积计算的思想,即在最后一层卷积层和第一个全连接层上添加了ROI[8]来提取每个区域建议的固定长度,从而提高了检测速度和质量,Ren等人提出了Faster RCNN[9],Faster RCNN显著的加快了检测的速度,可以将Faster RCNN看作RPN+Fast RCNN,利用anchor[10]机制将区域建议和卷积网络联系在一起,anchor机制也影响了SSD[11]目标检测算法的提出。RCNN这一系列思想主要是在保证一定的检测速度的同时,对目标检测精度有着更高要求,属于两阶段检测框架(Two Stage Framework)包括了对区域建议进行的预处理,使整个检测过程分为两个阶段。2016年redmon等人提出了YOLO[12]检测算法,其算法将区域建议阶段取消,通过将卷积后的特征图划分为SxS的网格,对每个网格都进行分类和回归运算得到预测结果,由于完全抛弃了区域建议阶段,YOLO的速度较RCNN系列有着较大的提升。同年,Liu等人提出了SSD检测算法,SSD算法和YOLO算法同属于单阶段检测框架(One Stage Framework)SSD由于采用了在多个不同大小的特征图上进行检测,对不同尺度的目标检测具有较好的鲁棒性,其检测速度不仅快于YOLO,检测精度也相对于Faster RCNN有一定的竞争力。

然而,传统的SSD检测算法采用smooth L1建立回归的损失函数,这一做法导致损失函数和评价函数并不统一,极有可能出现目标函数局部最优并不是IoU局部最优的问题。因此本文提出了一种基于SSD改进的口罩佩戴检测算法。

本文提出的改进SSD算法考虑到了不同相交方式对目标函数的影响,提出两框的交集与包含两框的最小框之比。若真实框和预测框没有交集将导致两框的交集与包含两框的最小框之比为零,让目标函数很难收敛,鉴于此,本文另外增加了根据真实框和预测框的几何中心点之间的欧式距离的目标函数。综上所述,本文提出的新的目标函数即两框的交集与包含两框的最小框之比与真实框和预测框的几何中心点之间的欧氏距离之和的目标函数。

在实验中将分别采用自然场景下的口罩佩戴数据集和VOC2007数据集对改进的SSD算法进行训练和评估。采用的口罩佩戴数据集从互联网上进行搜索和获取,分为戴口罩和没有戴口罩两大类,并对采集到的图片打上标签和标记出真实框。VOC2007数据集是目标检测中常用的数据集,该数据集标注了人、车和椅子等20类常见的物体,通过对预测结果的分析可以评判一个目标检测算法的优劣。

在相同实验环境中运行SDD算法的代码和改进SSD算法的代码,输入口罩佩戴数据集和VOC2007数据集,输出预测框和对应的类别,计算mAP-50。

实验表明,改进的SSD算法较SSD算法在口罩佩戴数据集上mAP-50提高了1.96%,在VOC2007数据集上mAP-50提高了1.97%。

2 相关工作

本章节对IoU、SSD算法进行详细介绍

2.1 IoU

IoU是一种评价目标检测器的一种指标。图三中介绍了矩形A、B与包含A、B的最小框C。

图1 矩形A、B与包含A、B的最小框C

对于真实框和通过目标检测算法所的出来的预测框,需要用IoU这个指标对真实框和预测款进行判断,IoU是一个比值关系,即两框的交集与两框的并集的比值,公式如下

(1)

对于检测框的拟合实际上是一种回归任务,和分类任务不同的是,预测框和真实框需要进行坐标的匹配,而坐标的完全匹配是不可靠的,因此IoU作为一种评价坐标拟合的指标,可以奖励那些拟合程度较好的IoU框。同时IoU还有一个很好的特性就是尺度不变性,即对尺度不敏感,预测框和真实框的关系在不同尺度具有不变的特性。相比于smoothL1 Loss,IoU可以反映预测框和真实框的重合程度,如图2所示,不同的预测框和真实框计算得到的smoothL1 Loss的值一致,IoU却有着差异,这会预测出在检测口罩佩戴上产生截取不完整的情况。但IoU也有这自己的局限性,即并不能很好的反映两个物体是以怎样的方式相交的,如图3 所示,IoU相差很小,但图3中两幅图反映的真实框和预测框相交方式却有所差别,用IoU并不能很好的对真实框进行预测。若把IoU作为目标函数进行优化,也会伴随着其它问题,例如两个框没有相交的情况下,根据定义IoU的值为0,这时没有梯度回传,无法进行学习训练。用IoU作为目标函数也就无法衡量预测框与真实框是否相邻或者很远。

图2 smoothL1损失相同时IoU的表现

图3 IoU近似真实框和预测框相交情况

2.2 SSD算法

SSD算法是单阶段检测框架的具有代表性的算法,骨干网络采用了VGG网络进行搭建,VGG[13]网络是由牛津大学计算机视觉组和谷歌旗下的团队共同提出的,在2014年ImageNet竞赛中获得了第二名的成绩。VGG网络结构简洁,泛化能力强便于作为其它网络的骨干网络,其采用了小卷积核和多卷积子层,能够有效的减少参数的数量,增强非线性映射并提高网络的表达能力。SSD算法同时借鉴了Faster RCNN和YOLO的思想,将通过骨干网络的特征图分割成SxS的大小的defaUlt box,在每个default box上引进anchor机制,即通过在每个default box上加入不同尺度和大小的锚框来拟合对应在该default box的真实框,此举是为了让偏差都可以分布在很小的范围内,防止直接拟合带来的退化问题。为了提高小目标检测的鲁棒性,SSD加入了多尺度特征图[14],即在不同尺寸的特征图上进行分类和回归,该策略充分的利用了从骨干网络中采集到的语义信息,SSD的结构如图4所示。

图4 SSD结构图

SSD算法在对bounding box进行预测的时候采用了smooth L1损失,对于置信度误差,采用了softmax loss,SSD的损失函数如下公式所示,其中N表示先验框正样本的数量,x表示某个先验框和真实框是否匹配,c表示置信度,l表示先验框对应的边界的预测值,而g代表的是真实框的位置参数。用非极大值抑制(NMS)对预测结果进行筛选,去除类别一致且高度重合的框,这样大大减少了计算量,在满足不损失精度的情况下,能满足实时性的要求。

(2)

3 改进SSD

3.1 EIoU

结合上文所叙述的用IoU作为目标函数所存在的问题,可以发现导致这些问题的原因可能是对于重叠区域和非重叠区域的关注,而忽略了包含预测框和真实框的区域和预测框和真实框的几何距离。

因此本文提出了一种兼顾包含预测框和真实框的区域和预测框和真实框的几何距离的计算方法,公式如下

(3)

其中,公式的前一项关注的是预测框和真实框交集与包含预测框和真实框的最小区域,满足了对包含预测框和真实框的区域的要求,公式的后一项中关注预测框和真实框的几何距离,p表示预测框中心点的坐标值,pgt表示真实框中心点的坐标值,ρ2代表对预测框和真实框取欧式距离,其中τ∈(0,1),当|A∩B|取0时,τ取1,这时EIoU就退化成计算预测框和真实框的欧氏距离的公式,当|A∩B|不为0时,τ取0这时,EIoU计算预测框和真实框交集与包含预测框和真实框的最小区域的比值。通过公式可知,在|A∩B|不为0的情况下,EIoU可以随预测框和真实框的重叠区域增大而增大,随包含预测框和真实框的区域增大而减小。这一公式可以满足对SSD的改进目标。

EIoU与IoU都可以反映预测框与真实框的拟合程度,EIoU计算复杂度和IoU几乎相当,但EIoU可以计算预测框与真实框交集为0的情况。

3.2 新的目标函数

SSD算法中对预测框的坐标进行仅仅进行了smooth L1的计算,这种情况下会导致如引言部分所叙述的smooth L1 值一样的情况下IoU的值却有着不同,导致这种情况发生的是由于评价指标和目标函数的不统一。因此本文提出新的SSD的目标函数,成为原目标函数的约束函数,该函数在原有SSD目标函数的基础上只针对定位损失进行优化,对于置信度损失保持原样,具体公式如下。

Lloc(x,l,g)

(4)

4 实验结果分析

本文通过使用在SSD网络基础上修改了原损失函数和IoU评价指标为EIoU来进行模型的训练。在互联网上下载SSD的预训练模型权重进行迁移学习。分别使用SSD和改进SSD在同一实验环境下进行模型的训练。

为保证实验具有普遍性,本文将采用训练每个算法时保存的Loss值较低的四个模型,在四个模型中分别计算mAP-50的值,再从这些值中选出最优模型进行对比。

此次实验设备信息为:CPU i5 9300H,GPU RTX2060,内存 32GB,操作系统为Windows 10 Pro,应用的深度学习框架为pytorch,采用的数据集分别为自制的口罩数据集和VOC2007数据集。

4.1 口罩佩戴检测实验

4.1.1 口罩数据集采集

从互联网上爬取相关视频,对视频进行按照时间段逐帧采集图像,之后保存为.jpg格式的图片。用labelImg对图片中的人物是否带口罩分别进行类别标注和真实框标注,最后得到关于口罩数据集的jpg文件和xml文件。

图5 标注佩戴口罩的labelimg软件

4.1.2 口罩佩戴检测实验

在整个口罩数据集中,戴口罩和未戴口罩的具体数据下表所示。在进行训练之前对输入模型的数据进行数据预处理,例如增强、降低亮度对比度,图片尺度变化,色域扭转等方式,对数据进行预处理可以有效的提高网络的鲁棒性和泛化能力,对在自然场景中的口罩佩戴识别更为精确。

表1 口罩数据集信息

模型训练中将初始学习率设置为0.001,训练轮数为30轮,每轮训练为791次,每次迭代的batch size为16,一共迭代23730次,每次。观察SSD与改进SSD的损失值,如下图所示,上边为改进SSD下边为原版SSD。

图6 改进SSD Loss值变化和原版SSD Loss变化

通过Loss值对比发现,改进SSD算法的定位损失从刚开始就已经趋于稳定了,而置信度损失在前十轮中下降较快,后二十轮趋于缓慢,而原版SSD算法的定位损失和置信度损失下降在前二十轮中下降较快,后十轮中趋于缓慢。

4.1.3 口罩佩戴检测实验结果

本实验结果采用的是AP50以及mAP作为评价标准,将得到的四个较优模型进行计算,选出其中mAP最高值进行SSD算法和改进SSD算法的对比。

口罩佩戴检测实验结果的AP50和mA-50的具体数据如下表所示。

表2 口罩佩戴数据集的类别AP和mAP-50

从测试集中随机抽取两张图片输入改进SSD网络,用训练好的权重进行预测,置信度设为0.5,NMS的阈值设为0.45。检测结果如图7所示。

4.2 VOC2007数据集实验

仿照口罩佩戴检测实验,将口罩佩戴数据集更改为VOC2007数据集,在相同设备实验环境下分别对SSD算法和改进SSD算法进行训练,对四个较低的Loss的权重进行mAP评估,得到最优的mAP值的模型。

VOC2007数据集的实验结果的AP50和mAP-50的具体数据如下表所示。

表3 VOC2007数据集的类别AP

表4 VOC2007数据集的类别AP

表5 VOC2007数据集的mAP

4.3 实验结果分析

图7 口罩佩戴检测实验样例

由图6可见SSD算法和改进SSD算法的定位损失,置信度损失和总损失。可以发现改进SSD算法的定位损失较SSD算法的在收敛速度上快于SSD算法,因此本文推测原因有两个,一是目标函数和评价指标的统一会让损失函数的收敛速度变快,二是由于采用了预测框和真实框的中心点的欧式距离这一思想,使得在网络刚开始训练的时候可以让预测框和真实框没有交集的情况下快速收敛。另外,改进SSD算法的置信度损失也较SSD算法收敛较快,本文推测是由于采用EIoU思想产生的预测框的与真实框更好的拟合导致目标可以在预测框中被分类,所以置信度会收敛较快。

从表2中可知改进SSD算法的口罩佩戴数据集的mAP-50较 SSD算法提高1.96%。虽然未佩戴口罩的检测的mAP略低于SSD算法0.53%,但戴口罩的检测的mAP-50高于SSD算法4.84%,这对于口罩佩戴检测的效果提升有明显帮助。

从图7的第一幅图中可以看出对于不同型号的口罩改进SSD算法都能准确识别,本文推测原因是在数据预处理时对图片进行增强、降低亮度对比度等方式,且对于分辨率不高的目标,即第一幅图的从左往右的第一个目标和第三个目标,改进SSD算法都能准确识别,本文推测可能是采用了多尺度特征图,这丰富了目标的语义信息,可以使网络学习到更鲁棒的特征。

从表3、4、5可以看出对于VOC2007数据集,改进SSD算法较SSD算法提高了1.97%的mAP-50。同时可以发现对于大物体,改进SSD算法会优于SSD算法,而小物体SSD算法会优于改进SSD算法。本文推测是由于采用了EIoU的策略,使网络关注包含预测框和真实框的最小框,对于小物体而言,若回归产生的坐标稍大一点,可能分类网络就很难检测到目标,而这对于定位损失来说是由于是小物体所产生的数值不会太大,但对于置信度损失来说,就可能产生较大的数值,反映到最后的mAP上就是小物体检测效果不佳。

5 总结

本文首先发现对于SSD现有的损失函数计算是简单的对坐标进行smooth L1计算,这种计算方法不能能好的描述物体的重合情况,若把 IoU作为目标函数进行优化的情况,也存在着无法衡量预测框与真实框的相交方式。因此本文提出了用EIoU作为目标函数进行优化的策略,不仅让评价指标和损失函数统一,也对预测框和真实框的相交方式有了较好的反映。在损失函数收敛上采用EIoU的改进SSD算法有着更快的收敛速度,且在口罩佩戴数据集和VOC2007数据集中mAP也高于原本的SSD算法。该算法训练出来的口罩佩戴检测在当前疫情情况下有较高应用价值,未来希望将能将继续优化改进SSD算法,使口罩佩戴检测模型精度更高,更希望疫情能早日过去。

猜你喜欢
置信度损失口罩
洪涝造成孟加拉损失25.4万吨大米
一种基于定位置信度预测的二阶段目标检测方法
戴口罩的苦与乐
因为一个口罩,我决定离婚了
两败俱伤
雾霾口罩
校核、验证与确认在红外辐射特性测量中的应用
损失
那些损失上百万的演员