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.

相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
模型无关的局部解释(LIME)技术原理解析及多领域应用实践
在当前数据驱动的商业环境中,人工智能(AI)和机器学习(ML)已成为各行业决策的关键工具,但随之而来的是“黑盒”问题:模型内部机制难以理解,引发信任缺失、监管合规难题及伦理考量。LIME(局部可解释模型无关解释)应运而生,通过解析复杂模型的个别预测,提供清晰、可解释的结果。LIME由华盛顿大学的研究者于2016年提出,旨在解决AI模型的透明度问题。它具有模型无关性、直观解释和局部保真度等优点,在金融、医疗等领域广泛应用。LIME不仅帮助企业提升决策透明度,还促进了模型优化和监管合规,是实现可解释AI的重要工具。
110 9
|
7月前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
5月前
|
机器学习/深度学习 编解码 人工智能
|
7月前
|
机器学习/深度学习 网络架构 计算机视觉
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
354 3
|
25天前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
43 3
|
2月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
298 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
4月前
|
SQL 自然语言处理 算法
预训练模型STAR问题之计算伪OOD样本的软标签的问题如何解决
预训练模型STAR问题之计算伪OOD样本的软标签的问题如何解决
|
6月前
|
机器学习/深度学习 算法 Python
YOLOV5应用实战项目:钢材表面缺陷检测(数据集:NEU-CLS)笔记
YOLOV5应用实战项目:钢材表面缺陷检测(数据集:NEU-CLS)笔记
|
7月前
|
机器学习/深度学习 自然语言处理 运维
大模型开发:解释自编码器以及它们在表示学习中的作用。
自编码器是一种神经网络,用于无监督学习中的数据降维和压缩,由编码器和解码器组成,学习低维稀疏表示。它们分为收缩、正则和变分类型,常用于图像重构、聚类、机器翻译等任务,能生成类似训练数据的新样本。自编码器在特征学习和多种任务中展现强大能力。
145 7
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
350 0
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
下一篇
DataWorks