| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> YOLOX 论文阅读(第一篇) -> 正文阅读 |
|
[人工智能]YOLOX 论文阅读(第一篇) |
文章链接:https://arxiv.org/pdf/2107.08430.pdf YOLOX是2021年8月 旷视发布的一篇论文,它是继YOLOv1后第一篇Anchor-free 的YOLO目标检测框架。本文对论文进行学习。 YOLOX: Exceeding YOLO Series in 2021摘要YOLOX:anchor-free;decoupled head;label assignment strategy:SimOTA YOLONano:0.91M parameters;1.08G FLOPs;COCO:25.3% AP,超过 NanoDet 1.8% AP; YOLOv3:COCO:47.3% AP; YOLOX-L:COCO:50.0% AP;Tesla V100:68.9 FPS;超过 YOLOv5-L 1.8% AP; 源码:https://github.com/ Megvii-BaseDetection/YOLOX 1. 引言YOLOv2:anchors;YOLOv3:Residual Net;YOLOv5-L:COCO:48.2%AP,13.7 ms(这里是YOLOv5-5.0版本,新版本6.1已经是49%AP)。 过去两年,学术界主要在研究:anchor-free detectors,advanced label assignment strategies,end-to-end (NMS-free) detectors。YOLO家族里还没这些玩意,因为 YOLOv4 and YOLOv5 仍然是anchor-based的检测器,带有 hand-crafted 的训练分配规则。 本文目的是将这些玩意引入到YOLO架构中,选择基线模型:YOLOv3-SPP。 2.?YOLOX2.1. YOLOX-DarkNet53baseline:YOLOv3 with Darknet53 实现细节COCO train2017上:5 epochs warmup,总计 300 epochs;SGD;learning rate:lr×BatchSize/64 (linear scaling),initial lr = 0.01 and the cosine lr schedule;weight decay:0.0005;SGD momentum:0.9;batch size:128,8-GPU;input size:from 448 to 832 with 32 strides;FPS and?latency:a single Tesla V100?FP16-precision and batch=1。 YOLOv3 baselineYOLOv3-SPP 架构:DarkNet53 backbone,SPP? training strategies 改变:
cls and obj:BCE Loss;?reg:IoU Loss data augmentation:RandomHorizontalFlip, ColorJitter and multi-scale ????????????????????????????????去掉?RandomResizedCrop:原因与?mosaic augmentation 重叠 以上全部作为:baseline,COCO val:38.5% AP ?Decoupled head在目标检测中,分类和回归任务之间的冲突是一个众所周知的问题。因此,用于分类和定位的Decoupled head 被广泛应用于大多数单级和两级探测器中。然而,作为YOLO系列的backbones和特征金字塔(如FPN,PAN)不断演化,它们的detection heads 保持耦合,如图2所示。 ?我们的两个分析实验表明,耦合检测头可能会损害性能。
?从表1可以看出,耦合头的端到端特性会减少4.2% AP,而解耦头的端到端特性会减少0.8% AP。因此,我们将YOLO检测head替换为一个简单的解耦head,如图2所示。具体来说,它包含一个1 × 1的conv层来减小通道的维数,然后是两个平行分支,分别包含两个3 × 3的conv层。我们在表2中报告了V100上batch=1的推理时间,解耦头带来了额外的1.1ms (11.6 ms vs 10.5 ms)。 Strong data augmentationMosaic and MixUp MixUp 最初是为图像分类任务而设计的,后来在BoF(论文:Bag of freebies for training object detection neural networks.)中进行了修改,用于目标检测训练。 在最后的15个?epochs时候关闭它们。42.0% AP。 在使用Strong data augmentation后,我们发现ImageNet的预训练并没有更大的好处,因此我们从头开始训练以下所有模型。 Anchor-freeanchor mechanism有许多已知的问题:
Anchor-free detectors 在过去的两年中发展迅速。许多工作表明,Anchor-free detectors 的性能可以与anchor-based detectors 相媲美。Anchor-free mechanism 大大减少了需要启发式调优的设计参数的数量和许多技巧(如Anchor Clustering,Grid Sensitive),从而获得了良好的性能,使检测器,特别是其训练和解码阶段,大大简化。 将YOLO转换为anchor-free 模式非常简单。我们将每个位置的预测从3减少到1,并让它们直接预测4个值,即网格左上角的两个偏移量,以及预测框的高度和宽度。我们分配每个目标定位中心作为正样本,正如 Fcos 做的一样,预先定义一个scale范围来指定每个目标的FPN level。这样的修改降低了detector的参数和GFLOPs,使其速度更快,但获得了更好的性能- 42.9%的AP,如表2所示。 Multi positives与YOLOv3的分配规则一致,以上的?anchor-free 版本为每个目标只选择一个正样本(中心位置),同时忽略其他高质量的预测。然而,优化这些高质量的预测也可能带来有益的梯度,这可能会缓解正/负采样在训练中的极端不平衡。我们简单地将中心3×3区域赋值为正,在 FCOS 中也称为“中心采样”。检测器的性能提高到45.0%的AP,如表2所示,已经超过了 ultralytics-YOLOv3 (44.3% AP2 )目前的最佳实践。 SimOTA基于旷世自己的研究 OTA ,总结了四个关于高级标签分配的关键观点:
OTA满足上述四个规则,因此我们选择它作为候选标签分配策略。 具体来说,OTA 从全局的角度分析标签分配,并将分配过程表述为一个最优运输(Optimal Transport, OT)问题,产生了当前分配策略中的SOTA性能。然而,在实践中,我们发现通过Sinkhorn-Knopp 算法来解决OT问题带来了25%的额外训练时间,这对于训练300个epoch来说是相当昂贵的。因此,我们将其简化为dynamic top-k策略,命名为SimOTA,以得到近似解。 SimOTA首先计算成对匹配度,对每个 prediction-gt pair 对用 cost 表示或 quality 。例如,在SimOTA中,gt 与 prediction 之间的 cost 计算如下: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1) 这里,λ是一个平衡系数。和是 gt 与 prediction 之间的分类损失和回归损失。然后,对于?gt ?,我们选择固定中心区域内cost最小的前k个预测作为其正样本。最后,将这些正预测对应的grids赋值为正,其余grids赋值为负。注意,k值随 ground-truth 的不同而变化。更多细节请参考OTA 中的Dynamic k Estimation策略。 SimOTA不仅减少了Sinkhorn-Knopp算法的训练时间,而且避免了额外的求解超参数。如表2所示,SimOTA将 detector 的AP从45.0%提高到47.3%,比SOTA ultralytics-YOLOv3提高了3.0% AP,显示了该高级分配策略的威力。 End-to-end YOLO我们按照(Object detection made simpler by eliminating heuristic nms)添加两个额外的 conv 层,one-to-one label assignmen 和stop gradient。 2.2 其他的BackbonesModified CSPNet in YOLOv5为了进行比较,我们采用的正是YOLOv5的backbone,包括经过修改的CSPNet、SiLU激活和PAN head。产出了 YOLOXS, YOLOX-M, YOLOX-L, and YOLOX-X models 均遵循其比例规律。与表3中的YOLOv5相比,我们的模型得到了AP ~ 3.0% ?~ 1.0%的一致改善,只增加了很小的时间(来自decoupled head)。 Tiny and Nano detectors?为了与YOLOv4-Tiny 相比较,我们进一步缩小了我们的模型YOLOX-Tiny。对于移动设备,我们采用深度卷积的方法来构建YOLOX-Nano模型,该模型只有0.91M参数和1.08G FLOPs。如表4所示,YOLOX即使在模型较小的情况下也表现良好。 Model size and data augmentation在我们的实验中,所有的模型保持了几乎相同的learning schedule和优化参数,如2.1所示。然而,我们发现合适的augmentation策略因模型大小的不同而不同。如表5所示,在对YOLOX-L应用MixUp可以提高AP 0.9%的同时,对于YOLOX-Nano这样的小模型,减弱增强效果更好。具体来说,我们在训练小型模型(即YOLOX-S、YOLOX-Tiny和YOLOX-Nano)时,去除mix up增强,削弱mosaic (将尺度范围从 [0.1, 2.0] 减小到[0.5, 1.5])。通过这种修改,YOLOX-Nano的AP从24.0%提高到了25.3%。 对于大型模型,我们还发现更强的增强效果更有帮助。实际上,我们的MixUp实现比(Bag of freebies for training object detection neural networks.)中的原始版本更重。受 Copypaste 的启发,我们在 mixing up 它们之前,通过随机采样比例因子来抖动这两个图像。为了理解带有缩放抖动的Mixup的功能,我们将其与YOLOX-L上的 Copypaste 进行了比较。注意,Copypaste 需要额外的实例掩码注释,而MixUp不需要。但如表5所示,这两种方法获得了有竞争的性能,表明当没有实例掩码注释可用时,带有缩放抖动的MixUp是Copypaste的合格替代品。 3. Comparison with the SOTA有一个传统来显示SOTA比较表,如表6所示。但是,请记住,该表中模型的推理速度通常是不受控制的,因为速度随软件和硬件的不同而不同。因此,对于图1中的所有YOLO系列,我们都使用相同的硬件和代码库,绘制出稍微受控制的速度/精度曲线。 我们注意到有一些模型较大的高性能YOLO系列,如 Scale-YOLOv4和YOLOv5-P6。目前基于Transformer(Swin transformer)的detectors 将精确度- sota提升到60 AP。由于时间和资源的限制,我们在本报告中没有探讨这些重要的特性。然而,它们已经在我们的视野内。 ?4. 1st Place on Streaming Perception Challenge (WAD at CVPR 2021)Streaming Perception Challenge on WAD 2021?是通过一个最近提出的 metric: streaming accuracy,对准确性和延迟的联合评估。这个metric背后的关键点是,在每个时刻联合评估整个感知堆栈的输出,迫使堆栈考虑当计算发生时应该忽略的流数据的数量。我们发现,在30 FPS 的数据流上,metric 的最佳权衡点是一个推理时间为33ms的强大模型。所以我们采用了一个带有TensorRT的YOLOX-L模型来制作我们的最终模型,来挑战赢得第一名。详情请参考挑战网站。 5. Conclusion在本报告中,我们介绍了一些实验更新到YOLO系列中,形成高性能anchorfree detectorYOLOX。YOLOX配备了一些最新的先进检测技术,如decoupled head、anchor-free和advanced label assigning strategy,在所有模型尺寸中,YOLOX实现了速度和准确性之间的更好的平衡。值得注意的是,我们将YOLOv3的架构提升到了47.3%的AP,比目前的最佳实践高出了3.0% AP。YOLOv3仍然是行业中使用最广泛的检测器之一,因为它具有广泛的兼容性。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 10:37:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |