基于改进YOLOv4 的灾后人员检测算法①

2023-09-14 03:39张立国李佳庆赵嘉士耿星硕章玉鹏
高技术通讯 2023年7期
关键词:特征提取卷积聚类

张立国 李佳庆 赵嘉士 耿星硕 章玉鹏

(燕山大学电气工程学院 秦皇岛 066004)

(河北省测试计量技术及仪器重点实验室 秦皇岛 066004)

0 引言

近些年来,全球自然灾害与意外事故频频发生,人民的生命安全受到重大威胁。普遍地,部分被困人员因为障碍的遮挡而得不到及时救援,最终失去生命[1-3],因此,能否在最佳救援时间内找到被困人员尤为重要。

随着传统目标检测算法性能达到瓶颈,目标检测技术达到了一个稳定的水平。随着AlexNet 网络使用卷积神经网络(convolutional neural network,CNN)大幅提升目标分类的准确度之后,卷积神经网络再次回到人们的视线中,基于卷积神经网络的目标检测技术开始飞速发展。如今,目标检测算法可以分为两类,一类是以YOLO(you only look once)系列和SSD(single shot multibox detector)算法为代表的一阶段检测算法,另一类是以R-CNN(region-CNN)系列为代表的二阶段检测算法[4-7]。最初的YOLO算法检测效果并不好,但随后更新的YOLOv2[8]、YOLOv3[9]、YOLOv4[10]等一系列算法,在速度和精度上都得到了巨大的提升[11-12],使得其在不同背景下行人检测中得到大规模应用。如文献[13]使用Dense-YOLO 网络模型进行井下行人检测。文献[14]使用改进YOLO 轻量化网络的算法检测行人。文献[15]使用改进YOLO 网络对遮挡行人进行检测仿真。但是在地震等灾后救援场景中,算法需要部署在有限的嵌入式设备计算资源上,这对YOLO 网络的实时性和准确性提出了巨大挑战。

本文选择目前在速度和精度上有明显优势的YOLOv4 网络为基础,将MobileNetv1 轻量级网络引入YOLOv4 中,同时为了解决减少参数量而导致的准确率降低问题,使用K-means++算法优化预选框以提升模型识别精度,最终得到改进的YOLOv4 模型。新的网络模型可以大幅减少网络的参数量,提升检测速度,使其满足移动端设备存储容量小、算力低等条件。

1 YOLOv4 原理

YOLOv4[10]是基于回归的一阶段目标检测算法。其网络结构由主干特征提取网络、特征融合网络和进行分类、回归的检测头(Head)组成。主干特征提取网络利用残差块对输入图片进行5 次卷积,获得数据的特征信息。YOLOv4 在DarkNet53 的基础上结合跨阶段局域网络(cross stage partial network,CSPNet)[16]的优点,提出了CSPDarkNet53 结构,利用大残差块的不完全截流特性,降低了主干网络的计算瓶颈和内存成本。空间金字塔池化(spatial pyramid pooling,SPP)结构主要功能是增加网络的感受野,提高特征金字塔结构的特征提取能力。同时特征融合网络采用SPP 和路径聚合网络(path aggregation network,PANet)的网络结构,在原有上采样的特征浅层融合基础上[17-19],增加了下采样的方式进行深层信息融合,这样可以使不同特征层有效融合,避免直接对图片进行剪裁缩放造成数据信息丢失。

2 嵌入MobileNetv1 和K-means ++模块的改进YOLOv4 算法

2.1 YOLOv4-MobileNetv1 整体框架

YOLOv4-MobileNetv1 具体实现是将YOLOv4 的主干特征提取网络CSPDarkNet53[17]替换成网络参数轻量化的MobileNetv1 神经网络,降低YOLO 网络整体的计算量和参数量。改进后的YOLOv4 网络的整体结构如图1 所示。其中将原YOLOv4 网络的输入图片尺寸大小608×608 改成416×416,在MobileNetv1 主干特征网络采用Mish 激活函数,后面的网络仍采用ReLU 激活函数。Mish 激活函数保证了正数可以达到任意高度,避免了由于封顶而导致的梯度饱和,对负值的轻微变化允许更好的梯度流,而不是像ReLU 激活函数一样具有零硬边界。采用Mish 激活函数可以允许更好的信息深入神经网络,从而得到更好的准确性和泛化能力。Mish 激活函数的计算公式如式(1)、(2)所示。

图1 YOLOv4-MoblieNetv1 整体结构图

式中x为输入数据。

