【问题标题】:Faster RCNN only detects 20 objects per ImageFaster RCNN 每张图像仅检测 20 个对象
【发布时间】:2020-04-22 17:03:37
【问题描述】:

所以我有 Faster RCNN 模型的 tensorlfow API 实现,并且我已经使用最大对象/类 (100/300) 的默认值对其进行了训练,但 它仅在每张图像中检测到 20 个对象 !不少于20个!问题是……没有限制 20……限制是 100/300。有谁知道为什么会这样?

另外,检测不在图像的一个特定区域......它们是分散的,所以我只能猜测它不是裁剪问题。

这是训练配置文件: (我还用更大的最小/最大尺寸限制训练了模型,以确保我没有丢失任何细节,但它没有改变任何东西)

感谢所有花时间回答的人!

faster_rcnn {
 num_classes: 2
 image_resizer {
   keep_aspect_ratio_resizer {
     min_dimension: 600
     max_dimension: 1024
   }
 }
 feature_extractor {
   type: 'faster_rcnn_inception_v2'
   first_stage_features_stride: 16
 }
 first_stage_anchor_generator {
   grid_anchor_generator {
     scales: [0.25, 0.5, 1.0, 2.0]
     aspect_ratios: [0.5, 1.0, 2.0]
     height_stride: 16
     width_stride: 16
   }
 }
 first_stage_box_predictor_conv_hyperparams {
   op: CONV
   regularizer {
     l2_regularizer {
       weight: 0.0
     }
   }
   initializer {
     truncated_normal_initializer {
       stddev: 0.01
     }
   }
 }
 first_stage_nms_score_threshold: 0.0
 first_stage_nms_iou_threshold: 0.7
 first_stage_max_proposals: 300
 first_stage_localization_loss_weight: 2.0
 first_stage_objectness_loss_weight: 1.0
 initial_crop_size: 14
 maxpool_kernel_size: 2
 maxpool_stride: 2
 second_stage_box_predictor {
   mask_rcnn_box_predictor {
     use_dropout: false
     dropout_keep_probability: 1.0
     fc_hyperparams {
       op: FC
       regularizer {
         l2_regularizer {
           weight: 0.0
         }
       }
       initializer {
         variance_scaling_initializer {
           factor: 1.0
           uniform: true
           mode: FAN_AVG
         }
       }
     }
   }
 }
 second_stage_post_processing {
   batch_non_max_suppression {
     score_threshold: 0.0
     iou_threshold: 0.6
     max_detections_per_class: 100
     max_total_detections: 300
   }
   score_converter: SOFTMAX
 }
 second_stage_localization_loss_weight: 2.0
 second_stage_classification_loss_weight: 1.0
}
}

train_config: {
batch_size: 1
optimizer {
 momentum_optimizer: {
   learning_rate: {
     manual_step_learning_rate {
       initial_learning_rate: 0.0002
       schedule {
         step: 40000
         learning_rate: .0002
       }
       schedule {
         step: 900000
         learning_rate: .00002
       }
       schedule {
         step: 1200000
         learning_rate: .000002
       }
     }
   }
   momentum_optimizer_value: 0.9
 }
 use_moving_average: false
}
gradient_clipping_by_norm: 10.0
fine_tune_checkpoint: "C:/tensorflow1/models/research/object_detection/faster_rcnn_inception_v2_coco_2018_01_28/model.ckpt"
from_detection_checkpoint: true
# Note: The below line limits the training process to 200K steps, which we
# empirically found to be sufficient enough to train the pets dataset. This
# effectively bypasses the learning rate schedule (the learning rate will
# never decay). Remove the below line to train indefinitely.
num_steps: 200000
data_augmentation_options {
 random_horizontal_flip {
 }
}
}


train_input_reader: {
tf_record_input_reader {
 input_path: "C:/tensorflow1/models/research/object_detection/training/train.record"
}
label_map_path: "C:/tensorflow1/models/research/object_detection/training/labelmap.pbtxt"
}

eval_config: {
num_examples: 5
# Note: The below line limits the evaluation process to 10 evaluations.
# Remove the below line to evaluate indefinitely.
max_evals: 10
}

eval_input_reader: {
tf_record_input_reader {
 input_path: "C:/tensorflow1/models/research/object_detection/training/test.record"
}
label_map_path: "C:/tensorflow1/models/research/object_detection/training/labelmap.pbtxt"
shuffle: false
num_readers: 1
}

【问题讨论】:

    标签: python tensorflow object-detection object-detection-api faster-rcnn


    【解决方案1】:

    也许你使用 vis_util.visualize_boxes_and_labels_on_image_array(...) 来可视化你的 bbox,尝试先修改函数,这个函数将 bbox 限制为 20...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 2017-05-12
      • 2020-01-11
      • 2018-01-09
      • 2018-05-14
      • 1970-01-01
      • 2019-11-06
      相关资源
      最近更新 更多