[发明专利]一种基于激活函数的改进YOLOv4车辆行人检测算法在审
申请号: | 202210007093.5 | 申请日: | 2022-01-05 |
公开(公告)号: | CN114694104A | 公开(公告)日: | 2022-07-01 |
发明(设计)人: | 王兰美;魏兵;王桂宝;廖桂生;贾建科;孙长征 | 申请(专利权)人: | 西安电子科技大学;陕西理工大学 |
主分类号: | G06V20/54 | 分类号: | G06V20/54;G06V20/56;G06V40/10;G06V10/44;G06V10/764;G06V10/82;G06K9/62;G06N3/04;G06N3/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 激活 函数 改进 yolov4 车辆 行人 检测 算法 | ||
1.一种基于激活函数的改进YOLOv4车辆行人检测算法,基于Kitti-7classes通用数据集的道路目标数据集的检测定位,其特征在于:
利用KITTI道路目标数据集进行车辆行人检测,KITTI包含各种道路场景采集的真实图像数据,KITTI数据集共包含九类,分别为Car,Van,Truck,Pedestrian,Person(sitting),Cyclist,Tram,Misc和Dontcare,由于KITTI中有两类为“Misc”和“Dontcare”,分别为“杂乱无章”类和“不关心的”类,这两种类别是无意义的,并且由于这两类没有特定的目标特征,在不同的图片中其“Misc”类可能包含的物体是不同的,本发明对原始KITTI数据集中的“Misc”和“Dontcare”剔除,形成KITTI-7Classes数据集,本发明将在KITTI-7Classes上进行训练和测试;
所述车辆行人检测算法包含以下步骤:
步骤一、下载当前目标检测领域通用数据集KITTI道路目标数据集,KITTI数据集是目前最大的自动驾驶场景下数据集,剔除原始KITTI数据集中的“Misc”和“Dontcare”两类数据,创建KITTI-7Classes道路目标数据集,使用该数据集可保证算法检测效果与该领域公开的通用数据集保持一致,构建了本发明使用的道路目标数据集;将测试集、验证集与训练集按照6:2:2的比例划分;
步骤二、使用标准YOLOv4网络训练并识别和定位车辆行人;使用标准YOLOv4网络对基于步骤一道路目标数据集进行训练,下载标准YOLOv4网络并进行编译,标准YOLOv4网络的下载地址:https://github.com/AlexeyAB/darknet;为道路目标数据kitti-7classes更改cfg文件夹中kitti7.data文件中的训练集、验证集、测试集目录为下载数据集的地址,指定类别数量与类别名称,在训练执行的命令行中根据精度要求设定迭代次数(epoch)为100,根据本次实验数据集加载kitti7.data,同时加载yolov4.cfg,程序即可开始训练;保存训练过程中各层的权重文件Q1,作为训练结束后检测的权值输入文件;利用权重文件Q1进行测试,得到均值平均精度(Mean Average Precision,mAP)、召回率(Recall)与检测时的帧率(Frame Per Second,FPS);
1)构建YOLOv4网络模型,使用Initialization函数进行神经网络各层权值参数的初始化;
YOLOv4由四个部分组成,分别是:(1)Input输入端:指输入网络原始样本数据;(2)BackBone网络:指进行特征提取操作的卷积神经网络结构;(3)Neck颈部:对主干网络提取的图像特征进行融合,并将融合后的特征传递到预测层;(4)Head头部:对图像中的感兴趣目标物体进行预测,并生成可视化的预测框与目标类别;
下载标准YOLOv4网络后,对YOLOv4网络使用make命令进行编译,形成可执行文件darknet;为道路目标数据集KITTI-7classes编辑cfg文件夹中kitti7.data文件,将class、train、valid、names字符串改为对应数据集的目录与参数,这样就编辑好了标准YOLOv4网络Input部分需要的参数,在训练执行的命令行中设定epoch后,根据本次实验数据集加载kitti7.data,同时加载yolov4.cfg,程序即可开始训练;程序在运行时会使用Initialization函数进行神经网络各层权值参数的初始化;
2)从Input部分输入图片数据,经过Backbone部分,最终输出两个尺度的特征图,并使用分类器输出预测框Pb1与分类概率CPx;
从Input部分输入图片数据,经过Backbone部分,最终输出两个尺度的特征图,将两种不同尺度的特征图送入特征金字塔网络(Featuer Pyramid Network,FPN)组成的Neck部分,并将融合后的特征传递到预测层中,与此同时Head部分完成目标的分类并输出预测框Pb1与分类概率CPx,其中x为每个分类的索引;
3)对这些数据进行IoU与NMS后处理,将预测框Pb2与真实框Gtb对比,并使用Adam算法进行神经网络各层权值更新;
经过Backbone网络生成的预测框Pb1数量太大,对图片中同一物体有大量检测框存在,造成检测结果冗余;YOLOv4的Head部分会同时完成预测框与其对应的分类概率;对这些数据进行IoU与NMS后处理,得到处理好的数据;这里使用的IoU与NMS为标准YOLOv4的CIoU_loss与NMS;经过这些后处理后就可以得到感兴趣目标的预测框Pb2与其对应的分类概率CPx;同时,使用Adam算法使用后处理过程中得到的loss进行神经网络各层权值更新;
4)循环执行步骤2)和3)继续迭代至命令中设定的epoch值,停止训练,输出记录每一层权重与偏移的文件Q1;利用Q1得到的权重与偏移对测试集进行检测,计算得到mAP、Recall与检测时的帧率FPS;
本发明按照精度要求设置迭代阈值epoch=100,迭代次数小于阈值时,使用Adam算法进行网络各层权值更新,直到阈值epoch=100停止训练,计算mAP与Recall,输出记录每一层权重与偏移的文件Q1;
YOLOv4拥有良好的实时性,模型检测速度与模型权重文件大小也是非常重要的评价指标;检测速度因硬件配置不同而不同,本发明中所有实验使用同一硬件平台,检测速度的标准为每秒检测的图片数量,基于YOLOv4的车辆行人目标的检测表明模型检测速度不高,内存占用大,为了进一步提升检测速度和检测精度设计了基于FMish激活函数dense-FMish-YOLOv4与Dense-FMish-YOLOv4-Small模型;
步骤三、设计FMish激活函数,使得函数在零点处梯度并不突变,而是为非常小的负梯度,避免了饱和问题,而且在x0部分其梯度略小于Mish,与Mish相比FMish函数较为平缓,可以保证训练过程的稳定性;
本发明设计了FMish激活函数,Mish激活函数与本发明设计的FMish公式如下:
其中x为批标准化(Batch Normalization,BN)层传递的矩阵;
本发明在Dense-YOLOv4与Dense-YOLOv4-Small网络结构的基础上,引入了FMish激活函数,将全部的激活函数替换为FMish激活函数,称为Dense-FMish-YOLOv4与Dense-FMish-YOLOv4-Small算法;
步骤四、将步骤二与步骤三模型性能的检测结果进行对比,包括模型检测精度、模型检测速度、模型检测召回率、模型权重文件大小,并查看步骤二与步骤三实际检测的数据集中的图像,分析检测结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学;陕西理工大学,未经西安电子科技大学;陕西理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210007093.5/1.html,转载请声明来源钻瓜专利网。