SPP 结构[18]分别使用4 个不同大小的卷积核对特征提取网络提取到的特征进行最大池化处理,卷积核大小分别为1×1、5×5、9×9、13×13,将4个池化处理后的不同尺度特征图进行拼接组成新的特征层。在PANet 结构[19]对MobileNetv1 主干特征提取网络特征提取的结果和SPP 网络特征提取结果做进一步的信息提取。进行特征提取的特征图分别为52×52、26×26、13×13。PANet 网络加强了对低层特征信息的利用率,通过不同层的自适应池化,将特征网格与全部特征层直接融合在一起,在下采样的过程中将融合的结果传入检测头部分进行最终的回归和分类[20]。最后,YOLOv4-Head 采用PANet结构的3 个特征层进行预测,分别进行卷积核大小为3×3 与1×1 的卷积操作,判别特征层的3 个先验框,判断网格区域内目标及种类,最终获得预测框[21]。

2.2 MobileNetv1 网络结构

通常搭建更深更复杂的神经网络可以提升准确率,但其在推理速度和模型大小上却不一定是高效的。MobileNetv1 是基于深度可分离卷积构建的轻量级网络模型[22],并定义2 个超量化参数α和β来降低模型的宽度和输入图像的分辨率。α为宽度数乘用来控制卷积层卷积核数量从而显性地将卷积的输出通道数下降α倍,β为分辨率数乘用来隐性地控制输入图像大小,通过这2 个参数来控制模型的大小。

为了使网络更好地进行融合,本文对MoblieNetv1 模型进行了修改。首先将输入图片尺寸从224×224 替换成416×416,这样可以通过优化后续的K-means++算法提高检测精度;其次裁剪部分了卷积层和全连接层,这样可以使得网络更加轻量化,提高运行速度。裁剪后的MobileNetv1 网络结构如表1 所示,其中t是拓展因子,c是输出特征矩阵深度channel,n是block_body 的重复次数,s是步距。

表1 裁剪后MobilNetv1 网络结构

本文中MobileNetv1 的平均池化采用的步长为1,卷积核尺寸为7×7。由于采取的步长为1,所以输出的特征图不变,仍然为13×13×1024。

MobileNetv1 网络采用了深度可分离卷积作为基础的特征提取单元[23]。深度可分离卷积[24]将卷积过程拆分为逐通道卷积与逐点1×1 卷积2 步,这种分解过程能大量减少冗余计算量。相比传统卷积,逐通道卷积的卷积核通道为1,输入特征矩阵的维度同卷积核个数以及输出特征矩阵的维度相同。逐点卷积同普通卷积基本一致,唯一区别在于逐点卷积的卷积核大小为1×1。逐通道卷积和逐点卷积共同组成了深度可分离卷积,理论上使用深度可分离卷积的参数计算量为传统卷积的1/9。深度可分离模块的具体结构如图2 所示。

MobileNetv1 网络使用ReLU6 激活函数是为了满足移动端设备的需求。移动端通常使用Float16或者Int8 等较低精度的模型,这种模型的精度范围无法覆盖到正无穷,若使用ReLU 激活函数会带来精度损失,而ReLU6 激活函数将上限设为6,这样可以很好地满足移动设备的需求。

2.3 锚框优化

为了增强模型对跨尺度目标的预测能力,本文采用K-means++算法对图像特征层上的锚框进行重新聚类,得到9 个新的锚框。相较于K-means 算法需要人为地给定初始聚类中心、初始聚类中心对最终聚类结果影响较大的缺点,本文使用的Kmeans++算法只需要给出第1 个初始聚类中心,并且提高了后续聚类中心选取的效率。K-means ++算法首先从数据集中任意选取一个样本点作为初始聚类中心,然后计算所有样本点到已有聚类中心的距离并使用加权概率分布选择一个新的样本点作为新的聚类中心,不断重复选取,直到选择好9 个锚框为止。K-means++算法解决了传统K-means 算法对初始聚类中心敏感的问题,主要改进在于第1 步选取初始聚类中心时不再是一次性随机选取完,而是遵循初始聚类中心之间的距离尽可能远的原则去逐次选取聚类中心。K-means ++算法计算样本点到聚类中心的距离为欧氏距离,其计算公式如式(3)所示。

式中xi、xj代表2 个样本点,其中每个样本点都有p个属性。

表2 不同算法准度和精度对比

K-means++算法最终聚类结果的评估标准为误差平方和,其公式如式(4)、(5)所示。

式中,SSE表示误差平方和,在相同迭代次数的条件下,SSE的值越小则说明算法损失越小;ei为k个聚类中心的第i个聚类中心点;dist表示每个点到它所属簇的中心点的距离。

最终以重叠度(intersection over union,IOU)为标准[25],在一定的阈值下,IOU 的值越大,生成的锚点到聚类中心的距离就越小[26],预测结果越精确。最终得出适合灾后人员数据集的锚框,其宽和高分别是(142,110)、(192,243)、(459,401)、(36,75)、(76,55)、(72,146)、(12,16)、(19,36)、(40,28)。

3 实验结果与分析

3.1 数据集制作及数据预处理

