IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Anchor-Free系列之YOLOX:Exceeding YOLO Series in 2021 -> 正文阅读

[人工智能]Anchor-Free系列之YOLOX:Exceeding YOLO Series in 2021

Anchor-Free系列之CornerNet: Detecting Objects as Paired Keypoints_程大海的博客-CSDN博客

Anchor-Free系列之CenterNet:Objects as Points_程大海的博客-CSDN博客

Anchor-Free系列之FCOS:A Simple and Strong Anchor-free Object Detector_程大海的博客-CSDN博客

Anchor-Free系列之YOLOX:Exceeding YOLO Series in 2021_程大海的博客-CSDN博客


参考:如何评价旷视开源的YOLOX,效果超过YOLOv5? - 知乎?

参考:深入浅出Yolo系列之Yolox核心基础完整讲解 - 知乎

参考:深入浅出Yolox之自有数据集训练超详细教程 - 知乎

参考:YOLOX深度解析 - 知乎

????????YoloX是在YoloV3、YoloV5的基础上,配合最近几年目标检测领域比较有效的方法,如Head Decoupled、Data Augmentation、Anchro-Free、Label Assign等。

YoloX技术要点:

1、Head Decoupled(单头 -> 多头)

decoupled-head实验结论:

使用decoupled-head可以带来两个方面的好处:

  1. 加快模型的收敛速度,如下图蓝色曲线
  2. 当进行端到端(不使用NMS)预测时,模型的性能更好,个人理解,这个实验结果表明使用decoupled-head之后,目标检测预测输出的概率置信度更高,bounding box框更准确,预测输出的False Positive更少,只是个人理解,欢迎批评指正。


?????????这里插播一下关于目标检测使用单个预测头、多个预测头、预测头使用FC还是使用卷积的相关研究,我主要看了下面这篇论文:

?《Rethinking Classification and Localization for Object Detection》

起因

????????作者经过深入分析发现,对于目标检测算法通常使用的基于全连接层的预测头fc-head,基于卷积层的预测头conv-head,在处理分类任务和坐标回归任务时,表现的效果相反。Fc-head的预测头更适用于预测输出目标的类别置信度,conv-head的预测头更适用于预测输出目标的bounding box坐标框。

????????鉴于上述观察结果,作者设计了具有双预测头的目标检测算法Double-Head,其中fc-head主要负责预测目标的类别概率置信度,conv-head主要负责预测目标的bounding box坐标。并在此基础上进一步演化出了Double-Head-Ext算法,让fc-head在主要负责预测输出类别概率的同时,辅助预测目标的bounding box,让conv-head在主要负责预测输出目标bounding box坐标的同时,辅助预测目标的类别置信度。

Backbone: 使用FPN网络作为backbone,上层使用RPN网络生成proposal,在proposal的基础上使用RoIAlign(详见Mask-RCNN),将每个proposal的区域生成7x7x256的feature map,然后分别送入fc-head和conv-head,经过fc-head和conv-head之后,最终输出1024位的特征向量,然后在特征向量上预测输出每个proposal的类别置信度和bounding box

fc-head:在proposal经过RoIAlign之后得到的256x7x7的feature map上,使用两个全连接层,输出得到1024维的特征向量

conv-head:在proposal经过RoIAlign之后得到的256x7x7的feature map上,堆叠使用多个residual block残差模块,最后使用avg pooling,输出得到1024维的特征向量

损失函数:

Double-Head预测结果融合:

????????基于fc-head和conv-head预测输出的目标类别置信度,综合得到最终的置信度。

效果:


好了, 继续回到YOLOX的技术要点上来。

2、Data Augmentation(数据增强)

Mixup:数据增强之MixUp_程大海的博客-CSDN博客_数据增强mixup代码

Mosaic:关于马赛克数据增强方法,可以参考“江大白”的YOLO系列讲解,讲的非常好。

备注:关于Mixup和Mosaic数据增强方法,作者在论文中说要在训练的最后15个epoch关闭Mixup和Mosaic,关于这个问题,在旷视科技官方知乎账号上给出了如下解释:

?????????以上回答意思就是说,当使用了Mixup和Mosaic数据增强方法,会对输入的原始图片进行较大的变化(叠加、裁剪、粘贴等),导致输入到网络模型的图片数据与真实场景的图片数据偏差较大,导致数据的分布不一致,影响模型的泛化性能。关于这个问题,我自己在实际使用Mixup方法,以及使用自有数据集训练YOLOX时也有如下两点发现:

????????1、使用Mixup数据增强训练分类模型时,Loss值和Accuracy震荡很厉害,模型的Loss很快就基本上不下降了

????????2、在使用YOLOX训练自有数据集时,在最后15个epoch关闭Mixup和Mosaic之后,验证集上的mAP指标直线上升4-5个百分点。如下图所示:

?????????所以在训练的最后阶段,关闭Mixup和Mosaic确实可以提升模型性能。让模型在前期经历各种磨难(Mixup+Mosaic),努力学习去做各种难题、怪题,在后期学有所成之后,开始接触真正的三年模拟,五年真题,在真实战场上一展身手。

????????

3、Anchor-Free(无锚框)

关于anchor-based目标检测方法的一些缺点,可以参考Anchor-Free系列之FCOS:A Simple and Strong Anchor-free Object Detector_程大海的博客-CSDN博客

  1. Yolov3-Yolov5是基于anchor的检测算法,anchor在模型训练前使用1-IoU作为距离度量的kmean聚类得到,这样得到的anchor高度适用于训练集,泛化效果就会差一些。
  2. 大量的anchor增加了预测输出的复杂度,每个anchor都会输出一个预测结果,并且要配合NMS来过滤无效的预测结果,大量的anchor会带来更大的运算量
  3. Anchor会产生大量的negative,导致训练正负样本不均衡

????????参考CornerNet、CenterNet等anchor-free方法,YoloX放弃使用anchor,在输出特征图上的每个位置直接预测4个数值结果,用来确定相对于当前位置,目标的top-left和bottom-right corner的偏移量offset

4、Multi positives

????????YoloX放弃使用anchor,然后将目标的中心点位置作为唯一的positive,其余均为negative,这样会导致大量的正负样本不均衡(CornetNet和CenterNet中采用Focal Loss),同时也会忽略那些预测结果稍微不完美(预测的中心点稍微偏离)的结果,参考CornerNet、CenterNet、FCOS等anchor-free的方法,YoloX在目标的中心划定一个范围,范围内的位置均代表目标的中心,都是positive,这样可以将AP从42.9%大幅提升到45%

5、Label Asign(标签分配)

YOLOX实验效果:

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:19:11  更:2022-05-05 11:22:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:45:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码