原始 YOLOv8 训练结果:
YOLOv8 + MobileNetV3改进后训练结果:
YOLOv8 + MobileNetV3 + CA 注意机制 + 添加小目标检测层改进后训练结果(极限涨点):
摘要
小目标检测难点众多,导致很多算法对小目标的检测效果远不如大中型目标。影响算法性能的主要原因如下:第一,小目标分辨率低、信息量不足,导致神经网络提取到的有效特征较少。第二,小目标在图像中所占的区域较小,易受背景干扰,这对算法的定位性能要求较高。第三,小物体标注困难,训练数据有限,导致模型泛化能力差。例如多尺度学习、无锚机制和生成对抗学习等方法,都能提高小目标检测的准确性和鲁棒性。为了改善小目标漏检现象严重的问题,我在 YOLOv8 中增加了 P2 检测头,相当于有四个检测头,使网络能检测到更小的目标。P2 层融合了位置信息丰富的4倍下采样特征图,能将更多浅层特征传递到深层特征,有利于增强网络提取的多尺度特征图的表达能力,使网络更好的进行多尺度目标检测,并且主干网络改成 MobileNetV3 和在 Head 部分添加 CA注意机制,形成新的融合网络模型,助力极限涨点。接下来手把手教你如何添加 MobileNetV3+CA 注意机制+添加小目标检测层。
小目标理论
在YOLOv8 中,输入图像的尺寸为 640x640x3,经过 8 倍、16 倍和 32 倍下采样后分别得到 80x80、40x40 以及 20x20 大小的特征图,网络最终在这三个不同尺度的特征图上进行目标检测。在这三个尺度的特征图中,局部感受野最小的是 8 倍下采样特征图,即如果将该特征图映射到原输入图像,则每个网格对应原图 8x8 的区域。对于分辨率较小的目标而言,8 倍下采样得到的特征图感受野仍然偏大,容易丢失某些小目标的位置和细节信息。为了改善目标漏检现状,对 YOLOv8 的 Head 结构进行优化,在原有的三尺度检测头的基础之上,新增一个针对微小目标检测的检测头 ,YOLOv8 原有 P3、P4 和 P5 这 3 个输出层,分别用于检测小、中、大目标,增加 P2 检测层后,网络能在4个不同尺度的特征图上做检测,P2 能检测到最小目标分辨率为 4x4。通过增加小尺度检测头的方式,整个网络能在 4 倍、8 倍、16 倍和 32 倍下采样特征图上预测不同尺度的目标,大幅度提高了算法的多尺度目标检测性能。四个检测头如下表格所示:
名称< |
---|