由于目前的灾后人员图像数据集较少,数据集图像质量也不高,因此本文制作了一个灾后人员检测数据集。数据集包含2000 张不同场景下的灾后人员的图片和高度遮挡的图片。在VOC2007 +VOC2012 数据集中,训练集有16 551 张图片,测试集有4952 张图片。其图片具有丰富的前景和背景,同时具有大量高度遮挡的人群场景。实验时使用VOC2007+VOC2012 公开数据集和自制灾后人员数据集进行训练和验证,对VOC2007 +VOC2012 公开数据集进行数据预处理,使用Mosaic 和Label smooth 2 种数据增强方法。Mosaic 数据增强可以有效提高数据集的丰富度和检测的鲁棒性,Label smooth 数据增强可以提升精度。

3.2 评价指标

本文使用精准率P(precision)、召回率R(recall)和平均精度均值mAP(mean average precision)3个指标检测网络模型的识别效果,同时使用画面每秒传输帧数fps(frames per second)作为模型检测速度评估的指标[27]。精准率和召回率的计算公式如式(6)、(7)所示。

式(6)~(7)中,TP(true positives)表示将正样本的目标预测为正值,FN(true negatives)表示将负样本的目标预测为负值,FP(false positives)表示将正样本的目标预测为负值。

平均准确率(AP)和平均准确率均值(mAP)的计算公式如式(8)、(9)所示,式中,N为类别数。

3.3 不同算法检测性能对比

为验证模型的可靠性,在同一设备的情况下,使用不同的改进算法进行对比实验,不同算法结果如 图3~6 所示。

图3 MobileNetv1 P-R 曲线

图4 MobileNetv2 P-R 曲线

图5 MobileNetv3 P-R 曲线

图6 DenseNet121 P-R 曲线

为了检测改进后算法的可行性,本文将所有尝试改进的网络模型和原YOLOv4 网络模型从检测精度和运行速度两方面进行对比,同时还和国内外一些目标检测的先进模型进行对比,采用平均准确率均值(mAP)检验8 个网络模型的精度,采用画面每秒传输帧数(FPS)比较8 个模型的检测速度,对比结果见表2。

从表2 可知,YOLOv4 的平均检测精确度达到89.99%,检测速度达到37.8 fps。而对于其余先进算法,精度虽然都有所下降,但MobileNet 系列在检测速度上得到了较大提升。其中YOLOv4-Mobile-Netv1 网络模型效果最好,检测速度达到了72.61 fps,较原网络提升了91.98%。由于引入了深度可分离卷积操作所以其精度略低于YOLOv4 模型,但仍高于其余模型。

3.4 自制数据集实验结果

自然灾害发生后,会出现建筑物损毁、人员掩埋、城市内涝等现象,导致被困人员特征不明显、难以被识别等问题。而基于深度学习的目标检测算法需要大量带标签的数据进行训练,否则会出现过拟合、泛化能力较差等问题。目前的公开数据集还没有针对灾后人员检测的,因此为了精细化实时检测,本文搜集了大量灾后图片并制作成数据集,内容包括城市废墟、洪水内涝、野外山林等。

从测试集中挑选部分图片进行结果展示,如图7所示,本文提出的改进YOLOv4-MobileNetv1 网络模型在有不同程度遮挡的复杂环境下均检测到了目标,取得了较好表现。

图7 部分测试集结果

从测试集结果图7(a)和(b)中可以看到,当地震等自然灾害发生在城市中,会造成人员被废墟掩埋的情况。这时由于遮挡过多或者目标距离太近可能出现漏检现象,但大部分救援对象是可以被准确检测出来的。从测试集结果图7(c)和(d)可以看出,当救援背景发生在野外时,会出现被救人员在图片中占比过小、颜色同背景较为接近的情况,本文提出的改进网络可以对不同尺度、颜色相近的目标进行识别。从测试结果来看,本文提出的改进YOLOv4算法对尺度变换、背景颜色干扰、部分遮挡等问题均有良好的检测效果,但对于遮挡情况过于严重、人员距离过近的情况其检测精度仍待提高。

4 结论

本文提出了一种改进的YOLOv4 的轻量化灾后人员检测算法,将MobileNetv1 轻量级网络替换原YOLOv4 主干特征提取网络,进而得到MobileNetv1-YOLOv4 模型;采用K-means++聚类对灾后人员目标样本进行锚定框大小的优化,提升模型最终识别度。实验表明该方法平均每秒检测约92 张图像,在VOC2007 公开数据集上的平均准确率均值达到了82.17%,单独检测受灾人员的成功率达到71.81%,同时对不同环境有良好的抵抗能力和鲁棒性。但是本文方法受限于人员太密集、障碍物物遮挡等问题,导致实际检测中仍存在少量的漏检与错检,下一阶段工作将针对此问题进行更深入的研究。

猜你喜欢
特征提取卷积聚类
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
基于DBSACN聚类算法的XML文档聚类
Bagging RCSP脑电特征提取算法
基于高斯混合聚类的阵列干涉SAR三维成像
一种层次初始的聚类个数自适应的聚类方法研究
基于MED和循环域解调的多故障特征提取
一种基于卷积神经网络的性别识别方法