Faster-RCNN框架中alt四步训练过程

对训练过程的个人理解

       Faster R-CNN中其实是训练两个网络:RPN和Fast Rcnn,两个网络如果分开单独训练,都会改变共享的卷积层的参数,所以这里需要一种技巧可以对两个网络共享卷积层,而不是分开单独训练。论文中采用一种4步训练法通过选择网络来优化参数。在代码的py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/有四个pt文件:stage1_rpn_train.pt,stage1_fast_rcnn_train.pt,stage2_rpn_train.pt,stage2_fast_rcnn_train.pt对应着这四步训练过程。

    1.stage1_rpn_train.pt

      单独训练RPN 网络,训练的模型用ImageNet的模型来初始化,采用end to end的方式来调整参数。

    2.stage1_fast_rcnn_train.pt

      单独训练检测网络Fast Rcnn,训练用的proposals来自第一步的RPN net,模型初始化采用ImageNet模型。

    3.stage2_rpn_train.pt

     用第二步Fast Rcnn的参数来初始化RPN模型,但是训练的时候固定卷积层,只调整属于RPN的参数。

    4.stage2_fast_rcnn_train.pt

     保持共享的卷积层固定,用第三步调整后的RPN输出的proposals作为输入,微调Fast Rcnn剩下的参数。



你可能感兴趣的:(Faster-RCNN框架中alt四步训练过程)