收藏 分享(赏)

基于YOLO的多类别多目标检测算法改进_马帅.pdf

上传人:哎呦****中 文档编号:2563818 上传时间:2023-07-12 格式:PDF 页数:4 大小:935.98KB
下载 相关 举报
基于YOLO的多类别多目标检测算法改进_马帅.pdf_第1页
第1页 / 共4页
基于YOLO的多类别多目标检测算法改进_马帅.pdf_第2页
第2页 / 共4页
基于YOLO的多类别多目标检测算法改进_马帅.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、68|电子制作 2023 年 6月软件开发0 引言智能车辆的技术可分为四个层面:环境感知、行为决策、路径规划和运动控制,环境感知是获取外部信息的唯一渠道。随着计算机硬件资源和卷积算法的不断突破,基于CNN(卷积神经网络)的目标检测算法也得到质的提升,并且在精度和性能方面取得了显著成果1。基于 CNN 的目标检测算法目前主要分为 Two-Stages(二阶段)和 One-Stage(一阶段)两种2,两阶段目标检测算法主要有R-CNN、SPP-Net、Fast R-CNN 系列和 Mask R-CNN 等;单阶段目标检测算法主要有 SDD 算法和 YOLO 系列算法。智能驾驶感知应达到实时识别的要

2、求,所以只能采用一阶段算法。智能驾驶环境感知现如今分为两个派别:多传感器信息数据融合和视觉感知,基于视觉的环境感知成本相对来说要低得多。本文的自动驾驶目标检测仍选用 YOLO V3 作为视觉感知算法基础框架,针对 YOLO V3 检测器识别精度不高,且检测速度和模型大小均有一定的提升空间的问题,提出了一些可行方案。1 YOLO V3 网络结构YOLO V3 的检测过程细分可以分两步:首先确定检测目标的位置,再对被检测目标进行分类。网络接收到图像数据先将其宽高尺寸变为 416416,经过一系列的卷积操作、残差结构及上采样处理,最后输出目标物体位置、类别以及置信度。不同于 YOLO V2 的检测策

3、略,YOLO V3 具有三个不同尺度上的检测,而YOLO V2只有一个检测头(Detection Head),不同的尺度特征包含丰富的语义信息。YOLO V3网络结构图如图 1 所示。当输入尺寸为 416416 时,32 倍/16 倍/8 倍下采样后三个检测头的大小分别为 1313、2626 和 5252。YOLO V3仍使用K-Means聚类法生成Anchor Box(先验框)。简单来说,Anchor Boxes 就是对预测的对象范围进行约束,对于每一个网格都生设置 3 个 Anchor Boxes,由于在三个不同尺度 Feature Map 上做预测,所以一个位置共有 9 个Anchor

4、Boxes。该算法的缺点是对于小而密集目标检测效果不佳,且检测速度和模型大小均有进一步的优化空间。基于 YOLO 的多类别多目标检测算法改进马帅1,田国富1,张文鹏1,周淑文2(1.沈阳工业大学,辽宁沈阳,110027;2.东北大学,辽宁沈阳,110167)摘要:针对智能驾驶感知算法检测效果不佳、模型过大等问题,在YOLO V3算法上进行改进,首先选取了一种更加高效且更符合实际需求的激活函数GELU激活函数,构建的DBG模块不仅在负区间对数值处理更加得当,且在一定程度上抑制过拟合倾向;考虑到目标语义信息和位置信息分布不均对检测效果的影响,提出双塔结构将两种信息进一步融合,并在中路增加DBG模块

5、对融合后的信息强化提取,进一步提升目标的识别率;本着精度不变的条件下模型越小越好的原则对模型进行层级剪枝优化,提高了智能驾驶感知算法的检测速度且降低了模型大小。实验首先通过K-Means聚类算法生成先验框,最后在BDD100K数据集上进行测试,实验结果相比YOLO v3算法,Bus检测精度提升了5%,Bike和Rider检测精度提升了3%;改进前后mAP提高了2.375%;且FPS提升7%;模型大小由240882KB减少到234134KB,具有更好的实用性。关键词:智能驾驶;信息融合;DBG模块;YOLO;K-Means图 1 YOLO V3 网络结构图DOI:10.16589/11-3571

6、/|69软件开发2 YOLO V3-S 网络结构 2.1 GELU 激活函数神经网络中包含丰富的非线性因素,如:SMU、Relu、Maxout 和 SLU 等激活函数,激活函数可以加强网络的非线性能力。在 YOLO V3 网络中采用的 Leaky Relu 激活函数避免了死亡 Relu 问题,因为即使在负区间也有一定的数值允许较小的梯度传递,缺点是无法避免梯度爆炸问题且对负值处理不当,在微分时左右两部分都是线性的。如果想要网络模型具有很好的泛化能力,可用的方法有扩大数据集、设置更大的 Batch Size、采用数据增强手段和随机失活(Dropout),增加数据集容量增加了成本,更大的 Batc

7、h Size 对硬件提出了更高的挑战,所以数据增强和随机失活变成了常用的去拟合手段。随机失活遍历网络中的每层节点通过预先设定的概率保证每层节点的成活性,来减轻神经网络的过拟合。GELU 作为一种符合预期的随机正则变化方式的高性能激活函数,在 Relu 的基础上加入了统计的特性,即增加了网络的非线性能力又抑制了网络的过拟合倾向,如图 2 所示函数曲线。图 2 GELU 和 Leaky ReLU 激活函数 图 3 DBG 模块YOLO V3 网络模型中包含很多的 DBL 模块,鉴于上述所述的 Leaky Relu 的缺点和 GELU 激活函数的优点,构建DBG 模块替换原网络中的 DBL 模块,如

8、图 3 所示。2.2 定位信息和语义信息融合顶层语义信息虽然丰富,但网络层数越多会导致位置信息变得更加模糊,这就造成了顶层特征的目标类别预测可能会很准确,但目标的位置预测信息可能会很差;如果选择一个浅层网络作为目标检测的卷积神经网络,目标的位置预测信息可能很准确,但是目标类别预测可能会差很多。YOLO V3 中的 FPN 结构融合了底层的位置信息和顶层的语义信息,扩大了底层的感受野,使得底层位置获得了更多的上下文信息,提高了目标检测算法的性能表现。一方面 FPN 增加了算法的检测能力。另一方面由于经历连续的上采样操作(Up Sample),使得上采样后的特征信息形成了一定程度的损坏,为了恢复每

9、一个候选区域和特征层之间的信息和路径,参考PANet 网络结构,增加下采样操作(Down Sample)构成双塔结构,与相邻特征图进行信息融合。为了防止连续下采样操作对图像数据位置信息以及语义信息造成损失,在26*26*45 支路增加一次卷积操作做进一步的特征提取。2.3 模型简化网络轻量化的方法有很多种,主要包括采用轻量化主干网络、知识蒸馏和模型剪枝。随着对算法的性能要求越来越高,虽然Alexnet网络很大程度上地提升了算法的检测精度,但是也增大了计算量和模型大小,目前工业界除了对检测精度有要求,对于检测速度和模型大小也有很大的要求,想要算法走出实验室,必须要综合考虑上述问题作为自动驾驶视觉

10、感知的目标检测算法除了要满足精度上的要求外,对网络模型大小以及检测速度也有一定的要求,车载平台系统内存有限,优秀的目标检测算法在保证精度的同时占用越小的内存越好。模型剪枝是通过一定手段删除网络中的冗余参数,从而起到降低网络模型大小,提高检测速度的目的。模型剪枝按照剪枝粒度可分为细粒度剪枝、向量剪枝、核剪枝和滤波器剪枝。前三种在网络的推理过程中每个卷积层的输出通道数不会发生改变,属于非结构化剪枝;滤波器剪枝会影响网络中卷积层的输出通道数,属于结构化剪枝。在图像经过主干网络特征提取后几乎都会经过 DBL*5 的卷积操作,这种运行成本是巨大的,虽然进一步加强了网络的特征提取能力,但是也使得网络变得更

11、深从而导致目标物体位置信息变得更加模糊,且加大了模型的计算量和大小。本文将 DBL*5的卷积组替换为 DBG*3,一方面使得目标物体位置信息更加清晰,另一方面降低了网络的运算量并缩减了模型,最终YOLO V3-S 网络结构如图 4 所示。3 性能评价指标衡量一个视觉识别器的好坏有很多种指标:如精确率(Precision),平均精度(mAP)等。Precision 表示检测正样本中正确的比例,召回率(Recall)表示正确检测正样本占所有正样本的比例,AP 值为两者曲线下的面积3,表示每个类别在所有测试图像上的平均值,AP 值越高,表70|电子制作 2023 年 6月软件开发明识别器的识别性能越

