有了前面Faster R-CNN的基础,RFCN就比较容易了。
"""object_detection/meta_architectures/rfcn_meta_arch.py
The R-FCN meta architecture is similar to Faster R-CNN and only differs in the
second stage. Hence this class inherits FasterRCNNMetaArch and overrides only
the `_predict_second_stage` method
"""
改动比较大的地方如下:
box_predictions = self._rfcn_box_predictor.predict(
box_classifier_features,
num_predictions_per_location=1,
scope=self.second_stage_box_predictor_scope,
proposal_boxes=proposal_boxes_normalized)
只改动了这么一点的原因是代码实现和原始paper不是完全一致的,见作者的paper:3.4. Training and hyperparameter tuning。
另外注意,在faster r-cnn中,是先经过ROI poooling,然后进入第二阶段特征提取器。而在rfcn中,是先进行第二阶段特征提取,然后进入RfcnBox