之前在做物体检测的时候,对这个问题没有弄清楚,记录下最近关于这个问题的理解。
问题:浅层特征图检测小目标,深层特征图检测大目标?
- 浅层特征图不检测大目标是因为感受野不够,所谓感受野,就是用来表示网络内部的不同位置的神经元对原图像的感受范围的大小。只有当感受野大于物体,能够将物体包含的时候,才能正确检测。在深层特征图,感受野比较大,可以更好的看清一个物体,用于检测大目标准确度更高。浅层特征图感受野小,对于大物体不能够获取全部信息,比如检测一只动物,却只能检测到一条腿,通过腿去判断动物的类别,就可能会产生误判。
- 由于监督学习模式,越深的层得到的特征越抽象(高级),越浅的层特征越细节(低级)。深层的特征由于平移不变性(translation invariance),已经丢掉了很多位置信息。检测既需要分类也需要回归。分类要求特征有较多的高级信息,回归(定位)要求特征包含更过的细节信息,因此,大的特征图由于感受野较小,同时特征包含位置信息丰富,适合检测小物体。
感受野计算公式:
l
(
k
)
=
(
l
(
k
−
1
)
−
1
)
+
[
f
(
k
)
∗
∏
i
=
1
k
−
1
s
i
]
l_{(k)} = (l_{(k-1)}-1)+[f(k)*\prod_{i=1}^{k-1}s_i]
l(k)=(l(k−1)−1)+[f(k)∗i=1∏k−1si]
l
k
l_k
lk:第k层的感受野
f
k
f_k
fk:第k层的kernel_size
s
k
s_k
sk:第k层的stride