Faster RCNN训练策略
- 用ImageNet模型提取特征,独立训练一个RPN网络。(ImageNet模型参数和RPN参数可训练);
- 使用ImageNet模型提取特征(上一步参数更新前的模型),使用上一步RPN网络产生的proposal作为输入(实际训练过程中是将RPN网络权重冻结再结合Fast RCNN进行训练的);
- 使用上一步的模型提取特征(就是用来训练Fast RCNN的特征提取网络)来再次训练RPN网络(在第一步训练的基础上),这里的特征提取网络的参数是冻结的不参与更新;
- 仍然固定特征提取网络的参数,在上一步的基础上加入Fast RCNN的网络层,形成一个unified network,继续训练。
训练RPN网络
Faster RCNN的一大创新点就是提出了“RPN”网络,在提高精度的同时提高了速度,这里讲一下RPN网络的训练。
RPN网络训练有两个Loss:
- Lcls:softmax loss,用于分类anchors属于前景还是背景;
- Lreg:smooth L1 loss,用于修正anchor框,前面乘了一个pi*表示只回归有目标的框。 多任务损失公式
pi表示网络预测出来第i个anchor是目标的概率,pi* 表示对应的Ground Truth。若第i个anchor与某个真实目标的iou大于0.7,则pi* =1,小于0.3,则pi* =0,其余情况不参与训练;
ti表示参数化坐标向量,表示预测框和anchor框之间的偏移,ti*表示对应的Ground Truth,表示GT框和anchor框之间的偏移。
smooth L1 loss
smooth L1 loss公式smooth L1 loss结合了L1和L2损失的优点,相比L1损失,smooth L1在0点可导,不影响收敛;相比L2损失,smooth L1对离群点、异常值不敏感,梯度变化相对更小,训练时不容易跑飞,所以鲁棒性更强。
网友评论