YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块

简介: YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块

在本研究中,重点分析了YOLOv5模型的结构问题。基于人造革细微缺陷的特点,设计了四种创新结构,分别是DFP、IFF、AMP和EOS。这些改进使得提出了一个名为YOLOD的高性能人造革细微缺陷检测模型。YOLOD在人造革缺陷数据集上表现出色,相比于YOLOv5,提高了11.7% - 13.5%,错误检测率显著降低了5.2% - 7.2%。

此外,YOLOD在通用的MS-COCO数据集上也表现出色,提高了0.4% - 2.6%,提高了2.5% - 4.1%。这些结果表明YOLOD在人造革缺陷检测和通用目标检测任务上的优越性,使其成为一个高效且有效的适用于实际应用的模型。

1、本文方法

1、Dual Feature Pool

在提出新结构之前,对FPN+ PAN结构进行了分析。发现在这种组合架构中,用于检测小目标的检测网络的深度比用于检测大目标的网络的深度要浅(图3)。

为了提高网络检测的准确性,增加网络的深度和宽度变得至关重要。因此,FPN + PAN结构被认为对于检测小目标不够优化。为了解决这个问题,作者的目标是找到一种可以增强小目标检测网络的深度或宽度,从而提高检测小目标的准确性的结构。因此,作者开发了双特征池化结构(DFP)。在这个背景下,术语定义如下:直接从Backbone网络输出的特征称为“源特征”,经过中间网络处理的特征称为“处理特征”。

网络结构分为3部分:

  • 第1部分,采用类似于CSPNet的结构,通过使用半通道的卷积将Backbone网络输出的3个Level源特征分为两部分。
  • 第2部分,每个Level的2个输出之一被融合形成2个特征池化(图4)。
  • 第3部分,将源特征的另一部分与两个特征池化的输出融合,在输入每个检测头之前,通过干扰特征过滤(IFF)和空间注意力模块(SAM)去除干扰,并增强融合后的特征。通过采用这种结构,作者的目标是尽可能地扩展网络的宽度,同时保持网络的深度不变。

DFP结构由这3部分组成,可以有效地扩展整个中间网络部分,特别是小目标网络。两个特征池化起着关键作用,它们集成了小中尺度和中大尺度的特征,为检测头提供了更多可选择的特征维度。在第3部分的融合之后,进入检测头的维度相对于FPN + PAN增加了1.75到2倍。采用这种结构的初衷是扩展小目标网络的宽度,作者的目标在随后的实验结果中得到了成功验证。

2、Interference Feature Filtering

在特征提取过程中,卷积网络产生的特征图的质量可能不均匀。这种变异性可能会影响更深的卷积网络的有效性。为了解决这个问题,作者设计了一个模块,根据每个通道特征图的均值对其进行评分。随后,作者删除得分低于0.5%到5%之间的通道特征(图5)。

所提出的结构专注于2个关键方面:Backbone网络的输出和源特征与处理特征的连接(图4)。在Backbone网络的源特征输出上应用IFF以确保提供给中间网络的特征的纯净性。这是因为源特征的质量直接影响到处理特征的质量,进而影响到检测的准确性。

此外,在源特征和处理特征连接处也使用了IFF,因为连接后的特征通道数量远大于最终通过CSP传递的通道数量。目的是通过大规模通道压缩减少低质量特征,从而增强通道压缩后输出的特征质量。

在训练过程中,被过滤的特征的百分比从5%线性减少到0.5%,随着干扰特征的减少。值得注意的是,如果过滤的特征太多,可能会导致检测准确性下降。在作者的实验中,过滤的百分比在第240个周期时设置为0.5%。

3、Adaptive Multi Positives

YOLOv5和YOLOX都有增加正样本数量的方法。YOLOv5根据GT中心点的偏移,在上、下、左、右四个网格中选择一个或两个正样本,从而总共有2个或3个正样本。

YOLOX将围绕GT中心点的网格视为正样本。作者提出的自适应多正样本(AMP)方法是对YOLOv5方法的改进(图6(a))。图6(b)所示的添加正样本表示作者提出的方法的第一步。如果GT的偏移大于或等于0.35个网格,则不会添加左上角的正样本。

除图中所示部分外,上右、下右和下左网格的扩展原则保持不变,是基于GT中心点的偏移计算的。例如,当GT的中心点在x轴上的偏移大于0.65个网格且在y轴上的偏移小于0.35个网格(0.35的值是使用欧氏距离公式计算的,假设X坐标等于Y坐标,欧氏距离为0.5),则会添加右上角的正样本。