12、好;所有类别的平均精度 mAP 是评价识别器的综合性能指标,计算的是全部类别的平均精度;检测速度 FPS 是指画面每秒传输的帧数4。大而复杂的模型在实际应用中难以落地,且网络模型庞大存储起来不便。综上所述,本文选取 AP、mAP、检测速度以及模型大小作为综合评价指标。4 数据集BDD100K 数据集2018 年伯克利 AI 实验室公布了一个丰富的智能驾驶数据集BDD100K5。该数据集对真实场景中每个视频的第十秒进行截取得到 10 万张图像,图像尺寸为 1280720。数据集中的视频来自美国人口众多的城市,在各种天气条件、时间和场景类型下进行采集,几乎覆盖了所有的驾驶场景。类别方面:在 BDD

13、100K 数据集中共有 10 类别,分别为汽车、路灯、交通标志、行人等等,数据集中的汽车的数量最多,火车的数量最少,与现实驾驶相符。所有类别都遵循“长尾”分布,大约一半的图像目标被遮挡,约 7%的图像目标被截断。天气、场景和时段方面:BDD100K 的十万高清视频是在不同天气条件下采集的,覆盖了大部分的天气情况,如晴天、雨天、雾天等等;采集场景包括城市街道、高速公路和住宅区等等;白天和黑天的图片数量比例达到了5:4。由于数据集中 Motor 和 Train 图像数据量过少,所以只选取前 8 个类别作为研究对象。5 实验平台及训练策略为了测试YOLO V3在BDD100K数据集上的识别性能,实验

14、环境在个人笔记本电脑上进行搭建,电脑配置及软件如表 1 所示。在之前的数据集格式转换过程中,训练集共有69888 个 Json 文件转换成功,为了进一步加快训练,在这69888 个文件中进一步划分训练集、验证集,划分后的测试集 56608 张,验证集 6288 张,测试集 6288 张。训练过程共 50 轮,后 30 轮进行全参数更新。初始学习率为 0.001,衰减率设置为 0.0005;因冻结阶段占用显存较小,所以Batch-Size 设置为 8;相反解冻阶段占用显存较大,Batch-Size 设置为 4,输入图片尺寸宽高均 Resize 为 416416,迭代次数为 566080。表1 电

15、脑配置及软件汇总表配置名称参数笔记本电脑Legion R9000P2021H操作系统Windows10CPU处理器AMD R7-5800HGPU处理器RTX3060/6GAnaconda3.0Python3.7Pycharm2021.2.2Pytorch1.7.1CUDACuda11.0CUdnn11.0对于目前的单阶段目标检测算法而言,准确度高的先验框可以很大程度上的提高算法精度。为了提高先验框的准确度,重新在 BDD100K 数据集进行 K-Means 聚类分析。最终确定的 Anchor Boxes 尺寸从小到大为(12,12)、(15,21)、(22,47)、(23,14)、(27,24

16、)、(45,33)、(66,58)、(130,96)和(277,219),Avg-IOU 的值为 68.67%。6 实验结果分析为了验证改进前后的算法优劣性,四次实验均在同一台设备上运行。从表 2 可以看出,高性能 GELU 激活函数的采用等顶底双层信息融合等操作均使得算法性能稳步提升,采用 GELU 函数后的 Bike 和 Rider 提升较大,上升 3%,特征融合后精度虽无明显提升,但是在测试过程中对于小目标的物体识别率比较高。YOLO V3-S 对于 YOLO V3 而言,图4 YOLO V3-S结构图|71软件开发每一个类别都有提升,其中 Bus 提 升 了 5%,Bike和 Rider 提 升 了 3%;改 进 前 后 mAP 提 高 了2.375%;FPS 提 升 7%;模型大小由 240882KB 减少到 234134KB。综上所述,YOLO V3-S 算法对比YOLO V3 算法在检测精度AP、检测速度 FPS 和模型大小上均有不同程度的提高,各个方面明显优于YOLO V3 算法。同时选取BDD100K 数据集中测试集中部分图片进行检测对比,图5为YOLO V3网络检测

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 专业资料 > 其它

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2