首页 > 其他分享 >Yolo系列简单汇总二(yolox yolo6 yolo7)

Yolo系列简单汇总二(yolox yolo6 yolo7)

时间:2022-08-31 17:33:13浏览次数:87  
标签:YOLOX Copypaste Yolo yolox https pdf ninja com yolo6

Yolo系列简单汇总一(yolov1至yolov5)见: https://www.cnblogs.com/xiaxuexiaoab/p/16615242.html

六、YoloX

pdf: https://arxiv.org/pdf/2107.08430.pdf
code: https://github.com/Megvii-BaseDetection/YOLOX
参考链接: https://www.zhihu.com/question/473350307 https://zhuanlan.zhihu.com/p/397993315

由旷视科技开源,与之前 YOLO 最大的区别在于 Decoupled Head,Data Aug,Anchor Free 和样本匹配这几个地方(SimOTA)

6.1 Decoupled Head

将检测头解耦无疑会增加运算的复杂度,但经过权衡速度和性能上的得失,我们最终使用 1个1x1 的卷积先进行降维,并在分类和回归分支里各使用了 2个3x3 卷积,最终调整到仅仅增加一点点参数,YOLOX 在 s,m,l,x 模型速度上的轻微下降也全源自于此。表面上看,解耦检测头提升了 YOLOX 的性能和收敛速度,但更深层次的,它为 YOLO 与检测下游任务的一体化带来可能。如:

  • YOLOX + Yolact/CondInst/SOLO ,实现端侧的实例分割
  • YOLOX + 34 层输出,实现端侧人体的 17 个关键点检测

6.2 Data Aug

为 Mosaic 配上 Copypaste,依然有不俗的提升。组内的共识是:当模型容量足够大的时候,相对于先验知识(各种 tricks,hand-crafted rules ),更多的后验(数据/数据增强)才会产生本质影响。可 Copypaste 的实现依赖于目标的 mask 标注,而 mask 标注在常规的检测业务上是稀缺的资源。而由于 MixUp 和 Copypaste 有着类似的贴图的行为,还不需要 mask 标注,因此可以让 YOLOX 在没有 mask 标注的情况下吃到 Copypaste 的涨点。不过我们实现的 Mixup,没有原始 Mixup 里的 Bernoulli Distribution 和 Soft Label ,有的仅是 0.5 的常数透明度和 Copypaste 里提到的尺度缩放 ( scale jittering )。 YOLOX 里的 Mixup 有如此明显的涨点,大概是因为它在实现和涨点原理上更接近 Copypaste,而不是原版 Mixup。
要在训练结束前的15个 epoch 关掉 Mosaic 和Mixup ,这对于 YOLOX 非常重要(Mosaic+Mixup 生成的训练图片,远远脱离自然图片的真实分布,并且 Mosaic 大量的 crop 操作会带来很多不准确的标注框)

6.3 Anchor Free 与 Label Assignment

至于为什么 Anchor Free 现在可以上 YOLO ,并且性能不降反升,这与样本匹配有密不可分的联系

  • loss/quality/prediction aware
    基于网络自身的预测来计算 anchor box 或者 anchor point 与 gt 的匹配关系,充分考虑到了不同结构/复杂度的模型可能会有不同行为,是一种真正的 dynamic 样本匹配

  • center prior
    目标的质心都与目标的几何中心有一定的联系,将正样本限定在目标中心的一定区域内做 loss/quality aware 样本匹配能很好地解决收敛不稳定的问题

  • 不同目标设定不同的正样本数量( dynamic k )
    Dynamic k 的关键在于如何确定k,有些方法通过其他方式间接实现了动态 k ,比如 ATSS、PAA ,甚至 RetinaNet ,同时,k的估计依然可以是 prediction aware 的,我们具体的做法是首先计算每个目标最接近的10个预测,然后把这个 10 个预测与 gt 的 iou 加起来求得最终的k,很简单有效,对 10 这个数字也不是很敏感,在 5~15 调整几乎没有影响

6.4 训练中出现的问题

wget https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip
sudo unzip ninja-linux.zip -d /usr/local/bin/
sudo update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force 

七、YoloV6

由美团开发,没有论文
code: https://github.com/meituan/YOLOv6
参考链接:https://tech.meituan.com/2022/06/23/yolov6-a-fast-and-accurate-target-detection-framework-is-opening-source.html

7.1 BackBone 和 Neck

受到硬件感知神经网络设计思想的启发,基于 RepVGG style 设计了可重参数化、更高效的骨干网络 EfficientRep Backbone 和 Rep-PAN Neck。

  • EfficientRep

  • Rep-PAN

7.2 Efficient Decoupled Head

优化设计了更简洁有效的 Efficient Decoupled Head,在维持精度的同时,进一步降低了一般解耦头带来的额外延时开销。