另一步是根据GT的边界框大小自动选择并增加正样本数量。如果GT的边界框大小小于一个网格方格,则不会添加正样本。当GT的边界框大小大于或等于一个网格方格时,正样本的增加遵循YOLOv5的方法。

此外,如果GT的边界框大小大于或等于2个网格方格,则会使用作者提出的方法添加正样本。不添加GT边界框大小小于一个网格方格的正样本的原因是在添加的网格方格中没有目标特征。因此,这可能导致虚假检测,并对网络对GT的特征训练产生不利影响。

4、Eliminate Output Sensitivity

自从YOLOv4引入了消除网格敏感性的方法(方程式4),许多算法采用了这种方法来减轻无法检测到目标的网格方格的影响。

然而,作者发现了一个问题:随着比例参数值的增加,靠近附近的斜率也增加(如图7(a)所示)。作者推导了方程式4(如方程式5所示)。当时,斜率达到最大值,最大斜率与比例值相关联。

因此,增加比例值以消除网格敏感性会导致在附近出现非常大的斜率。接近0的输入值()可能导致网络收敛不良。

对先前的方法进行了改进(方程式6)。乘以一个参数α,其中α表示一个固定的斜率值。当将在YOLOv4中使用的消除网格敏感性视为基准时,α取值为2。另一方面,当不消除网格敏感性(如在YOLOv3中)时,α设置为1。通过对方程式6进行导数(如方程式7所示),可以观察到当 = 0时斜率与α有关。

在这种方法中,作者使用一个固定的值α而不是一个变量值比例。因此,当以这种方式消除网格的敏感性时,曲线的斜率保持不变(如图7(b)所示)。在作者的实验中,作者将α设置为2。

2、实验

3、参考

[1].High-Performance Fine Defect Detection in Artificial Leather Using Dual Feature Pool Object Detection.

相关文章
|
11天前
|
机器学习/深度学习 编解码 人工智能
|
2月前
|
机器学习/深度学习 数据采集 监控
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
400 0
|
2月前
|
机器学习/深度学习 网络架构 计算机视觉
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
197 3
|
1月前
|
人工智能 计算机视觉 Python
【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】(1)
【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】
【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】(1)
|
5天前
|
机器学习/深度学习 人工智能 分布式计算
算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、Optuna、多目标优化、异步并行优化
机器学习中的超参数调优是提升模型性能的关键步骤,包括网格搜索、随机搜索、贝叶斯优化和遗传算法等方法。网格搜索通过穷举所有可能的超参数组合找到最优,但计算成本高;随机搜索则在预设范围内随机采样,降低计算成本;贝叶斯优化使用代理模型智能选择超参数,效率高且适应性强;遗传算法模拟生物进化,全局搜索能力强。此外,还有多目标优化、异步并行优化等高级技术,以及Hyperopt、Optuna等优化库来提升调优效率。实践中,应结合模型类型、数据规模和计算资源选择合适的调优策略。
10 0
算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、Optuna、多目标优化、异步并行优化
|
2月前
时间序列分析实战(十一):ECM误差修正模型
时间序列分析实战(十一):ECM误差修正模型
|
2月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】MPDIoU:有效和准确的边界框损失回归函数 (论文笔记+引入代码)
YOLO目标检测专栏介绍了YOLO的有效改进和实战案例,包括卷积、主干网络、注意力机制和检测头的创新。提出了一种新的边界框回归损失函数MPDIoU,它基于最小点距离,能更好地处理不同宽高比的预测框,包含重叠、中心点距离和尺寸偏差的全面考虑。MPDIoU损失函数在YOLACT和YOLOv7等模型上的实验显示了优于现有损失函数的性能。此外,还介绍了WIoU_Scale类用于计算加权IoU,以及bbox_iou函数实现不同IoU变体的计算。详细实现和配置可在相应链接中查阅。
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
247 0
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
|
11月前
|
机器学习/深度学习 监控 搜索推荐
提升UMI分析精度和计算效率:Sentieon UMI分子标记处理模块
提升UMI分析精度和计算效率:Sentieon UMI分子标记处理模块
103 0
|
11月前
|
JSON 算法 数据格式
优化cv2.findContours()函数提取的目标边界点,使语义分割进行远监督辅助标注
可以看到cv2.findContours()函数可以将目标的所有边界点都进行导出来,但是他的点存在一个问题,太过密集,如果我们想将语义分割的结果重新导出成labelme格式的json文件进行修正时,这就会存在点太密集没有办法进行修改,这里展示一个示例:没有对导出的结果进行修正,在labelme中的效果图。
118 0