Search code examples
pythontensorflowobject-detectionobject-detection-api

Training on Regional Proposal Network only for object detection using Tensorflow


I like to train only RPN network from faster rcnn using tensorflow. In caffe, I have done training only RPN.

In tensorflow, this tutorial shows training a customized network. Then the other tutorial here discussed how to train using models from modelzoo.

So for my case, to train only RPN part, which approach is appropriate for me? Say If I follow the first approach defining CNN network, how can I load pretrained model for transfer learning.


Solution

  • To train RPN network only using tensorflow object detection api, you just need to change the config files because the API supports RPN only option as described here. To get the RPN only model, just add an option 'number_of_stages : 1' in the model config area (similar to 'num_of_classes : 90'). (You can also remove some second stage parameters from the config file since they are useless if the number_of_stages is set to 1).

    As for the second question of transfer learning, it is the same as if training the faster rcnn network, just need to make sure from_detection_checkpoint is true and finetune_checkpoint_path is correct in the config file.

    During training process you can use tensorboard to check the status, once evaluation is performed, you can see in 'images' tab that region proposals are visualized on the image and the labels are all 'object + confidence score'.