Beispiel #1
0
        /// <summary>
        /// Builds a Faster R-CNN or R-FCN detection model based on the model config.
        /// </summary>
        /// <param name="frcnn_config"></param>
        /// <param name="is_training"></param>
        /// <param name="add_summaries"></param>
        /// <returns>FasterRCNNMetaArch based on the config.</returns>
        private FasterRCNNMetaArch _build_faster_rcnn_model(FasterRcnn frcnn_config, bool is_training, bool add_summaries)
        {
            var num_classes      = frcnn_config.NumClasses;
            var image_resizer_fn = _image_resizer_builder.build(frcnn_config.ImageResizer);

            var feature_extractor = _build_faster_rcnn_feature_extractor(frcnn_config.FeatureExtractor, is_training,
                                                                         inplace_batchnorm_update: frcnn_config.InplaceBatchnormUpdate);

            var number_of_stages             = frcnn_config.NumberOfStages;
            var first_stage_anchor_generator = anchor_generator_builder.build(frcnn_config.FirstStageAnchorGenerator);
            var first_stage_atrous_rate      = frcnn_config.FirstStageAtrousRate;

            return(new FasterRCNNMetaArch(new FasterRCNNInitArgs
            {
                is_training = is_training,
                num_classes = num_classes,
                image_resizer_fn = image_resizer_fn,
                feature_extractor = _feature_extractor,
                number_of_stage = number_of_stages,
                first_stage_anchor_generator = null,
                first_stage_atrous_rate = first_stage_atrous_rate
            }));
        }