1、在RPN网络里通过1*1预测anchors的偏移(rpn_bbox_pred);
2、在RPN网络里self._proposal_layer()—>proposal_layer_tf—>bbox_transform_inv_tf(anchors, rpn_bbox_pred)来预测anchors的坐标;
3、还是在RPN网络里self._anchor_target_layer()—>anchor_target_layer–>_compute_targets(anchors, gt_boxes[argmax_overlaps, :])通过筛选出来的anchors的坐标和ground truth来预测出偏移(rpn_bbox_targets);
4、然后就是在_add_losses函数self._smooth_l1_loss(rpn_bbox_pred, rpn_bbox_targets)通过预测偏移和真实偏移做回归训练,在_add_losses函数里,你会发现有关于rpn和rcnn两个回归训练,rpn的是关于偏移的回归,rcnn是对于最后分类预测坐标和gt真实坐标的回归,,这个获取anchors真实坐标的函数也是在RPN网络的self._proposal_target_layer里面。loss函数是loss_box = self._smooth_l1_loss(bbox_pred, bbox_targets,…,…)
边界框回归简介
边界框回归细节