改进的YOLOv4模型在自动驾驶多目标检测的应用

2021-11-03 09:23成都锦城学院自动驾驶实验室陈旭淼张皞宇
电子世界 2021年18期
关键词:锚框卷积聚类

成都锦城学院自动驾驶实验室 高 扬 陈旭淼 张皞宇

目标检测是自动驾驶汽车与外界环境实现信息交互的重要环节,为了能有效地对多个目标进行实时检测,本文针对在道路目标检测中小目标和被物体遮挡的目标易被漏检或检测框定位不准确等问题,提出一种基于YOLOv4的目标检测模型。增加152x152的特征融合结构,减少每个YOLO层前的两个卷积层,以优化目标特征提取,模型训练前用kmeans++聚类算法优化锚框,以提升模型对自动驾驶多目标的检测性能。实验结果表明,本文改进YOLOv4算法比原始算法提升1.5个百分点,在检测精度和检测速度上均有一定提升,改进算法具有一定的实用价值。

自动驾驶汽车是未来汽车产业发展的必然趋势,也是具有革命性影响的交通工具。自动驾驶技术涉及计算机科学、车辆工程、传感器技术等交叉学科内容,它对于社会经济发展、科学技术研究等方面都有重大影响。在自动驾驶技术的组成单元中,环境感知是至关重要的环节。其中多目标检测是环境感知的重要分支,通过对行人、车辆、交通信号灯、交通标志等物体的检测,结合激光雷达的探测、道路交通规则以及汽车行驶状态等信息对自动驾驶汽车进行规划与控制。

本文基于YOLOv4网络,增加152x152的特征融合结构,用于提升小目标检测性能,优化特征检测层的卷积层数,平衡网络参数,提高模型检测速度,用kmeans++聚类算法优化适用于本实验所用数据集的锚框,减少非必要误差。

1 算法解析与改进

1.1 多尺度特征融合结构改进

实际驾驶场景下部分目标对象存在因距离或物体遮挡、重合等因素被漏检或识别框定位不准确等情况,多尺度特征融合层可以有效地解决此类问题。本文提出一种采用四种检测尺度的特征融合结构。改进后的YOLOv4网络结构简化图如图1所示,输入图像尺寸为608x608时,在CSPDarkNet-53网络的主体结构中进行五次下采样,同时使用四个上采样层作为FPN结构,使用三个PAN结构组成特征金字塔。FPN结构自下而上提取丰富的语义信息,PAN结构自上而下提取准确的位置信息,从而实现不同的主干层对不同的检测层的特征融合。网络检测尺度增加到四个后得到的152x152、76x76、38x38和19x19的特征图,能更有效地应不同大小的目标物体。

图1 改进YOLOv4网络结构简图

1.2 特征检测层优化

为平衡网络结构参数量和避免模型学习效果因网络结构加深而退化的情况,在每个YOLO层前减少两个卷积层,由之前的5层卷积转为3层卷积,如图2所示。在平衡和避免以上情况的同时一定程度上提高了模型检测速度,优化了模型性能。

图2 三层卷积

1.3 kmeans++聚类算法优化锚框

为避免Anchor Box造成的聚类局部最优的情况,本文采用K-means++聚类算法生成适用于本实验所用数据集的锚框,算法基本流程如下:

每个样本点成为下一个聚类中心的概率为P,其计算公式为:

2 数据处理与实验分析

2.1 数据集处理与训练参数优化

本文使用KITTI数据集训练YOLOv4系列模型。本文将KITTI数据集的Car、Van、Truck、Tram类合并为Car类,将Person_sitting、Pedestrain合并为Pedestrain类,Cyclist不变,共计三类。利用Python批处理方法将数据集处理为PASCAL VOC2007数据格式,训练集(含验证集)与测试集的比例为9:1,具体标记图数与标记个数见表1所示。

表1 标记数

数据集制作完成后,使用Kmeans++聚类算法生成适用于该数据集的锚框,聚类散点分布如图6所示,12个锚框参数值分别为(13,40),(25,55),(13,116),(45,63),(33,92),(29,220),(62,104),(77,155),(58,305),(116,190),(133,300),(192,354)。

图3 Kmeans++聚类散点图

2.2 实验结果与分析

本文实验采用显卡配置为Nvidia GeFo orce RTX 1080Ti的Windows操作系统和Darknet深度学习框架搭建实验环境。

在训练前需准备预训练权重(即yolov4.conv.137文件),结合本文2.1节给出的参数优化结果修改YOLOv4模型配置文件,以满足本文所用数据集的训练要求,部分参数的设置详见表2。初始学习率为0.0013,本文设置当模型训练至总迭代次数的80%(24000轮)和90%(27000轮)时学习率下降90%,以达到训练初期模型快速收敛,训练后期模型收敛至最优解的目的。

表2 部分训练参数

本文模型训练的损失值和平均精度均值变化如图7所示,在前18000轮迭代中模型的loss值和mAP值变化相对较快,在迭代24000轮后loss值稳定在1.6左右,迭代25000轮后mAP值稳定在92%左右。

用k-means++聚类算法优化锚框后,改进的YOLOv4网络在KITTI数据集上训练的mAP结果为91.99%,和原始YOLOv4在该数据集上训练的mAP结果相比,提升了1.5个百分点。为进一步验证改进模型的效果,将本文改进模型与原YOLOv4模型、多尺度特征融合结构改进模型(YOLOv4-A)、特征检测层改进模型(YOLOv4-B)以及Faster-RCNN网络进行对比实验,实验结果如表3、图4所示。

图4 loss与mAP训练过程变化

表3 对比实验的各项数据

由表3可看出,本文改进算法各类别准确率和mAP指标均高于其余三种算法,且FPS指标高于Faster-RCNN网络。综合mAP指标和FPS指标,本文算法优于其他检测算法,提升了自动驾驶多目标检测性能。

本文提出了一种改进YOLOv4算法,旨在提升自动驾驶多目标检测的检测性能,为自动驾驶汽车的智能决策提供更有效的数据支撑。增加152x152特征融合结构,减少特征检测层的两层卷积层,用Kmeans++聚类算法可以在最大程度上减小随机生成初始聚类中心的误差,避免聚类局部最优导致训练的模型鲁棒性低和检测精度低的问题出现。因此,本文改进的YOLOv4算法将模型的mAP指标相较于原YOLOv4算法提升了1.5个百分点,FPS指标基本持平。

本文从网络结构、数据集聚类的角度改进算法使模型检测性能得到一定的提升,但对于YOLOv4主体网络而言还有很大的改进空间。这些都需要在未来的科研中研究和解决的内容。

猜你喜欢
锚框卷积聚类
基于YOLOv3锚框优化的侧扫声呐图像目标检测
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
基于GA-RoI Transformer的遥感图像任意方向目标检测
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于K-means聚类的车-地无线通信场强研究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于高斯混合聚类的阵列干涉SAR三维成像
一种层次初始的聚类个数自适应的聚类方法研究