YOLOX 是旷视开源的高性能检测器。旷视的研究者将解耦头、数据增强、无锚点以及标签分类等目 标检测领域的优秀进展与 YOLO 进行了巧妙的集成组合,提出了 YOLOX,不仅实现了超越 YOLOv3、 YOLOv4 和 YOLOv5 的 AP,而且取得了极具竞争力的推理速度。
其中YOLOX-L版本以 68.9 FPS 的速度在 COCO 上实现了 50.0% AP,比 YOLOv5-L 高出 1.8% AP! 还提供了支持 ONNX、TensorRT、NCNN 和 Openvino 的部署版本。
YOLOX 是旷视科技推出的一种高性能目标检测算法。以下是关于它的详细介绍:
- 主要特点:
- Anchor-free 机制:与传统的 YOLO 系列采用 anchor boxes 的方式不同,YOLOX 采用了 anchor-free 的目标检测方法,减少了对预定义锚框的依赖,更直接地预测边界框的位置信息。这种方式有助于提高小目标检测性能,并且在训练和推理过程中减少了计算量和参数数量。在传统的基于 anchor 的目标检测方法中,模型需要预先定义一系列不同尺寸和长宽比的锚框,然后预测这些锚框与真实目标框之间的偏移量等信息来确定目标的位置和大小。而 YOLOX 摒弃了这种预定义锚框的方式,直接预测目标边界框的位置信息。具体来说,模型会预测边界框的中心点坐标以及宽高信息,以此来确定目标的位置和大小。例如,对于一个目标,模型预测其边界框中心点在图像中的坐标 以及该边界框的宽度 和高度 。
-
正负样本的筛选2:
-
初步筛选:
-
中心点判断:首先判断预测框的中心点是否落在真实目标框(Ground Truth)内。计算预测框中心点到真实目标框上下左右四条边的距离,如果这些距离同时大于 0,则该预测框有可能是正样本。这一步是基于目标的空间位置关系进行的初步筛选,目的是找到可能包含目标的预测框。
-
中心区域判断:在第一步的基础上,进一步判断预测框中心点是否在真实目标框中心点附近的特定区域内。比如,判断预测框中心点到以真实目标框中心点为中心的一个边长为 5×5 的区域的四条边的距离是否同时大于 0,如果满足该条件,则该预测框通过初步筛选。这一步的目的是更精确地筛选出与真实目标更接近的预测框,减少误判。
-
精细筛选(SimOTA):经过前两步初步筛选出来一部分正样本候选后,假设筛选出了 1000 个正样本候选,而真实目标框的数量为 3。在进行前向计算时,会计算这 1000 个样本与 3 个真实目标框的损失,同时计算这 1000 个正样本候选与真实目标框的交并比(IoU),得到一个维度为 (3, 1000) 的 IoU 矩阵。根据 IoU 筛选出 IoU 最大的若干个候选框(比如 10 个),即维度为 (3, 10) 的候选框。计算这 10 个 IoU 的总和,这个总和值作为动态选择正样本的数量标准。然后,通过比较损失值,为每个真实目标框挑选损失值最低的几个候选框作为最终的正样本。对于一个候选框同时与多个真实目标框匹配的情况,比较该候选框与各个真实目标框的损失,将其分配给损失最小的真实目标框。
-
-
减少计算复杂度:不需要预先定义锚框,避免了与锚框相关的复杂计算,如锚框的聚类分析等,降低了检测头的复杂度,也减少了生成结果的数量,在一些边缘设备上具有更好的性能表现。
-
提升泛化能力:避免了因锚框尺寸和比例固定而可能导致的对某些特定形状或大小目标的不适应问题,提高了模型对不同类型目标的泛化能力。
-
解耦头(Decoupled Head):在目标检测中,分类和回归的任务存在相互冲突,将耦合的检测头分开为两个相互独立的检测分支,一个分支负责预测目标的类别,另一个分支负责预测目标的边界框位置。这种解耦的设计使得模型能够更好地学习不同的任务,提高检测的准确性。
-
先进的标签分配策略:引入了新的标签分配策略,优化了正负样本的选择过程,使得模型能够更好地学习到物体边界框的真实分布。例如使用 SimOTA 策略,该策略考虑了损失 / 质量相关性、中心优先、每个真实框的正样本动态数量以及全局视角等因素,提高了标签分配的合理性和准确性。
-
强数据增广:继承了 YOLOv4 的数据增强策略,使用了 Mosaic 增强方法,通过随机拼接多张图像来生成新的训练样本,增强了模型对于各种场景的适应性和鲁棒性。同时还使用了 Mixup 等其他数据增强技术,进一步提升了模型的性能。
- 网络结构:
-
骨干网络:通常使用 Darknet-53 作为骨干网络,这是一种具有 53 个卷积层的卷积神经网络,能够提取图像的特征。
-
颈部结构:采用特征金字塔网络(FPN)和路径聚合网络(PAN)的结合,进行多尺度特征融合,以便更好地检测不同大小的目标。
- a能检测出来物体但是不易准确定位位置,b消耗资源太多,c没有将高层的语义信息和底层的位置信息融合,因此提出了FPN
- 在现实世界的图像中,目标物体的大小差异巨大,从小的物体如昆虫到巨大的建筑物等。FPN 通过融合不同层次的特征图,能够同时处理不同尺度的目标。例如,对于小目标,浅层特征图具有较高的分辨率,能够提供更精细的位置信息,帮助模型准确地定位小目标。而对于大目标,深层特征图具有更丰富的语义信息,能够更好地识别目标的类别和整体形状。
- FPN 可以很容易地与其他网络结构结合,形成更强大的目标检测模型。例如,可以与不同的骨干网络(如 ResNet、VGG 等)结合,利用不同骨干网络的优势提取特征,然后通过 FPN 进行多尺度特征融合。
-
头部结构:使用解耦头结构,包括分类头和回归头,分别用于预测目标的类别和位置。
- 性能优势:
-
高精度:在多个公开数据集上的实验结果表明,YOLOX 的检测精度相较于之前的 YOLO 系列算法有了显著提升,能够准确地检测出各种目标1。
-
快速训练:通过优化训练过程,YOLOX 的训练速度比以往的版本更快,能够在较短的时间内完成模型的训练1。
-
灵活的可扩展性:具有灵活的可扩展性,允许用户根据实际应用场景选择不同的模型变体,包括 YOLOX-Nano、YOLOX-Tiny、YOLOX-S、YOLOX-M 和 YOLOX-L 等不同规模的模型,满足从边缘设备到服务器级别的部署需求。