作者在YOLOv2的基础上进行了改进,分辨率为320x320的YOLOv3能在22ms下mAP达到28.2,并且达到了和SSD同样的精度。主要改动为bounding box预测、分类预测、特征提取并加入了多尺度。
1.bounding box预测
和v2版的YOLO 9000一样,在v3版中使用维度聚类预测bounding box作为anchor box。网络对每个bounding box预测四个坐标,tx,ty,tw,th,如果单元格与图像左上角偏移(cx, cy),且边界框先验具有宽度和高度pw, ph,则预测结果为:
训练期间使用均方误差和损失。如果一些坐标预测的ground truth是,梯度就是ground truth的值(从ground truth盒子计算而来),来最小化预测:,ground truth值能简单地通过倒转上式。
YOLOv3使用逻辑回归来预测每个bounding box的回归分数。如果bounding box先验与ground truth目标的重叠比任何其他bounding box先验都要大,那么这个值应该是1。如果bounding box先验不是最佳的,但确实和一个ground truth目标重叠超过某一个阈值,气门应该忽略这一个预测,这篇文章中使用的阈值是0.5。和Fast R-CNN不同的是这个系统仅仅对每个ground truth目标分配一个bounding box先验。如果一个bounding box 先验没有分配给一个ground truth目标,将会造成坐标和类预测没有损失。仅仅对目标。
2、类预测
每个box使用多标签分类来预测bounding box可能包含的类。我们没有使用softmax,因为我们发现它对于良好的性能是不必要的,而是简单地使用独立的逻辑分类器。在训练过程中,我们使用二元交叉熵损失进行类预测。当我们转移到更复杂的领域,比如Open Images Dataset时,这种形式会有所帮助。在这个数据集中有许多重叠的标签(即女人和人)。使用softmax强加了这样一个假设,即每个框只有一个类,但通常不是这样。多标签方法可以更好地建模数据。
3.跨尺度预测
YOLOv3在3个不同的尺度上预测box。我们的系统使用与特征金字塔网络相似的概念从这些尺度中提取特征。从基本特征提取器中,我们添加了几个卷积层。最后一种方法预测了三维张量编码bounding box、对象和类预测。在用COCO进行实验的时候在每个尺度上预测3个box,因此对4个bounding box补偿,张量为NxNx[3*(4+1+80)],1个目标预测和80类分类预测。
接下来,从之前的两个类中获取feature map,并且进行两倍的上采样。我们还从之前的网络获取feature map,使用连接将其与上采样特性合并。该方法可以从上采样的特征中获取更有意义的语义信息,并从早期的feature map中获取更细粒度的信息。然后,我们添加更多的卷积层来处理这个组合的feature map,并最终预测出一个类似的张量,尽管现在的张量是原来的两倍。我们再次执行相同的设计来预测最终的比例。因此,我们对第三个尺度的预测受益于所有之前的计算以及网络早期的细粒度特性。依然使用k-means来决定bounding box来决定最终的先验,仅仅选择9类和任意3个尺度,通过尺度来均匀的分配类。在COCO数据集上,有9个集群:(10×13), (16×30), (33×23), (30×61), (62×45), (59×119), (116×90), (156×198), (373×326)。
4.特征提取
使用一个新的网络来执行特征提取,新网络是YOLOv2、Darknet-19中使用的网络和那些新奇的残余网络之间的混合方法。新网络使用连续3×3和1×1卷积层但nowhas一些快捷方式连接,明显增大。有53个卷积层,作者称之为Darknet-53。
这个新的网络比Darknet-19更强力,依然比ResNet-101和ResNet-152更有效率。每个网络训练使用相同的设置和测试在256×256,单一的crop准确性。在Titan X运行时间测量X 256×256。因此,Darknet-53与最先进的分类器性能相当,但浮点运算更少,速度更快。Darknet-53比resnet - 101更好,并且快1.5倍。Darknet-53和resnet - 152性能类似,并且快两倍。Darknet-53还实现了每秒最高的浮点运算。这意味着网络结构更好地利用了GPU,使其更有效地进行评估,从而更快。这主要是因为ResNets的图层太多,效率不高。性能的运行结果如下图所示,