2.1 Bounding box prediction
1、遵循YOLO9000,我们的系统使用尺寸簇(dimension clusters)作为锚定框(anchor boxes )来预测边界框(bounding boxes)。 网络为每个边界框tx,ty,tw,th预测4个坐标。 如果单元格从图像的左上角偏移了(cx; cy),并且先验边界框的宽度和高度为pw,ph,则预测对应于:
2、如果边界框与地面真值对象的重叠量大于任何其他边界框先验,则应为1.如果先验边界框不是最好的,即使与真实对象的IOU超过某个阈值,我们将忽略预测。与faster rcnn 不同,我们的系统仅为每个地面真值对象分配一个边界框。如果我们没有将先验边界框分配给地面的真值对象,则不会对坐标或类别造成损失,只有对象性
2.2 Class Prediction
1、每个框使用多标签分类预测边界框可能包含的类。 我们不使用softmax,因为我们发现它不需要良好的性能,而是只使用独立的逻辑分类器。 在训练期间,我们使用二进制交叉熵损失进行类预测。
2、当我们移至开放图像数据集(the Open Images Dataset )等更复杂的领域时,这种表达方式会有所帮助。 在此数据集中,有许多重叠的标签(例如,女人和人)。 使用softmax会假设每个box只有一个类,而事实并非如此。 多标签方法可以更好地对数据建模
2.3 Predictions Across Scales
1、YOLOv3预测3种不同比例的box。 我们的系统使用类似的概念从金字塔特征网络中提取特征,以金字塔网络为特征[8]。 从我们的基本特征提取器中,我们添加了几个卷积层。 最后一个卷积层预测3D张量编码边界框,客观性和类预测。 在我们用COCO 进行的实验中,我们预测每个尺度上有3个盒子,因此对于4个边界框偏移量,1个对象预测和80个类预测,张量为N×N×[3 *(4 + 1 + 80)]。
2、接下来,我们从先前的2层中获取特征图,并将其上采样2倍。 我们还从网络中较早的地方获取了一个特征图,并使用串联将其与我们的上采样特征合并。 这种方法使我们能够从上采样的特征中获取更有意义的语义信息,并从较早的特征图中获得更细粒度的信息。 然后,我们再添加一些卷积层以处理此组合特征图,并最终预测相似的张量,尽管现在的大小是原图的两倍。
3、我们再执行一次相同的设计来预测最终比例的盒子。 因此,我们对第3层的预测受益于所有先前的计算以及网络早期的细粒度功能。 我们仍然使用k均值聚类来确定边界框先验。 我们只是随意选择了9个聚类和3个比例,然后将这些聚类在各个比例之间平均分配。 在COCO数据集上,9个聚类为:(10×13); (16×30);(33×23); (30×61); (62×45); (59×119); (116×90); (156×198); (373×326)。
2.4 Feature Extractor
1、我们使用一个新的网络来执行特征提取。 我们的新网络是YOLOv2,Darknet-19中使用的网络与新的残留网络内容之间的一种混合方法。 我们的网络使用了连续的3×3和1×1卷积层,但现在也有了一些快捷连接,并且规模更大。 它具有53个卷积层,因此我们将其称为Darknet-53!
2、每个网络都经过相同设置的训练,并以256×256的single crop accuracy 进行测试。 运行时间是在Titan X上以256×256进行测量的。因此Darknet-53的性能与最新的分类器相当,但浮点运算更少,速度更高。 Darknet-53比ResNet-101更好,并且速度是1:5倍。 Darknet-53具有与ResNet-152相似的性能,并且快2倍
3、Darknet-53还实现了每秒最高的测量浮点运算。 这意味着网络结构可以更好地利用GPU,从而使其评估效率更高,从而速度更快。 这主要是因为ResNets层太多,效率不高
2.5 Training
1、我们仍然训练完整的图像,没有进行困难的负挖掘(negative mining)或任何类似的东西。 我们使用多尺度培训,大量数据扩充,批处理规范化以及所有标准内容。 我们使用Darknet神经网络框架进行训练和测试。
3. How We Do
1、YOLOv3很好! 请参阅表3。就COCO而言,平均平均AP度量标准很奇怪,与SSD变体相当,但速度提高了3倍。 尽管在此指标上,它仍然比其他模型(例如RetinaNet)落后很多.但是,当我们以IOU =:5(或图表中的AP50)查看mAP的“旧”检测指标时,YOLOv3非常强大。 它几乎与RetinaNet相当,并且远远超过SSD变体。 这表明YOLOv3是一个非常强大的检测器,擅长于为物体制造出体面的盒子。 但是,随着IOU阈值的增加,性能会显着下降,这表明YOLOv3难以使框与对象完美对齐。
2、过去,YOLO一直在努力处理小物件。 但是,现在我们看到了这种趋势的逆转。 通过新的多尺度预测,我们看到YOLOv3具有相对较高的APS性能。 但是,它在中型和大型对象上的性能相对较差。 要深入了解这一点,还需要进行更多调查。 当我们在AP50度量标准上绘制精度与速度的关系时(参见图5),我们看到YOLOv3比其他检测系统具有明显的优势。 即更快更好
4. Things We Tried That Didn’t Work
1、Anchor box x; y offset predictions.
我们尝试使用普通的锚框预测机制来预测x; 使用线性**将y偏移为框的宽度或高度的倍数。 我们发现此公式降低了模型的稳定性,并且效果不佳。
2、Linear x; y predictions instead of logistic.
我们尝试使用线性**来直接预测x。 y偏移量,而不是逻辑**。 这导致mAP下降了两点
3、Focal loss.
我们尝试使用焦点损失。 它降低了我们的mAP大约2点。 YOLOv3可能已经对焦点损失试图解决的问题具有鲁棒性,因为它具有独立的客观性预测和条件类预测。 因此,对于大多数示例而言,类别预测不会造成损失吗? 或者其他的东西? 我们不太确定。
4、Dual IOU thresholds and truth assignment.双IOU阈值和真值分配。
更快的RCNN在训练期间使用两个IOU阈值。 如果预测与基本事实的重叠量为0.7,则为正例;由[:3-:7]的预测被忽略,对于所有基本实物,小于0.3则为否定例。 我们尝试了类似的策略,但没有取得好的结果
我们非常喜欢我们目前的表述,似乎至少是局部最优。 这些技术中的某些可能最终会产生良好的结果,也许它们只需要进行一些调整即可稳定训练。