小目标绝技 | 用最简单的方式完成Yolov5的小目标检测升级!

简介: 小目标绝技 | 用最简单的方式完成Yolov5的小目标检测升级!

3cd91ec37021b46a14d55a6462a3164e.png

卷积神经网络 (CNN) 在许多计算机视觉任务(例如图像分类和目标检测)中取得了巨大成功。然而,它们的性能在图像分辨率低或目标很小的任务中迅速下降。


在本文中指出这源于现有 CNN 架构中存在缺陷但常见的设计,即使用Stride卷积和/或池化层,这会导致细粒度信息的丢失和学习效率较低的特征表示。为此,本文提出了一个名为 SPD-Conv 的新 CNN 构建块来代替每个Stride卷积层和池化层(因此完全消除了它们)。


SPD-Conv 由空间到深度 (SPD) 层和非Stride卷积 (Conv) 层组成,可以应用于大多数(如果不是全部)CNN 架构。作者在两个最具代表性的计算机视觉任务下解释了这种新设计:目标检测和图像分类。然后,通过将 SPD-Conv 应用于 YOLOv5ResNet 来创建新的 CNN 架构,并通过经验证明本文的方法明显优于最先进的深度学习模型,尤其是在具有低分辨率图像和小目标的任务上。

1、A New Building Block: SPD-Conv

1.1、Space-to-depth(SPD)

SPD 组件将(原始)图像转换技术推广到对 CNN 内部和整个 CNN 中的特征图进行下采样,如下所示。

考虑任意大小为  的中间特征图X,切出一系列子特征图为:

81dd3887cfc2444c0e1482258bcc5736.png

一般来说,给定任何(原始)特征图 X,子图  由  和  可按比例整除的所有条目  形成。因此,每个子图按比例因子对X进行下采样。图3(a)(b)(c)给出了scale=2时的例子,得到4个子图 , , ,  每个都具有形状并将 X 下采样 2 倍。

0115b848daa75feb4a2579289fbf2e3c.png

接下来,沿着通道维度连接这些子特征图,从而获得一个特征图 ,它的空间维度减少了一个比例因子,通道维度增加了一个比例因子2。换句话说,SPD 将特征图  转换为中间特征图 。图 3(d) 给出了使用scale=2的说明。

1.2、Non-strided Convolution

SPD 特征变换层之后,添加了一个带有  滤波器的非跨步(即 stride=1)卷积层,其中 ,并进一步变换 。

使用非跨步卷积的原因是尽可能地保留所有的判别特征信息。否则,例如,使用 stride=3 的 3×3 卷积,特征图将“缩小”,但每个像素只采样一次;如果 stride=2,将发生不对称采样,其中偶数和奇数行/列的采样时间不同。一般来说,步长大于 1 会导致信息的非歧视性丢失,尽管在表面上,它似乎转换了特征图 (但没有)。

2、如何使用SPD-Conv:案例研究

为了解释如何将提出的方法应用到重新设计CNN架构中,使用了2个最具代表性的计算机视觉模型类别:目标检测和图像分类。这并没有失去一般性,因为几乎所有的CNN架构都使用分层卷积和/或池化操作来降采样特征映射。

2.1、目标检测

YOLO是一系列非常流行的目标检测模型,其中选择了最新的YOLOv5来演示。YOLOv5使用CSPDarknet53SPP模块作为主干,PANet作为颈部,YOLOv3头作为检测头。此外,它还使用了来自 YOLOv4 的各种数据增强方法和一些模块进行性能优化。它使用带有 sigmoid 层的交叉熵损失来计算目标和分类损失,并使用 CIoU 损失函数来计算定位损失。CIoU 损失比 IoU 损失考虑更多细节,例如边缘重叠、中心距离和宽高比。

75774c85f0331515150d82ec0d40f8bb.png

YOLOv5-SPD:将第 3 节中描述的方法应用于 YOLOv5 并获得 YOLOv5-SPD(图 4),只需用用 SPD-Conv 构建块替换 YOLOv5stride-2 卷积即可。这种替换有 7 个实例,因为 YOLOv5 在主干中使用5个 stride-2 卷积层将特征图下采样 25 倍,并在颈部使用2个 stride-2 卷积层。YOLOv5颈部的每个跨步卷积之后都有一个连接层;这不会改变本文的方法,只是将它保持在 SPDConv 之间。

1760d0e6eb40da081378223bf0fb3bd4.png

可扩展性YOLOv5-SPD 可以通过与 YOLOv5 相同的方式轻松扩展和缩减来适应不同的应用程序或硬件需求。具体来说,可以简单地调整(1)每个非跨步卷积层中的过滤器数量和/或(2)C3模块的重复次数(如图4所示),以获得不同版本的YOLOv5-SPD

第1个称为宽度缩放:它将原始宽度 nw(通道数)更改为 nw × width_f actore(四舍五入到最接近的 8 倍数)。

第2个称为深度缩放:它将原始深度 nd(重复 C3 模块的次数;例如,图 4 中的 9 × C3 中的 9)更改为 nd × depth_factor。

这样,通过选择不同的宽度/深度因子,我们得到了YOLOv5-SPD的nano、small、medium和large版本,如表2所示,其中因子值选择与YOLOv5相同,以便在后面的实验中进行比较 .

2.2、图像分类

