在目标检测方面,如何对yolov5进行优化改进?

作者|Edison_G  编辑|3D视觉开发者社区

一、前言

在目标检测方面,如何对yolov5进行优化改进?_第1张图片

 交通标志检测对于无人驾驶系统来说是一项具有挑战性的任务,特别是对于多尺度目标的检测和检测的实时性问题。在交通标志检测过程中,目标的尺度变化很大,会对检测精度产生一定的影响。

在目标检测方面,如何对yolov5进行优化改进?_第2张图片

 特征金字塔被广泛用于解决这个问题,但它可能会破坏不同尺度交通标志的特征一致性。而且,在实际应用中,常用的方法很难在保证检测实时性的同时提高多尺度交通标志的检测精度。

在今天分享中,研究者提出了一种改进的特征金字塔模型,命名为AF-FPN,它利用自适应注意力模块(AAM)和特征增强模块(FEM)来减少特征图生成过程中的信息丢失并增强表示能力的特征金字塔。将YOLOv5中原有的特征金字塔网络替换为AF-FPN,在保证实时检测的前提下提高了YOLOv5网络对多尺度目标的检测性能。此外,提出了一种新的自动学习数据增强方法来丰富数据集并提高模型的鲁棒性,使其更适合实际场景。在Tsinghua-Tencent 100K (TT100K) 数据集上的大量实验结果证明了与几种最先进的方法相比所提出的方法的有效性和优越性。

二、背景

在目标检测方面,如何对yolov5进行优化改进?_第3张图片

 交通标志识别系统化是自动驾驶中最重要的一部分,怎样去提升交通标志检测和识别技术的精度和实时性能,这个也是现在当技术实际落地时需要解决的重要问题。传统的CNN通常需要大量的参数和浮点运算 (FLOP) 以达到准确性令人满意的效果,例如ResNet-50有大约2560万个参数和需要4.1B FLOPs来处理大小为224×224的图像。然而,移动设备(例如智能手机和自动驾驶汽车)有限的内存和计算资源不能用于大型网络的部署和推理。作为一个one-stage检测器,使用YOLOv5是由于具有计算量小、速度快的优点。

三、新框架详细分析

在目标检测方面,如何对yolov5进行优化改进?_第4张图片

 The improved YOLOv5s network framework

作为当前YOLO系列中的最新框架,卓越的YOLOv5其灵活性使其便于快速在车辆硬件方面进行部署。YOLOv5包含四个模型,分别是YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x。YOLOv5s是YOLO系列最小的模型,更适合部署在车载移动硬件平台,由于其内存大小为14.10M,但识别精度达不到准确、高效识别的要求,尤其是用于识别小规模目标。YOLOv5的基本框架可以分为四个部分:input、backbone、neck和prediction。Input部分通过数据增强来丰富数据集,它具有对硬件设备要求低,计算量成本低。但是它会导致数据集中原来的小目标变小,从而导致数据集的恶化,降低模型的泛化性能。Backbone部分主要由CSP模块组成,它们通过CSPDarknet53执行特征提取。FPN和PANet用于聚合Neck现阶段的图像特征。最后,网络通过Prediction进行目标预测和输出。

研究者引入AF-FPN自动学习数据增强来解决模型大小和识别精度不兼容的问题,进一步提高模型的识别性能。将原有的FPN结构替换为AF-FPN,以提高识别多尺度目标的能力,并在识别速度和准确率之间做出有效的权衡。

此外,研究者去除原始网络中的mosaic augmentation,并根据自动学习数据增强策略使用最佳数据增强方法来丰富数据集并提高训练效果。改进后的YOLOv5s网络结构如下图所示。

在目标检测方面,如何对yolov5进行优化改进?_第5张图片

 AF-FPN structure

AF-FPN在传统特征金字塔网络的基础上,增加了自适应注意力模块(AAM)和特征增强模块(FEM)。前一部分由于减少了特征通道,减少了在高层特征图中上下文信息的丢失;后一部分增强了特征金字塔的表示并加快了推理速度,同时实现了最先进的性能。AF-FPN的结构如下图所示。在目标检测方面,如何对yolov5进行优化改进?_第6张图片

 AAM的具体结构如下图所示,作为自适应注意力模块的输入,C5的大小为S=h×w。它首先通过自适应池化层获得不同尺度(β1×S,β2×S,β3×S)的上下文特征。然后每个上下文特征经过1×1卷积,得到相同的通道维度256。使用双线性插值将它们上采样到S的尺度,用于后续融合。

在目标检测方面,如何对yolov5进行优化改进?_第7张图片

 空间注意力机制通过一个Concat层将三个上下文特征的通道合并,然后特征图依次通过1×1卷积层、ReLU激活层、3×3卷积层和sigmoid激活层生成对应的空间权重。生成的权重图和合并通道后的特征图进行Hadamard乘积运算,分离后加入到输入特征图M5中,将上下文特征聚合到M6中。最终的特征图具有丰富的多尺度上下文信息,在一定程度上缓解了由于通道数减少而造成的信息丢失。

在目标检测方面,如何对yolov5进行优化改进?_第8张图片

 FEM主要利用空洞卷积根据检测到的交通标志的不同尺度自适应学习每个特征图中不同的感受野,从而提高多尺度目标检测和识别的准确性。如上图所示,它可以分为两个部分:多分支卷积层和多分支池化层。多分支卷积层用于通过空洞卷积为输入特征图提供不同大小的感受野。并且平均池化层用于融合来自三个分支感受野的交通信息,以提高多尺度预测的准确性。

Data Augmentation

数据增强我就简单描述下,具体如下示例:

在目标检测方面,如何对yolov5进行优化改进?_第9张图片

四、实验结果及可视化

在目标检测方面,如何对yolov5进行优化改进?_第10张图片

 Size distribution of sign instances from the TT100K

在TT100K数据集上与其他模型的性能比较

在目标检测方面,如何对yolov5进行优化改进?_第11张图片 在目标检测方面,如何对yolov5进行优化改进?_第12张图片

 每种方法对19种交通标志的漏检率比较

在目标检测方面,如何对yolov5进行优化改进?_第13张图片 在目标检测方面,如何对yolov5进行优化改进?_第14张图片

 移动设备部署及通过摄像头拍摄的检测实例

在目标检测方面,如何对yolov5进行优化改进?_第15张图片

 版权声明:本文为奥比中光3D视觉开发者社区特约作者授权原创发布,未经授权不得转载,本文仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文。

3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。点击加入[3D视觉开发者社区]和开发者们一起讨论分享吧~

你可能感兴趣的:(目标检测,人工智能,yolov5)