基于YOLOv8的人脸检测小目标识别算法:Gold-YOLO,信息聚集-分发(Gather-and-Distribute Mechanism)机制 | 华为诺亚NeurIPS23

这篇具有很好参考价值的文章主要介绍了基于YOLOv8的人脸检测小目标识别算法:Gold-YOLO,信息聚集-分发(Gather-and-Distribute Mechanism)机制 | 华为诺亚NeurIPS23。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 🚀🚀🚀本文改进:全新的信息聚集-分发(Gather-and-Distribute Mechanism)GD机制,替代YOLOv8 Neck,实现创新

🚀🚀🚀Gold-YOLO在人脸检测小目标识别算法中, mAP@0.5从原始的0.929提升至0.935,mAP50-95从原始的0.43提升至0.435

🚀🚀🚀YOLOv8改进专栏:

学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研;

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

1.人脸识别小目标数据集介绍

数据集来源:GitHub - HCIILAB/SCUT-HEAD-Dataset-Release: SCUT HEAD is a large-scale head detection dataset, including 4405 images labeld with 111251 heads.

本文章主要通过小目标来进行优化,因此数据集只选择partA部分,总共 2000张,按照7:2:1随机进行分配;

下图可以看出都是小目标人脸识别

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

 yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

1.1 小目标检测难点 

本文所指的小目标是指COCO中定义的像素面积小于32*32 pixels的物体。小目标检测的核心难点有三个:

  • 由本身定义导致的rgb信息过少,因而包含的判别性特征特征过少。
  • 数据集方面的不平衡。这主要针对COCO而言,COCO中只有51.82%的图片包含小物体,存在严重的图像级不平衡。具体的统计结果见下图。

2.YOLOv8介绍

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

改进点:

  1. Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;
  2. PAN-FPN:毫无疑问YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的卷积结构删除了,同时也将C3模块替换为了C2f模块;
  3. Decoupled-Head:是不是嗅到了不一样的味道?是的YOLOv8走向了Decoupled-Head;
  4. YOLOv8抛弃了以往的Anchor-Base,使用了Anchor-Free的思想;
  5. 损失函数:YOLOv8使用VFL Loss作为分类损失,使用DFL Loss+CIOU Loss作为分类损失;
  6. 样本匹配:YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner匹配方式。

2.1 C2f模块介绍

C2f模块就是参考了C3模块以及ELAN的思想进行的设计,让YOLOv8可以在保证轻量化的同时获得更加丰富的梯度流信息。 

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

 代码:

class C2f(nn.Module):
    # CSP Bottleneck with 2 convolutions
    def __init__(self, c1, c2, n=1, shortcut=False, g=1, e=0.5):  # ch_in, ch_out, number, shortcut, groups, expansion
        super().__init__()
        self.c = int(c2 * e)  # hidden channels
        self.cv1 = Conv(c1, 2 * self.c, 1, 1)
        self.cv2 = Conv((2 + n) * self.c, c2, 1)  # optional act=FReLU(c2)
        self.m = nn.ModuleList(Bottleneck(self.c, self.c, shortcut, g, k=((3, 3), (3, 3)), e=1.0) for _ in range(n))

    def forward(self, x):
        y = list(self.cv1(x).split((self.c, self.c), 1))
        y.extend(m(y[-1]) for m in self.m)
        return self.cv2(torch.cat(y, 1))

 3.Gold-YOLO

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

链接:https://arxiv.org/pdf/2309.11331.pdf 

代码:https://github.com/huawei-noah/Efficient-Computing/tree/master/Detection/Gold-YOLO

单位:华为诺亚方舟实验室 

理论部分可参考:超越YOLO系列!华为提出Gold-YOLO:高效实时目标检测器 - 知乎 

传统YOLO的问题

在检测模型中,通常先经过backbone提取得到一系列不同层级的特征,FPN利用了backbone的这一特点,构建了相应的融合结构:不层级的特征包含着不同大小物体的位置信息,虽然这些特征包含的信息不同,但这些特征在相互融合后能够互相弥补彼此缺失的信息,增强每一层级信息的丰富程度,提升网络性能。

原始的FPN结构由于其层层递进的信息融合模式,使得相邻层的信息能够充分融合,但也导致了跨层信息融合存在问题:当跨层的信息进行交互融合时,由于没有直连的交互通路,只能依靠中间层充当“中介”进行融合,导致了一定的信息损失。之前的许多工作中都关注到了这一问题,而解决方案通常是通过添加shortcut增加更多的路径,以增强信息流动。

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

摘要:当前YOLO系列模型通常采用类FPN方法进行信息融合,而这一结构在融合跨层信息时存在信息损失的问题。针对这一问题,我们提出了全新的信息聚集-分发(Gather-and-Distribute Mechanism)GD机制,通过在全局视野上对不同层级的特征进行统一的聚集融合并分发注入到不同层级中,构建更加充分高效的信息交互融合机制,并基于GD机制构建了Gold-YOLO。在COCO数据集中,我们的Gold-YOLO超越了现有的YOLO系列,实现了精度-速度曲线上的SOTA。

 yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

提出了一种全新的信息交互融合机制:信息聚集-分发机制(Gather-and-Distribute Mechanism)。该机制通过在全局上融合不同层次的特征得到全局信息,并将全局信息注入到不同层级的特征中,实现了高效的信息交互和融合。在不显著增加延迟的情况下GD机制显著增强了Neck部分的信息融合能力,提高了模型对不同大小物体的检测能力。 

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

 在Gold-YOLO中,针对模型需要检测不同大小的物体的需要,并权衡精度和速度,我们构建了两个GD分支对信息进行融合:低层级信息聚集-分发分支(Low-GD)和高层级信息聚集-分发分支(High-GD),分别基于卷积和transformer提取和融合特征信息。

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习

源码:YOLOv8改进:Neck改进系列 | Gold-YOLO,信息聚集-分发(Gather-and-Distribute Mechanism)机制 | 华为诺亚NeurIPS23-CSDN博客

4.实验结果分析

 mAP@0.5从原始的0.929提升至0.935,mAP50-95从原始的0.43提升至0.435

YOLOv8-goldYOLO summary: 359 layers, 6015123 parameters, 0 gradients, 11.9 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 17/17 [00:28<00:00,  1.68s/it]
                   all        540      18086      0.916      0.892      0.935      0.435

yolov8小目标检测,YOLOv8实战改进教程,YOLO,算法,计算机视觉,目标检测,学习文章来源地址https://www.toymoban.com/news/detail-840979.html

到了这里,关于基于YOLOv8的人脸检测小目标识别算法:Gold-YOLO,信息聚集-分发(Gather-and-Distribute Mechanism)机制 | 华为诺亚NeurIPS23的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包