更快的RCNN每幅图像只能检测20个对象。

问题描述 投票:0回答:1

所以我有Faster RCNN模型的tensorlfow API实现,我用最大objectsclasses(100300)的默认值训练了它,但是 它只能检测到每张图像中的20个对象! 不能少于也不能超过20个! 问题是......没有20的限制......限制是100300。有谁知道为什么会出现这种情况?

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

这里是 训练配置文件:( 我还用更大的最小最大维度限制来训练模型,以确保我没有失去任何细节,但它没有任何改变)

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

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个回答
0
投票

也许你用vis_util.visualize_boxes_and_labels_on_image_array(...)来可视化你的bbox,试着先修改这个函数,这个函数把bbox限制在20....

© www.soinside.com 2019 - 2024. All rights reserved.