💡💡💡本文提供工业部署级解决方案:多头检测器+大小缺陷一网打尽GiraffeDet+Wasserstein Distance Loss,助力工业缺陷检测,大幅提升产线检测能力
工业部署解决方案 | 亲测在工业小目标缺陷涨点明显,原始mAP@0.5 0.679提升至0.814
部分消融实验如下:
layers | parameters | GFLOPs | mAP50 | mAP50-95 | |
---|---|---|---|---|---|
YOLOv8n | 168 | 3006038 | 8.1 | 0.679 | 0.322 |
YOLOv8n_smallobject | 207 | 2977720 | 12.5 | 0.702 | 0.359 |
Wasserstein loss | 168 | 3006038 | 8.1 | 0.714 | 0.342 |
YOLOv8n_CSPStage | 232 | 2982742 | 8.1 | 0.727 | 0.339 |
YOLOv8n_smallobject _CSPStage | 303 | 2953528 | 12.5 | 0.734 | 0.376 |
YOLOv8n_smallobject _CSPStage+Wasserstein loss | 303 | 2953528 | 12.5 | 0.814 | 0.416 |
三星油污缺陷类别:头发丝和小黑点,["TFS","XZW"]
数据集大小:660张,包括部分良品图像,提升背景检测能力。
数据集地址:https://download.csdn.net/download/m0_63774211/87741209
缺陷特点:小目标缺陷,检测难度大,如下图所示;
1)以物体检测领域的通用数据集COCO物体定义为例,小目标是指小于32×32个像素点(中物体是指32*32-96*96,大物体是指大于96*96); 2)在实际应用场景中,通常更倾向于使用相对于原图的比例来定义:物体标注框的长宽乘积,除以整个图像的长宽乘积,再开根号,如果结果小于3%,就称之为小目标;
1)包含小目标的样本数量较少,这样潜在的让目标检测模型更关注中大目标的检测;
2)由小目标覆盖的区域更小,这样小目标的位置会缺少多样性。我们推测这使得小目标检测的在验证时的通用性变得很难;
3)anchor难匹配问题。这主要针对anchor-based方法,由于小目标的gt box和anchor都很小,anchor和gt box稍微产生偏移,IoU就变得很低,导致很容易被网络判断为negative sample;
4)它们不仅仅是小,而且是难,存在不同程度的遮挡、模糊、不完整现象;
工业缺陷检测最受欢迎的深度学习框架分别是Paddle和Pytorch,其中最受欢迎的检测算法是YOLOv8、YOLOV5和PP-YOLOE,本文通过YOLOv8进行缺陷检测能力提升。
Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活性。它可以在大型数据集上进行训练,并且能够在各种硬件平台上运行,从CPU到GPU。
具体改进如下:
Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;
PAN-FPN:毫无疑问YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的卷积结构删除了,同时也将C3模块替换为了C2f模块;
Decoupled-Head:是不是嗅到了不一样的味道?是的,YOLOv8走向了Decoupled-Head;
Anchor-Free:YOLOv8抛弃了以往的Anchor-Base,使用了Anchor-Free的思想;
损失函数:YOLOv8使用VFL Loss作为分类损失,使用DFL Loss+CIOU Loss作为分类损失;
样本匹配:YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner匹配方式
论文名称:《A Normalized Gaussian Wasserstein Distance for Tiny Object Detection》 作者:Jinwang Wang、Chang Xu、Chang Xu、Lei Yu 论文地址:https://arxiv.org/abs/2110.13389
小目标检测是一个非常具有挑战性的问题,因为小目标只包含几个像素大小。作者证明,由于缺乏外观信息,最先进的检测器也不能在小目标上得到令人满意的结果。作者的主要观察结果是,基于IoU (Intersection over Union, IoU)的指标,如IoU本身及其扩展,对小目标的位置偏差非常敏感,在基于Anchor的检测器中使用时,严重降低了检测性能。 为了解决这一问题,本文提出了一种新的基于Wasserstein距离的小目标检测评估方法。具体来说,首先将BBox建模为二维高斯分布,然后提出一种新的度量标准,称为Normalized Wasserstein Distance(NWD),通过它们对应的高斯分布计算它们之间的相似性。提出的NWD度量可以很容易地嵌入到任何基于Anchor的检测器的Assignment、非最大抑制和损失函数中,以取代常用的IoU度量。
1)分析了 IoU 对微小物体位置偏差的敏感性,并提出 NWD 作为衡量两个边界框之间相似性的更好指标;
2)通过将NWD 应用于基于锚的检测器中的标签分配、NMS 和损失函数来设计强大的微小物体检测器;
3)提出的 NWD 可以显着提高流行的基于锚的检测器的 TOD 性能,它在 AI-TOD 数据集上的 Faster R-CNN 上实现了从 11.1% 到 17.6% 的性能提升;
具体来说,对于6×6像素的小目标,轻微的位置偏差会导致明显的IoU下降(从0.53下降到0.06),导致标签分配不准确。然而,对于36×36像素的正常目标,IoU略有变化(从0.90到0.65),位置偏差相同。此外,图2给出了4条不同目标尺度的IoU-Deviation曲线,随着目标尺度的减小,曲线下降速度更快。值得注意的是,IoU的敏感性来自于BBox位置只能离散变化的特殊性。
Wasserstein distance的主要优点是:
NWD可应用于One-Stage和Multi-Stage Anchor-Based检测器。此外,NWD不仅可以替代标签分配中的IoU,还可以替代非最大抑制中的IoU(NMS)和回归损失函数。在一个新的TOD数据集AI-TOD上的大量实验表明,本文提出的NWD可以持续地提高所有检测器的检测性能。
AI-TOD数据集上基于IoU的检测器(第1行)和基于NWD的检测器(第2行)的可视化结果上图所示。可以观察到与IoU相比,NWD可显著降低假阴性(FN)。
论文:https://arxiv.org/abs/2202.04256
摘要:在传统的目标检测框架中,继承自图像识别模型的骨干主体提取深度潜在特征,然后由颈部模块融合这些潜在特征来获取不同尺度的信息。由于目标检测的分辨率远大于图像识别,因此主干的计算代价往往占主导地位。这种重主干设计范式主要是由于将图像识别模型转移到目标检测时的历史遗留问题,而不是目标检测的端到端优化设计。在这项工作中,我们表明,这种范式确实导致次优的目标检测模型。为此,我们提出了一个新的重颈范式,GiraffeDet,一个类似长颈鹿的网络,用于有效的目标检测。GiraffeDet使用了一个非常轻量的主干和一个非常深而大的颈部模块,这鼓励了不同空间尺度之间密集的信息交换,同时也鼓励了不同层次的潜在语义。这种设计范式使检测器即使在网络的早期阶段,也能以同样的优先级处理高级语义信息和低级空间信息,提高了检测任务的效率。对多个流行目标检测基准的数值评估表明,在广泛的资源约束范围内,GiraffeDet始终优于以前的SOTA模型。
本文是阿里巴巴在目标检测领域的工作(已被ICLR2022接收),提出了一种新颖的类“长颈鹿”的GiraffeDet架构,它采用了轻骨干、重Neck的架构设计范式。所提GiraffeDet在COCO数据集上取得了比常规CNN骨干更优异的性能,取得了54.1%mAP指标,具有更优异的处理目标大尺度变化问题的能力。
本文提出了GiraffeDet用于高效目标检测,giraffe包含轻量space-to-depth chain、Generalized-FPN以及预测网络
FPN旨在对CNN骨干网络提取的不同分辨率的多尺度特征进行融合。上图给出了FPN的进化,从最初的FPN到PANet再到BiFPN。我们注意到:这些FPN架构仅聚焦于特征融合,缺少了块内连接。因此,我们设计了一种新的路径融合GFPN:包含跳层与跨尺度连接,见上图d。
在进行目标检测时,小目标会出现漏检或检测效果不佳等问题。YOLOv8有3个检测头,能够多尺度对目标进行检测,但对微小目标检测可能存在检测能力不佳的现象,因此添加一个微小物体的检测头,能够大量涨点,map提升明显;
训练结果如下:
原始mAP@0.5 0.679提升至0.814
YOLOv8_4_CSPStage summary: 303 layers, 2953528 parameters, 0 gradients, 12.5 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 2/2 [00:04<00:00, 2.19s/it]
all 66 187 0.783 0.705 0.814 0.416
TFS 66 130 0.647 0.619 0.693 0.317
XZW 66 57 0.919 0.792 0.935 0.514
原文详见:https://blog.csdn.net/m0_63774211/article/details/133412781
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。