分类 CNN 通常从一个由 stride-2 卷积和池化层组成的stem单元开始,以将图像分辨率降低4倍。一个流行的模型是 ResNet,它赢得了 ILSVRC 2015 挑战。ResNet 引入了残差连接,以允许训练高达 152 层的网络。它还通过仅使用单个全连接层显着减少了参数的总数。最后使用 softmax 层对类预测进行归一化。

9773d641c4c86113d5a5edca2951b20e.png

ResNet18-SPDResNet50-SPDResNet-18ResNet-50 都使用总共4个 stride-2 卷积和一个 stride 2 的最大池化层,将每个输入图像下采样 25 倍。应用我们提出的构建块,用 SPD-Conv 替换了四个跨步卷积;但另一方面,我们只是删除了最大池化层,因为我们的主要目标是低分辨率图像,我们实验中使用的数据集的图像相当小(Tiny ImageNet 中为 64 × 64,CIFAR-中为 32 × 32) 10)因此不需要池化。对于更大的图像,这样的最大池化层仍然可以用 SPD-Conv 以相同的方式替换。两种新架构如表 3 所示。

3、实验结果

3.1、目标检测

349fc0be1f841373769bd9bca08a5aa8.png349fc0be1f841373769bd9bca08a5aa8.pngd9bb9879de2586f8ce0508cd1709d541.png

de18e20fb7eb77ea2d0355904393294b.png

3.2、图像分类


ddb5d4abd3d3f061c77ddbb561bd2190.png

4、参考

[1].No More Strided Convolutions or Pooling:A New CNN Building Block for Low-Resolution Images and Small Objects

5、推荐阅读

Two-Stage目标检测困难负样本如何利用?大小目标如何同时优化?nRPN给你答案!

Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致

超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满,让你欲罢不能!!!

相关文章
|
8月前
|
机器学习/深度学习 传感器 自动驾驶
狂风暴雨依旧YOLO | 全新数据集,全新任务,促进极端降雨条件下目标检测的优化和发展
狂风暴雨依旧YOLO | 全新数据集,全新任务,促进极端降雨条件下目标检测的优化和发展
265 0
|
3月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
1204 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
8月前
|
计算机视觉
YOLOv5改进 | 2023检测头篇 | 利用AFPN增加小目标检测层(让小目标无所遁形)
YOLOv5改进 | 2023检测头篇 | 利用AFPN增加小目标检测层(让小目标无所遁形)
313 0
|
8月前
|
机器学习/深度学习 存储 测试技术
【YOLOv8改进】 YOLOv8 更换骨干网络之 GhostNet :通过低成本操作获得更多特征 (论文笔记+引入代码).md
YOLO目标检测专栏探讨了卷积神经网络的创新改进,如Ghost模块,它通过低成本运算生成更多特征图,降低资源消耗,适用于嵌入式设备。GhostNet利用Ghost模块实现轻量级架构,性能超越MobileNetV3。此外,文章还介绍了SegNeXt,一个高效卷积注意力网络,提升语义分割性能,参数少但效果优于EfficientNet-L2。专栏提供YOLO相关基础解析、改进方法和实战案例。
|
8月前
|
计算机视觉 网络架构
【YOLOv8改进】MSBlock : 分层特征融合策略 (论文笔记+引入代码)
YOLO-MS是一个创新的实时目标检测器,通过多尺度构建块(MS-Block)和异构Kernel选择(HKS)协议提升多尺度特征表示能力。它在不依赖预训练权重和大型数据集的情况下,在MS COCO上超越了YOLO-v7和RTMDet,例如YOLO-MS XS版本(4.5M参数,8.7G FLOPs)达到了43%+的AP,比RTMDet高2%+。MS-Block利用分层特征融合和不同大小的卷积,而HKS协议根据网络深度调整Kernel大小,优化多尺度语义信息捕获。此外,YOLO-MS的模块化设计允许其作为即插即用的组件集成到其他YOLO模型中,提升它们的检测性能。
|
8月前
|
机器学习/深度学习 算法 PyTorch
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
648 2
|
8月前
|
机器学习/深度学习 计算机视觉 网络架构
YOLOv8改进 | 2023主干篇 | 替换LSKNet遥感目标检测主干 (附代码+修改教程+结构讲解)
YOLOv8改进 | 2023主干篇 | 替换LSKNet遥感目标检测主干 (附代码+修改教程+结构讲解)
205 1
YOLOv8改进 | 2023主干篇 | 替换LSKNet遥感目标检测主干 (附代码+修改教程+结构讲解)
|
8月前
|
机器学习/深度学习 算法 PyTorch
【SAHI】即插即用| SAHI操作可有效解决小目标检测过程中的难点!实现涨点
【SAHI】即插即用| SAHI操作可有效解决小目标检测过程中的难点!实现涨点
471 1
|
机器学习/深度学习
一些关于Yolov5的改进点及实验结果(新增YOLOv5网络结构图)
一些关于Yolov5的改进点及实验结果(新增YOLOv5网络结构图)
一些关于Yolov5的改进点及实验结果(新增YOLOv5网络结构图)
|
8月前
|
计算机视觉
YOLOv8改进 | 2023检测头篇 | 利用AFPN增加小目标检测层(让小目标无所遁形)
YOLOv8改进 | 2023检测头篇 | 利用AFPN增加小目标检测层(让小目标无所遁形)
425 0