YOLO9000架构——更快、更强
YOLO v2 和 YOLO 9000 由 J. Redmon 和 A. Farhadi 于 2016 年在题为YOLO 9000: Better, Faster, Stronger 的论文中提出。在 67 FPS 时,YOLOv2 的 mAP 为 76.8%,而在 67 FPS 时,它在 VOC 2007 数据集上提供了 78.6% 的 mAP,优于Faster R-CNN和SSD 等模型。 YOLO 9000 使用 YOLO v2 架构,但能够检测 9000 多个类。然而,YOLO 9000 的 mAP 为 19.7% mAP,其中 156 个不在 COCO 中的类的 mAP 为 16%。但是,YOLO 可以预测 9000 多个类。
建筑学:
YOLO9000 的架构与 YOLOv2 的架构非常相似。它还使用 Darknet-19 架构作为其深度神经网络 (DNN) 架构。然而,它们的主要区别在于分类架构。下面我们来看看YOLO 9000分类架构:
分类任务:
对象检测数据集(COCO:80 个类)的类比分类(ImageNet:22k 个类)少得多。扩展YOLO可以检测的类。该论文提出了一种将分类和检测任务与检测合并的方法。它使用端到端网络进行训练,同时反向传播分类损失。然而,简单合并检测和分类的所有类的问题并不是简单地相互排斥的。例如,在 COCO 数据集中,类标签是通用类,如猫、狗等。但在 Imagenet 中,有特定类(例如,对于狗,我们有类诺福克梗”、“约克夏梗”或“贝灵顿梗”)。对于“Dog”和“Norfolk terrier”,我们也不能有不同的 softmax 类,因为它们不是相互排斥的。
等级分类:
YOLO9000 提出了一种称为层次分类的方法。在这种方法中。当我们进行分类时,他们提出了一种基于层次树的结构来表示类及其子类。例如,诺福克梗属于“梗犬”,而“梗犬”又属于“狗”类。这种结构的灵感来自 WordNet。但是,它没有使用图形结构,而是使用基于 Imagenet 数据集中图像集合概念的分层树结构)。这种层次结构称为 WordTree。
为了执行分类,此 WordTree 在每个节点级别使用条件概率。要计算叶节点(特定类)的条件概率,我们需要乘以其所有父节点的条件概率。该架构将“物理对象”定义为其根节点认为 P r (Physical Object) =1。
例如,不同类型梗犬的条件概率可以计算为:
现在,我们可以获得对象属于“诺福克梗”类的绝对概率。
这里,论文以ImageNet-1000为例进行实验。我们没有创建 1000 层的平面结构,而是创建了一个类似于 WordTree 的分层树结构,具有 1000 个叶节点和 369 个父节点。
使用与 YOLOv2 相同的训练参数,Imagenet 上的这种分层 Darknet-19 实现了 71.9% 的 top-1 准确率和 90.4% 的 top-5 准确率。当该模型无法区分叶类时,分层分类的优势在于,它为父类提供了高概率。
训练:
该模型使用 WordTree 方法将 COCO 类与 Imagenet 的 top-9000 类标签相结合,得到 9418 个节点的 WordTree。因此,对应的 WordTree 有 9418 个类。 Imagenet 是一个比 COCO 大得多的数据集。为了平衡数据集,我们对 COCO 进行了过采样,使得 Imagenet 和 COCO 样本之间的比率为 4:1。
我们使用 YOLOv2 数据集训练模型,但我们只使用 3 个锚框而不是 5 个。标签。
结果和结论:
YOLO9000 的总体 mAP 为 19.7%,检测数据集中不存在的类为 16%。它还在 COCO 数据集中不存在的新动物物种上表现更好。 mAP 高于在 DPM 模型中产生的 mAP。
YOLO9000 的主要优势在于它能够实时预测 9000 多个类(准确地说是 9418 个)。
因为它具有大量的类预测能力。它是从医学成像到无人机监控、制造业等应用最广泛的对象识别架构之一。
参考:
- YOLO9000:更好、更快、更强