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
.
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'.