这个论文的核心就是解决了样本不平衡问题,是focal loss的变体
放上一个大佬的博客:CSDN
首先我们来说说为什么one stage的检测效果差于two stage。
- 首先two stage对于bbox有个筛选过程,这个筛选会筛除大部分的背景bbox,剩下的bbox会进行regression
- 对于这些筛出来的bbox会进行二次regression
由第一条就可以看出,two stage在一定程度上解决了样本不平衡的问题,而样本不平衡问题会导致检测精度很差。因为负样本太多了,所以分类器把所有bbox都归为负样本的话,accuracy也会很高。所以说分类很重要,分类分好了,检测才能做好。这里扯一句yolo系列对于样本不均衡做的比较好,因为只有object中心落在网格中心时,网格的prior box才会进行回归,相当于已经做了负样本的筛选了。
Focal loss
先上公式:
F
L
(
p
t
)
=
−
(
1
−
p
t
)
γ
l
o
g
(
p
t
)
=
(
1
−
p
t
)
γ
C
E
(
y
^
)
i
FL(pt)=−(1−p_t)^γlog(p_t)=(1−p_t)^γCE(ŷ )_i
FL(pt)=−(1−pt)γlog(pt)=(1−pt)γCE(y^)i
这里论文又加了一个参数:
F
L
(
p
t
)
=
−
α
t
(
1
−
p
t
)
γ
l
o
g
(
p
t
)
FL(p_t)=−α_t(1−p_t)^γlog(p_t)
FL(pt)=−αt(1−pt)γlog(pt)
在实验中,发现 γ=2,α=0.25 的取值组合效果最好
关于它的网络结构没啥创新的,这里也就不再赘述了