APP下载

基于YOLOv3 优化算法的城市道路行人检测

2023-07-28郑学远

科学技术创新 2023年19期
关键词:城市道路行人预测

郑学远

(吉安职业技术学院,江西 吉安)

引言

研究自动驾驶背景下的行人检测是一个热点问题。传统的行人检测方法大都是基于一些传统的通用目标检测方法来实现的,如VJ 检测器[1]、HOG 特征[2]、DPM 模型[3]等。本文针对城市道路中的行人检测问题,充分利用YOLOv3 算法的实时目标检测性能,从三个方面对YOLOv3 算法进行了改进,一是改进YOLOv3的网络结构,增加尺度特征;二是对坐标回归损失函数进行改进;三是改进设计激活函数。通过在自制的行人数据库上实现改进后的行人检测方法,与YOLOv3 方法进行比较,实验结果表明该改进后的方法具有更好的行人检测性能。

1 YOLOv3 预测框的预测方法

YOLOv3 网络真实学习目标是得到锚框和真实框(Ground Truth)的坐标误差、置信度误差和分类误差。通过网络训练实现损失函数的最优化,然后由最优化的误差量计算出预测框的预测坐标,进而完成目标检测任务,示意图如图1 所示。

图1 OLOv3 预测框预测示意图

图1 所示的特征图中,一个单元格的宽高为Cx和Cy,最外层的为真实框,其中心点坐标为Gx和Gy,宽高为Gw和Gh。中间的虚线框为锚框,其宽高为pw和ph,最内层的为预测框,其中心点坐标为bx和by,宽高为bw和bh。首先计算出锚框与真实框的坐标偏移tx、ty、tw、th。如公式(1)所示。

然后可以由这4 个偏移量计算出预测框的坐标位置,计算公式如公式(2)所示。公式中的δ 是Sigmoid函数。

2 改进的YOLOv3 行人检测方法

2.1 改进YOLOv3 的网络结构

随着网络深度加深,训练的收敛速度会变慢,性能变差,为了解决这一问题,本文YOLOv3 网络结构中的Resnet 残差单元都替换为ResneXt 残差单元。ResneXT 借鉴了Inception 的“分割-变换-聚合”策略,通过引入基数(Cardinality)来控制分组的数量。ResneXt 的一个基础单元结构如图2 所示。输入部分是一个256 通道的特征图,将其分成32个分支,每个分支的第一个参数是输入通道数,第二个参数是卷积核大小,第三个参数是输出通道数,将这32 个分支的输出特征图进行逐点相加,最后通过短连接将相加的结果与输入部分在进行相加。

图2 ResneXt 的单元结构图

此外,针对城市道路场景中行人目标容易被遮挡的情况,为了能够提升网络的对遮挡行人目标检测能力,增强网络对小目标的特征提取能力,本文增加第4 个尺度特征,即在经过2倍上采样后,输出的特征尺度由52x52 提升至104x104,然后将特征进行融合后输出。改进后的完整网络结构如图3 所示,基础单元CBL 是由线性卷积Conv、批归一化处理(Batch Normalization)和LeakyReLU 激活函数等三部分组成。Resn 是由CBL 构成的残差结构模块。C-Sets 是由5 个CBL模块构成。Ups 是CBL 后完成2 倍上采样操作,C 完成特征图的拼接操作。

图3 改进后的YOLOv3 网络结构图

2.2 改进的损失函数

在城市道路场景中,针对行人存在遮挡导致YOLOv3 模型容易出现漏检和误检的情况。本文提出优化YOLOv3 的损失函数。本文借鉴参考文献[5]中的做法,对坐标损失函数改进为采用CIOU 损失的方法,该方法综合考虑了重叠区域、中心点距离和边框的纵横比等三个因素。具体的计算公式如下所示:

公式中,D 是预测框与真实框中心坐标的欧式距离,c是包含预测框和真实框的最小闭包矩形的对角线长度,а 是大于0 的权重系数,v 是度量预测框与真实框宽高比的一致性参数。

2.3 改进的激活函数

YOLOv3 的激活函数是Leaky ReLU 函数,其表达式如下:

该激活函数存在的问题是当目标函数的局部梯度值变化较大时,在x=0 左右两侧会产生不连续的梯度变化。本文采用Mish 函数代替Relu 函数[6]。该函数避免了导致训练速度急剧下降的梯度饱和,加快了训练过程。Mish 函数的表达式如下:

3 实验与结果分析

3.1 实验环境与实验数据集

本实验的城市道路环境行人检测是基于python 3.7 和TensorFlow 2.0 框架完成的,实验相关的操作系统是64 位Windows 10,处理器是Inter Core i5-9300H, 内存容量为8GB,GPU 为NviDIA GeForce GTX1650。

本文实验使用的数据集是自制城市道路环境数据集,从真实城市道路中拍摄1 000 张图片,图片中包含小行人目标、部分遮挡行人目标等多种情形。通过Labelling 标注工具得到训练所需要的XML 文件,每一个图片名对应一个Label.xml,为了简化实验,数据集中只标注了行人和汽车2 种目标。将1 000 张图片按7:2:1 的比例划分成训练集、验证集和测试集三部分数据集。

3.2 评估指标与模型训练

本文采用平均精度mAP,丢失率mMR,召回率Recall 等三个指标来评估改进后的YOLO 模型的性能优劣。平均精度反映了模型的整体检测精度,越大代表性能越好;丢失率反映了模型漏检的大小,越小越好;召回率反映的是模型正确检测到的目标数占总目标数的比例,越大越好。训练的初始学习率设为0.000 1,训练的批次大小设为7,得到的最优参数作为整个网络的训练结果。

3.3 检测结果及分析

为了验证改进后的YOLOv3 算法的行人检测性能,将改进后的算法与原YOLOv3 算法进行比较。2 种算法使用同一个数据集进行训练,训练后使用mAP,mMR 和Recall 来对比分析其性能。实验结果如表1所示。

表1 改进YOLOv3 与原算法检测性能对比

由表1 可知,改进后的YOLOv 算法相比原来的算法在平均精度和召回率上都提高了1 个百分点以上,说明本文提出的改进算法在城市道路环境下的行人检测效果更好。

对原YOLOv3 算法和改进后的YOLOv3 进行检测效果对比,实验结果显示改进后的YOLOv3 算法对部分遮挡行人目标和小行人目标可以有效的检测出来。图4 中间的部分遮挡行人和右边小孩未能检测出来。图5 中间的部分遮挡行人和右边小孩能检测出来,说明改进后的算法的性能有了提升,能够解决部分遮挡目标和小目标检测的问题。

图4 YOLOv3 检测效果图

图5 改进YOLOv3 检测效果图

4 结论与展望

本文改进的YOLOv3 算法在自制的城市道路数据集中进行了实验验证,并与YOLOv3 算法进行对比实验,结果表明改进后的算法在平均精度、召回率上提升了超1 个百分点,丢失率有所下降。改进后的算法对遮挡目标和小目标的检测精度提高了。下一步工作,笔者将研究如何提升改进算法的实时检测速率问题,使得检测算法更适合城市复杂道路的实时行人检测。

猜你喜欢

城市道路行人预测
无可预测
城市道路拓宽改造设计探讨
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
城市道路照明电气设计常见问题探究
城市道路清扫之我见
毒舌出没,行人避让
水泥搅拌桩在城市道路软基处理应用中的思考
路不为寻找者而设
我是行人