YOLOv3: An Incremental Improvement
参考
Introduction
The Deal
Bounding Box Prediction
Class Prediction
- 这里作者提出一个问题:每个框使用多标签分类预测边界框可能包含的类。
- 因此此时使用softmax就不合适(因为它会假设每个框正好有一类,但事实通常并非如此(重叠目标,或者大框包小框))
- we simply use independent logistic classifiers,作者用独立的逻辑回归分类器替代,loss用的交叉熵
Predictions Across Scales
- 上面提到YOLO引入FPN,在卷积的三个阶段都引出一个feature map用来检测,因此有三个scale(尺度)
- 而每个scale都tensor的长度为:
N
×
N
×
[
3
?
(
4
+
1
+
80
)
]
N × N × [3 ? (4 + 1 + 80)]
N×N×[3?(4+1+80)],其中4=box参数,1=是否有对象,80=类别个数
Feature Extractor(DarkNet53)
Things We Tried That Didn’t Work
-
作者认为没啥用的trick -
Anchor box x, y offset predictions
- 作者认为
b
x
=
σ
(
t
x
)
+
c
x
b
y
=
σ
(
t
y
)
+
c
y
b_x= \sigma(t_x) + c_x \\ b_y= \sigma(t_y) + c_y
bx?=σ(tx?)+cx?by?=σ(ty?)+cy?这个公式降低了模型的稳定性,效果不太好
-
Linear x, y predictions instead of logistic.
- 作者尝试使用线性激活直接预测x,y偏移,而非逻辑激活。这导致了mAP几个点的下降(Leaky ReLU替代Sigmoid?)
-
Focal loss
- 作者尝试使用Focal loss。mAP大约掉了2个点。
- 作者认为YOLOv3可能已经对Focus loss试图解决的问题具有鲁棒性,因为它有单独的对象性预测和条件类预测。
- 但是我们在实践中发现并不是这样的,在检测密集目标的时候仍然会有正负样本不平衡的问题,因此Focal loss在某些情况下依然有效
Performance
|