作为人类,我们的视觉能力即使不是最大的能力,也是其中之一。我们的眼睛是我们体验世界的门径。计算机视觉领域是人类试图复制并有可能超越人类视觉的魔力。尽管我们的眼睛可以很出色,但我们通常不能一次 "看到所有"。
另一方面,计算机则是一个不同的故事。在计算机视觉的帮助下,人类可以将平凡的任务委托给机器,并最终从世界上获得人类视觉所无法想象的细节。
本文旨在向你介绍YOLOX,一种尖端的物体检测算法。我们将介绍它的历史、结构、运作、意义、缺陷和未来前景。为了让你彻底了解YOLOX是怎么回事,让我们从它的兄长YOLO开始。
什么是YOLO?
YOLO是一种物体检测算法,YOLO这个词代表着你只看一次。这个名字参考了YOLO通过一个神经网络的单一前向传播来实时检测物体的能力。YOLO由约瑟夫-雷德蒙(Joseph Redmon)在2015年首次推出,此后成为物体检测的行业标准。这主要是由于YOLO的速度和准确性。
顾名思义,物体检测涉及检测视频和图像中的物体。物体检测的目的是回答两个问题:物体是什么?(分类)和它在哪里?(定位)。
在引入YOLO之前,还有其他两阶段检测算法在发挥作用,特别是R-CNN(基于区域的卷积神经网络)。两阶段检测算法分两个阶段进行物体检测。在第一阶段,图像被划分为可能包含一个物体的区域。然后,该算法在第二阶段对每个区域的物体进行分类。
另一方面,我们有像YOLO这样的单阶段检测器,它不经过两阶段检测器的第一阶段(也被称为区域建议)就进行物体检测。

什么是YOLOX?
YOLOX是YOLO系列的最新版本。到目前为止,已经有了YOLOv2、YOLOv3、YOLOv4、YOLOv5和YOLOR。它们本身都是很好的物体检测算法,每一个都比前一个迭代有所改进,而YOLOX则延续了这个传统。
在YOLOX中,YOLOv3的修改版(YOLOv3-SPP)被用作基线,Darknet-53(一个具有53个卷积层的卷积神经网络)作为骨干。与其他替代方案相比,这种架构有助于YOLOX提供卓越的物体检测性能。
使YOLOX脱颖而出的三个关键支柱是使用解耦头、先进的标签分配策略,以及成为无锚点。
那么,是什么让YOLOX如此特别?为什么机器学习界对它的推出感到兴奋?以下是使YOLOX成为突破性产品的一些核心原则。
解耦头
在此之前,之前的YOLO系列利用了耦合头,分类和定位过程在一个管道中完成。耦合头先前已被证明会大大降低模型的性能。
然而,在YOLOX中,使用了一个解耦头。这意味着分类和定位过程是分开的。与其他采用耦合头设置的算法相比,这通过提高收敛速度而导致性能的提高。
强大的数据扩展
作为其改进的一部分,YOLOX引入了两种增强策略:Mosaic 和MixUp。数据增强基本上涉及修改你已经拥有的数据,为训练你的模型提供更多的数据,从而消除了收集新数据的需要。
马赛克帮助一个模型在更小的范围内识别物体。它根据某种比例将4张训练图像合并成一张。另一方面,MixUp从训练图像中生成一个加权的随机图像对组合。
无锚点
基于锚点的系统有其缺陷。它们在检测过程中引入了更多的时间和潜在的瓶颈。基于锚的系统作为训练过程的一部分进行聚类分析,同时也增加了对每个物体的预测数量,从而增加了推理时间。
有了这些与基于锚的系统相关的明显问题,很明显,从这种系统中转移出来可以产生更多的性能。YOLOX的无锚结构设法将每个图像单元的预测数量从3个减少到1个。
SimOTA
YOLOX引入了一种先进的标签分配技术,称为SimOTA。在选择标签分配策略时,YOLOX背后的团队希望有一个能满足四个目标的系统:损失/质量意识、中心先验、每个地面真相的动态锚点数量和全局视图。
YOLOX的意义
据其创造者称,在COCO数据集上,YOLOX可以超过NanoDet 1.8%的AP,YOLOv3 3%的AP,以及YOLOv5-L 1.8%的AP。这使得YOLOX在速度和准确性都很重要的情况下成为最好的物体检测模型。
最后的思考
YOLOX是YOLO系列的一个值得欢迎的改进。它的快速和准确的能力使它成为计算机视觉世界中的首选。我希望这篇文章对你有帮助。编码愉快