本文部分内容转载于:【YOLO系列】YOLOv3论文超详细解读(翻译 +学习笔记)-CSDN博客
YoloV3在前作的基础上提升了准确性,虽然一定程度上增大了网络,但更加稳定,且仍旧很快。
Bounding Box Prediction
在YOLOv3 中,利用逻辑回归来预测每个边界框的客观性分数( object score ),也就是YOLOv1 论文中说的confidence :
● 正样本: 如果当前预测的包围框比之前其他的任何包围框更好的与ground truth对象重合,那它的置信度就是 1。
● 忽略样本: 如果当前预测的包围框不是最好的,但它和 ground truth对象重合了一定的阈值(这里是0.5)以上,神经网络会忽略这个预测。
● 负样本: 若bounding box 没有与任一ground truth对象对应,那它的置信度就是 0
使用这种方法,意味着prior box 的预测变为是或不是,也就是一个二分类问题,如果像YOLOv1使用bounding box与ground truth对象的IOU作为confidence,那么confidence score始终很小,无法有效学习,导致检测的Recall不高。
Class Prediction
取消使用softmax函数,改用binary cross-entropy loss
原因:对于softmax函数,一个目标只能有一种标签,例如只能是“women”或“person” 实际上,可以是既是women 还是 person;使用binary cross-entropy loss则变成了对于某个标签 “是 or 不是”
Predictions Across Scales
(1)YOLOv3采用了3个不同尺度的特征图(三个不同卷积层提取的特征)
YOLOv3通过下采样32倍、16倍和8倍得到3个不同尺度的特征图。
例如输入416X416的图像,则会得到13X13 (416/32),26X26(416/16) 以及52X52(416/8)这3个尺度的特征图。
(2)YOLOv3每个尺度的特征图上使用3个anchor box。
使用dimension clusters得到9个聚类中心(anchor boxes),并将这些anchor boxes划分到3个尺度特征图上,尺度更大的特征图使用更小的先验框。
(3)YOLOv3对每个尺度下的特征图都进行边界框的预测。
每种尺度的特征图上可以得到N × N × [3 ∗ (4 + 1 + 80)] 的结果(分别是N x N个 gird cell ,3种尺度的anchor boxes,4个边界框偏移值、1个目标预测置信度以及80种类别的预测概率。)
该方法允许从上采样的特征中获取更有意义的语义信息,从早期的特征图中获取更细粒度的信息。
Feature Extractor
YoloV3在YoloV2和Darketnet-19结合,设计了一个新的网络,命名为Darknet-53
该网络达到了近似于ResNet-101的效果并且效率更高(ResNet实在是太多层,所以效率低):
Train
上表中,在AP50这一指标上与SOTA很相近,也就是IOU=0.5情况下,YoloV3表现很好,证明了YoloV3非常善于为目标绘制bounding box ,但是不够精准。
同时,YoloV2在处理小目标上效果较差,但现在YoloV3处理能力很强,得益于多尺度特征。
YoloV3速度仍旧很快!!