7.3 训练策略

  • Anchor-free 无锚范式
  • SimOTA 标签分配策略
  • SIoU 边界框回归损失
    SIoU 损失函数通过引入了所需回归之间的向量角度,重新定义了距离损失,有效降低了回归的自由度,加快网络收敛,进一步提升了回归精度,SIou论文:https://arxiv.org/ftp/arxiv/papers/2205/2205.12740.pdf

八、YoloV7

pdf: https://arxiv.org/pdf/2207.02696.pdf
code: https://github.com/WongKinYiu/yolov7

8.1 架构方面

提出了基于 ELAN 的扩展 E-ELAN,新的 E-ELAN 完全没有改变原有架构的梯度传输路径,其使用组卷积来增加添加特征的基数(cardinality),并以 shuffle 和 merge cardinality 的方式组合不同组的特征。这种操作方式可以增强不同特征图学得的特征,改进参数的使用和计算效率。

因此,对基于串联的模型,我们不能单独分析不同的扩展因子,而必须一起考虑。该研究提出图 3(c),即在对基于级联的模型进行扩展时,只需要对计算块中的深度进行扩展,其余传输层进行相应的宽度扩展。这种复合扩展方法可以保持模型在初始设计时的特性和最佳结构。

8.2 可训练的「bag-of-freebies」

主要从重参数化模块、动态标签分配两方面阐述,其他措施包括一些已有的方法,如批量归一化(BN)等

  • 重参数化的模块如何替换原始模块
    对于模型重参数化,该研究使用梯度传播路径的概念分析了适用于不同网络层的模型重参数化策略,并提出了有计划的重参数化模型。

  • 动态标签分配策略如何处理分配给不同输出层的问题
    研究者发现使用动态标签分配技术时,具有多个输出层的模型在训练时会产生新的问题:如何为不同分支的输出分配动态目标?
    针对这个问题,研究者提出了一种新的标签分配方法,称为从粗粒度到细粒度(coarse-to-fine)的引导式标签分配。

    coarse表示通过放宽正样本分配过程的约束,允许更多网格被视为正目标,从而生成粗标签。

  • 其他策略
    (1) Batch normalization
    (2) Implicit knowledge (YOLOR)
    (3) EMA model (权重进行移动平均)

标签:YOLOX,Copypaste,Yolo,yolox,https,pdf,ninja,com,yolo6
From: https://www.cnblogs.com/xiaxuexiaoab/p/16643821.html

相关文章

  • Yolo系列简单汇总一(yolov1至yolov5)
    Yolo系列简单汇总二(yoloxyolo6yolo7)见:https://www.cnblogs.com/xiaxuexiaoab/p/16643821.html一、YoloV1pdf:https://arxiv.org/pdf/1506.02640.pdfcode:https://......
  • yolo训练注意事项
    1、先尝试默认的参数进行训练2、图片数据要足够,官方建议的是超过1500张3、图像要变化(时间、角度、光线、大小、不同相机等)4、物体要标注精确,尽量做到boundingbox和物体之间......
  • 基于YOLOv5的Logo检测神经网络
    基于YOLOv5的Logo检测神经网络Usedeeplearningtechnologytodetectwhetherthereisabrandlogointheimageandlocateitslocation.TheLogodetectionmode......
  • 与 YOLO 一起寻找 Waldo
    与YOLO一起寻找Waldo克莱尔索西在本教程中,我将展示如何使用一个有故障的旧网络摄像头、一块玻璃和一个高性能GPU来构建一个实时寻找沃尔多的AI。《沃利在哪里》......
  • YOLOV:图像对象检测器在视频对象检测方面表现也很不错
    前言 与传统的两段pipeline不同,论文提出了在一段检测之后再进行区域级的选择,避免了处理大量低质量的候选区域。此外,还构建了一个新的模块来评估目标帧与参考帧之间的关系,......
  • ModelBox开发体验:使用YOLOv3做口罩检测
    摘要:本案例将在ModelBox中使用YOLOv3模型,实现一个简单的口罩检测应用本文分享自华为云社区《ModelBox开发体验Day05开发案例-使用YOLOv3做口罩检测》,作者:孙小北。本案......
  • YOLOX 0.1.0 环境配置
    YOLOX训练自己的数据集一、准备数据集配置好PascalVOC格式的数据集,放入datasets文件夹下,或者跟项目名在同一级目录下也行。VOC数据集的格式为:VOCdevkit |--VOC2007......
  • YOLO V5听课笔记
    【YOLOv5教程】花9888买的YOLOv5全套教程2022完整版现分享给大家!免费白嫖!值得收藏!——附赠课程与资料!——(人工智能、深度学习、机器学习)_哔哩哔哩_bilibili ......
  • YOLO
    第一章第三节YOLO实战(6)_哔哩哔哩_bilibili  注解:1.B:表示几种候选框,比如2,3,5种,是自己可以设置的一个值。2.B×5种的5代表预测的5个值。3.(S*S)*(B*5+C),中的C......