Label的生成(RPN)
RPN部分的Label,是连同数据增广,在送入网络训练之前就已经生成好的。由于检测需要解决的是2个问题:坐标的回归&坐标点的分类,自然地这里的Label包含的是2方面:分类Label的生成&回归Label的生成。本文先介绍分类Label的生成
单目标分类Label的生成(RPN)
假设原图大小为 H ∗ W H*W H∗W,有9个anchor,Feature Map stride为16,那么最终关于分类的样本维度为 H/stride * W/stride * numanchor,即 H/16 * W/16 * 9,下面将结合实际图例,说明分类样本产生的过程。
这里举例一种简单的情况:原图的大小为768 * 1024,为了适配网络(1024 * 1024),我们在底部补黑边(0,0,0)。图中只有1个框,坐标为 ( x 0 , y 0 , x 1 , y 1 ) = ( 266.24 , 241.664 , 1009.664 , 724.992 ) (x_0,y_0,x_1,y_1) = (266.24,241.664,1009.664,724.992) (x0,y0,x1,y1)=(266.24,241.664,1009.664,724.992),如下图所示。
这里先给出最终生成的,每个Anchor下的分类Label。其中-1代表Ignore,实际训练中不会回传该部分的梯度;0代表负样本,即背景;1代表正样本,即目标。
可以看到,大部分的Anchor,对应的Label,不是0就是-1,只有Anchor 6中有少部分的目标。但具体是为什么,而每个点对应的值是如何计算的,下面给出说明。
分类Label的生成,涉及到以下的变量:
- Anchor Map:上文提到的 ( W ∗ H ∗ 9