一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于SimAM-YOLOv4的自动驾驶目标检测算法

2022-08-28 03:49:51 来源:中国专利 TAG:

一种基于simam-yolov4的自动驾驶目标检测算法
技术领域
1.本发明涉及一种基于simam-yolov4的自动驾驶目标检测算法。


背景技术:

2.近年来,随着智能交通和人工智能技术的高速发展,自动驾驶技术成为汽车领域的研究热点。然而,自动驾驶场景下的道路环境复杂。一方面,车辆行驶过程中光线和相对角度等因素的变化,导致目标的特征发生改变,从而产生目标检测漏检和误检的现象。另一方面,行人姿态改变以及车辆局部遮挡,容易产生目标检测的漏检和误检。因此在复杂的道路场景中,如何准确、快速地检测出车辆与行人是自动驾驶技术的重点研究内容。
3.目前主流的目标检测算法主要分为两类,传统的目标检测算法以及基于深度学习的目标检测算法。其中传统的目标检测算法主要通过矩形的滑动窗口去搜索图片内的目标,而后利用surf、hog等手工特征输入支持向量机、adaboost等分类器中进行识别。然而在自动驾驶场景中,环境复杂多变,目标往往形态各异,手工特征往往达不到理想的检测效果,并且传统的目标检测技术检测效率低、精度差、鲁棒性不足,不能达到实际要求。
4.基于深度学习的目标检测算法自动学习检测目标的高级语义特征,避免了手工特征泛化能力差的问题,具有较高的检测精度和较快的检测速度,已成为自动驾驶目标检测的主流算法。目前基于深度学习的目标检测算法大概可以分为单阶段和二阶段的目标检测算法。其中二阶段目标检测算法以r-cnn系列为代表,此类算法首先通过提取候选框获取感兴趣部分并缩放到固定大小,再通过大规模的卷积神经网络提取图片的特征信息,最后再进行目标分类与回归。此算法虽然可以获得较高的精确度,但是其所有的候选框皆需送入大规模的卷积神经网络中,耗费时间过长,导致无法达到自动驾驶的实时性要求。单阶段目标检测算法以ssd网络、yolo网络等为代表,相较于二阶段目标检测算法,此类算法无需预先设置获取候选框获取目标信息,便可直接输出目标的位置信息与类别,大大提高了检测效率。
5.尽管当前的检测算法提升了检测效率,但是常以牺牲检测精度为代价。因此如何在不降低检测效率的前提下提高检测精度,成为了亟待解决的问题。卷积神经网络较深层的特征语义信息更为丰富,但对于检测密集的对象并不有效。在自动驾驶场景下,目标遮挡是行人检测中经常遇到的难题。注意力机制常被用来改善复杂交通环境下的目标检测,突出人脸或车辆等目标特征。


技术实现要素:

6.为解决自动驾驶场景下目标检测方法识别精度不高的问题,本发明提供了一种基于simam-yolov4的自动驾驶目标检测算法,在满足实时性需求的前提下,能够有效提升网络模型的检测精度,所述技术方案如下:一种基于simam-yolov4的自动驾驶目标检测算法,包括以下步骤:步骤一: 下载kitti自动驾驶数据集中的2d目标检测数据集,将原始数据标签进
行调整,将汽车、箱式汽车与货车合并为汽车;将行人与坐着的人合并为人;骑车的人不作调整;删除电车和杂项,将训练集与测试集按照7:3比例划分;步骤二:将训练集输入原始yolov4网络进行训练,加载原始网络的预训练模型,设定训练迭代次数为500,在训练过程中保存每次训练权重,再将其作为测试的输入权重,然后输入测试集得到预测结果。由于网络检测性能的原因,存在小目标漏检现象,网络的检测性能并不佳;步骤三:对yolov4主干网络中的残差结构进行改进,引入simam注意力模块,同时用acon-c激活函数替换mish激活函数,得到simam-yolov4网络模型,输入训练样本,运用迁移学习训练模型权重,确定simam-yolov4的网络模型,加载测试样本,得到模型的预测结果;步骤四:将步骤三中的模型与步骤二中的模型实验结果进行对比,分析检测结果。实验检测的精度评价指标选用map值(mean average precision)来衡量,map值表示所有所有类别的平均精度值(average precision,ap)的平均值,而ap值是由精确率(precision)和召回率(recall)形成的pr曲线和横纵坐标组成的面积计算得到。选用fps(frames per second)去衡量算法的检测速度,即每秒处理的图片数量或者处理每张图片所需要时间。
7.可选地,步骤一具体是:选用当前国际上最大的自动驾驶场景下的计算机视觉评测数据集kitti作为实验数据集,数据集共7481张图片,分8个类别:汽车、箱式汽车、货车、行人、坐着的人、骑车的人、电车和杂项。在实验中考虑到实际场景的复杂性,将数据集的类别进行调整,汽车、箱式汽车与货车合并为汽车;将行人与坐着的人合并为人;骑车的人不作调整;删除最后两个类别。最终得到样本数:汽车33261个、行人4709个、骑车的人1627个。
8.可选地,步骤三所述simam-yolov4网络模型具体是:为实现在不增加网络深度的前提下提升网络的检测精度,simam-yolov4算法仅对yolov4主干网络中的残差结构进行改进,通过对传递特征的筛选,使得残差融合时保留更加有效的特征,降低特征损失,有利于后续的定位与分类。对于目标检测任务而言,主干网络对于不同的目标所关注的特征是不同的,如果在训练开始时就以同样的关注度对待每一张特征图,会加快网络的收敛速度。同时,在保证实时性的前提下,由于不引入额外的参数能够保持模型的大小,并且获得了良好的map提升,因此选用无参注意力模块是一个较好的选择。cspdarknet53主干网络存在大量的残差模块连接,因此在残差模块中嵌入注意力模块时需要对其模块结构进行一定的调整。对原始的残差结构的改进包括两个方面,一方面利用acon-c激活函数替换原有的mish激活函数,改善网络可学习的上下限,另一方面通过将simam注意力模块嵌入到两个卷积块之后,度量神经元之间的线性可分性,寻找重要的神经元,最后利用跳跃连接,实现原始特征图的重要信息进行筛选。
9.可选地,步骤三具体过程是:采用迁移学习技术训练模型,首先将原始yolov4网络的预训练模型的参数加载到simam-yolov4网络中进行训练,总共迭代500次,前100次迭代采用冻结主干网络参数训练,防止训练初期权值被破坏,加快训练速度,此时批量大小设定为8,学习率设定为0.001,剩余400次迭代;然后将所有参数解冻并全部参与训练,批量大小设定为4,学习率设定为0.0001;最后将输入图片的分辨率大小设定为608x608,优化策略采用余弦退火的adam优化算法,设定参数t_max为5,参数eta_min为0.00001。
10.本发明实施例提供的技术方案带来的有益效果是:
本发明提出一种基于改进yolov4的自动驾驶场景目标检测任务的算法,针对原始yolov4对于小目标检测精度低的问题,simam-yolov4使用simam无参注意力模块结合acon-c激活函数改进主干网络中的残差结构,引导网络对所提取出的特征图进行充分的修正,更好地筛选出有利于后续检测的特征。在kitti数据集上的map达到了91.19%,较原始模型提升了5.34%,检测速度达到32fps。在满足实际自动驾驶对目标检测实时性需求的前提下,以较低的推理耗时换取了较大的检测精度提升。同时模型大小为245mb,与原模型大小几乎相同,可以更好地应用在自动驾驶场景中。
附图说明
11.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
12.图 1是本发明实施例的方法流程图;图 2是本发明实施例的改进cspdarknet53的残差模块;图 3是本发明实施例的原始yolov4算法与simam-yolov4算法的检测效果对比图,3(a)是原始yolov4检测效果图,3(b)是simam-yolov4检测效果图。
具体实施方式
13.下面结合附图与具体实施方式对本发明作进一步详细描述。
14.如图1所示为本发明实施例的方法流程图,具体步骤如下:步骤一: 下载kitti自动驾驶数据集中的2d目标检测数据集,将原始数据标签进行调整,将汽车、箱式汽车与货车合并为汽车;将行人与坐着的人合并为人;骑车的人不作调整;删除电车和杂项,将训练集与测试集按照7:3比例划分;步骤二:将训练集输入原始yolov4网络进行训练,加载原始网络的预训练模型,设定训练迭代次数为500,在训练过程中保存每次训练权重,再将其作为测试的输入权重,然后输入测试集得到预测结果。由于网络检测性能的原因,存在小目标漏检现象,网络的检测性能并不佳;步骤三:对yolov4主干网络中的残差结构进行改进,引入simam注意力模块,同时用acon-c激活函数替换mish激活函数,得到simam-yolov4网络模型,输入训练样本,运用迁移学习训练模型权重,确定simam-yolov4的网络模型,加载测试样本,得到模型的预测结果;步骤四:将步骤三中的模型与步骤二中的模型实验结果进行对比,分析检测结果。实验检测的精度评价指标选用map值(mean average precision)来衡量,map值表示所有所有类别的平均精度值(average precision,ap)的平均值,而ap值是由精确率(precision)和召回率(recall)形成的pr曲线和横纵坐标组成的面积计算得到。选用fps(frames per second)去衡量算法的检测速度,即每秒处理的图片数量或者处理每张图片所需要时间。
15.所述步骤一中的具体情况如下:选用当前国际上最大的自动驾驶场景下的计算机视觉评测数据集kitti作为实验数据集,数据集共7481张图片,分8个类别:汽车、箱式汽车、
货车、行人、坐着的人、骑车的人、电车和杂项。在实验中考虑到实际场景的复杂性,将数据集的类别进行调整,汽车、箱式汽车与货车合并为汽车;将行人与坐着的人合并为人;骑车的人不作调整;删除最后两个类别。最终得到样本数:汽车33261个、行人4709个、骑车的人1627个。
16.所述步骤三中的具体情况如下:yolov4算法具有较高的实时性检测能力得益于其全卷积神经网络结构和较小的卷积核尺寸以及回归边界框的算法结构的设计,为实现在不增加网络深度的前提下提升网络的检测精度,simam-yolov4算法仅对yolov4主干网络中的残差结构进行改进,通过对传递特征的筛选,使得残差融合时保留更加有效的特征,降低特征损失,有利于后续的定位与分类.cspdarknet53主干网络存在大量的残差模块连接,因此在残差模块中嵌入注意力模块时需要对其模块结构进行一定的调整,对原始的残差结构的改进包括两个方面,一方面利用acon-c激活函数替换原有的mish激活函数,改善网络可学习的上下限,另一方面通过将simam注意力模块嵌入到两个卷积块之后,度量神经元之间的线性可分性,寻找重要的神经元,最后利用跳跃连接,实现原始特征图的重要信息进行筛选.1)simam模块是一种无参数的注意力模块,从神经科学理论出发,为挖掘重要神经元,构建一种能量函数simam算法首先评估每个神经元的重要性,在神经科学中,信息丰富的神经元通常表现出与周围神经元不同的放电模式,而且,激活神经元通常会抑制周围的神经元,即空域抑制,所以具有空域抑制效应的神经元应该被赋予更高的重要性.通过度量神经元之间的线性可分性去寻找重要神经元,因此定义如下能量函数:其中,,,最小化上述公式等价于训练统一通道内神经元t与其他神经元之间的线性可分性,采用二值标签,并添加正则项,最终能量函数定义如下: 理论上,每个通道有m=hxw个能量函数,上述公式具有如下解析解:其中,,,因此,最小能量可以通过如下公式得到:综上,通过最小能量公式得出,若神经元t的能量越低,则它与周围神经元的区别
越大,重要性也越高。因此神经元的重要性可以通过得到. 2)acon-c激活函数是一种简单有效的激活函数,其函数表达式如下公式所示:其中s
β
为平滑最大值函数的微分形式,β为平滑因子,σ表示sigmoid函数,该激活函数采用了双自变量函数,带有一个额外的超参数β,作用是在功能上使用超参数缩放,通过新增加p1与p2两个超参数,改善可学习的上界与下界.本发明的simam-yolov4网络模型为:首先,将轻量型注意力模块simam引入主干网络,在不增加参数量的前提下加速权值的计算,使得精炼的特征更加聚焦目标主体;然后,采用一种新的激活函数acon-c加速分类过程,进一步提高检测精度;最后,提出的模型在保证实时性的前提下,达到了较高检测精度。
17.所述步骤四中的具体情况如下:将步骤三中的模型与步骤二中的模型实验结果进行对比,分析检测结果。实验检测的精度评价指标选用map值(meanaverageprecision)来衡量,map值表示所有所有类别的平均精度值(averageprecision,ap)的平均值,而ap值是由精确率(precision)和召回率(recall)形成的pr曲线和横纵坐标组成的面积计算得到,其中precision与recall的计算方式如下:其中tp值为正类样本预测为正类样本的数量,fp值为将负类样本预测为正类样本的数量,fn值为将正类样本预测为负类样本的数量。选用fps(framespersecond)去衡量算法的检测速度,即每秒处理的图片数量或者处理每张图片所需要时间.1)为了验证各个方法改进的有效性,分别采用原始yolov4网络、添加se-attention注意力模块的yolov4网络、添加cbam注意力模块的yolov4网络、添加simam注意力模块的yolov4网络以及同时添加simam注意力模块和激活函数的simam-yolov4网络进行实验对比,网络模型性能对比如表1所示.表1不同模型性能对比通过表1,可以看到原始yolov4在没有改进的条件下,map值为85.85%,加入cbam注意力模块的yolov4,其map值为89.95%,map提升4.1%,fps为20,牺牲25帧每秒,加入se注意力模块的yolov4,其map值为90.08%,map提升4.23%,fps为34,牺牲11帧每秒,加入simam注意力模块,map提升了4.01%,fps为40,牺牲5帧每秒,因此可以看出,simam模块仅仅牺牲了较低的速度,获得了与其他注意力模块相近的map提升。而在加入simam注意力模块的基础
上加入acon-c激活函数,修正了特征向量,使得后续检测可以充分利用特征,map相比原始yolov4提高5.34%,与只加simam注意力模块模型结果提高1.33%。虽然都有检测速度的损失,但能够满足实时性的要求.2)将不同模型在数据集不同类别样本上的检测性能进行对比,实验结果对比如表2所示.表2 不同类别的对比结果通过表2可以看出,原始yolov4对大目标car检测精度很高,而对小目标cyclist、pedestrian的检测精度明显达不到要求。通过嵌入simam注意力模块,car类ap提升2%,cyclist类ap提升6%,pedestrian类ap提升5%。simam-yolov4相较于只引入注意力机制,car类、cyclist类指标基本不变,但pedestrian类ap提升4%。由此可以看出,simam-yolov4有效的解决了原始yolov4对小目标检测精度不足的问题。
18.如图2所示为本发明实施例的改进cspdarknet53的残差模块,具体实现为:利用acon-c激活函数替换原有的mish激活函数,改善网络可学习的上下限,再通过将simam注意力模块嵌入到两个卷积块之后,度量神经元之间的线性可分性,寻找重要的神经元,最后利用跳跃连接,实现原始特征图的重要信息进行筛选。
19.如图3所示为本发明实施例的原始yolov4算法与simam-yolov4算法的检测效果对比图,3(a)是原始yolov4检测效果图,3(b)是simam-yolov4检测效果图.从实验效果可以看出,原始yolov4对检测出来的对象具有较高的置信度,但由于遮挡存在漏检问题,相较而言,引入simam注意力模块有效的解决了漏检问题,但存在某些目标置信度较低的问题,而simam-yolov4既解决了漏检问题也解决了遮挡导致目标置信度较低的问题。
20.以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献