|
25 | 25 | from object_detection.models import faster_rcnn_inception_resnet_v2_feature_extractor as frcnn_inc_res
|
26 | 26 | from object_detection.models import faster_rcnn_inception_v2_feature_extractor as frcnn_inc_v2
|
27 | 27 | from object_detection.models import faster_rcnn_nas_feature_extractor as frcnn_nas
|
| 28 | +from object_detection.models import faster_rcnn_pnas_feature_extractor as frcnn_pnas |
28 | 29 | from object_detection.models import faster_rcnn_resnet_v1_feature_extractor as frcnn_resnet_v1
|
29 | 30 | from object_detection.models import ssd_resnet_v1_fpn_feature_extractor as ssd_resnet_v1_fpn
|
30 | 31 | from object_detection.models.embedded_ssd_mobilenet_v1_feature_extractor import EmbeddedSSDMobileNetV1FeatureExtractor
|
@@ -728,6 +729,73 @@ def test_create_faster_rcnn_nas_model_from_config(self):
|
728 | 729 | model._feature_extractor,
|
729 | 730 | frcnn_nas.FasterRCNNNASFeatureExtractor)
|
730 | 731 |
|
| 732 | + def test_create_faster_rcnn_pnas_model_from_config(self): |
| 733 | + model_text_proto = """ |
| 734 | + faster_rcnn { |
| 735 | + num_classes: 3 |
| 736 | + image_resizer { |
| 737 | + keep_aspect_ratio_resizer { |
| 738 | + min_dimension: 600 |
| 739 | + max_dimension: 1024 |
| 740 | + } |
| 741 | + } |
| 742 | + feature_extractor { |
| 743 | + type: 'faster_rcnn_pnas' |
| 744 | + } |
| 745 | + first_stage_anchor_generator { |
| 746 | + grid_anchor_generator { |
| 747 | + scales: [0.25, 0.5, 1.0, 2.0] |
| 748 | + aspect_ratios: [0.5, 1.0, 2.0] |
| 749 | + height_stride: 16 |
| 750 | + width_stride: 16 |
| 751 | + } |
| 752 | + } |
| 753 | + first_stage_box_predictor_conv_hyperparams { |
| 754 | + regularizer { |
| 755 | + l2_regularizer { |
| 756 | + } |
| 757 | + } |
| 758 | + initializer { |
| 759 | + truncated_normal_initializer { |
| 760 | + } |
| 761 | + } |
| 762 | + } |
| 763 | + initial_crop_size: 17 |
| 764 | + maxpool_kernel_size: 1 |
| 765 | + maxpool_stride: 1 |
| 766 | + second_stage_box_predictor { |
| 767 | + mask_rcnn_box_predictor { |
| 768 | + fc_hyperparams { |
| 769 | + op: FC |
| 770 | + regularizer { |
| 771 | + l2_regularizer { |
| 772 | + } |
| 773 | + } |
| 774 | + initializer { |
| 775 | + truncated_normal_initializer { |
| 776 | + } |
| 777 | + } |
| 778 | + } |
| 779 | + } |
| 780 | + } |
| 781 | + second_stage_post_processing { |
| 782 | + batch_non_max_suppression { |
| 783 | + score_threshold: 0.01 |
| 784 | + iou_threshold: 0.6 |
| 785 | + max_detections_per_class: 100 |
| 786 | + max_total_detections: 300 |
| 787 | + } |
| 788 | + score_converter: SOFTMAX |
| 789 | + } |
| 790 | + }""" |
| 791 | + model_proto = model_pb2.DetectionModel() |
| 792 | + text_format.Merge(model_text_proto, model_proto) |
| 793 | + model = model_builder.build(model_proto, is_training=True) |
| 794 | + self.assertIsInstance(model, faster_rcnn_meta_arch.FasterRCNNMetaArch) |
| 795 | + self.assertIsInstance( |
| 796 | + model._feature_extractor, |
| 797 | + frcnn_pnas.FasterRCNNPNASFeatureExtractor) |
| 798 | + |
731 | 799 | def test_create_faster_rcnn_inception_resnet_v2_model_from_config(self):
|
732 | 800 | model_text_proto = """
|
733 | 801 | faster_rcnn {
|
|
0 commit comments