Faster RCNN Tensorflow代码感悟(小白的入门1)

@RPN的预测框到底是怎么得到的TOC

rpn_bbox_pred到底预测的是什么?

rpn_bbox_pred = slim.conv2d(rpn, self._num_anchors * 4, [1, 1], trainable=is_training, weights_initializer=initializer, padding=‘VALID’, activation_fn=None, scope=‘rpn_bbox_pred’)

误解:该卷积是生成9个Anchor坐标4个参数(x,y,w,h)

Faster RCNN Tensorflow代码感悟(小白的入门1)_第1张图片
红色的框A代表原始的Foreground Anchors,绿色的框G代表目标的GT,我们的目标是寻找一种关系,使得输入原始的anchor A经过映射得到一个跟真实窗口G更接近的回归窗口G’
**个人理解:**实际是生成了输出就是每个Anchor的平移量tx,ty和变换尺度tw,ty。如何通过预测的偏移量得到RPN预测得到的实际坐标呢:
Faster RCNN Tensorflow代码感悟(小白的入门1)_第2张图片
经过变化可得
RPN预测后的实际Box坐标是(x,y,w,h);
则RPN网络预测后的坐标值:
x = t x ∗ w a + x a x= t_x*w_a+x_a x=txwa+xa y = t y ∗ h a + y a y= t_y*h_a+y_a y=tyha+ya
w = e t w ∗ w a w=e^{t_w }*w_a w=etwwa , h = e t h ∗ h a h=e^{t_h }*h_a h=ethha
Faster RCNN Tensorflow代码感悟(小白的入门1)_第3张图片
代码中的(dx,dy,dw,dh)就是对应公式中的( t x , t y , t w , t h t_x,t_y,t_w,t_h tx,ty,tw,th),而这个偏移量就是RPN用1*1卷积获得的
在这里插入图片描述

同理下面的是Anchor与GT Box的
x ∗ = t x ∗ ∗ w a + x a x^*=t_x^**w_a+x_a x=txwa+xa , y ∗ = t y ∗ ∗ h a + y a y^*=t_y^**h_a+y_a y=tyha+ya
w ∗ = e t w ∗ ∗ w a w^*=e^{t^*_w }*w_a w=etwwa , h ∗ = e t h ∗ ∗ h a h^*=e^{t_h^* }*h_a h=ethha

loss的计算
Faster RCNN Tensorflow代码感悟(小白的入门1)_第4张图片

小白一个,上述中如有错误,敬请指导

你可能感兴趣的:(Faster RCNN Tensorflow代码感悟(小白的入门1))