tensorflow对象检测api用于对象检测,但结果并不好

时间:2017-10-20 03:18:55

标签: tensorflow object-detection

我对RFCN_resnet101使用了tensorflow对象检测api用于小对象,但有时检测结果不好,它会检测到有偏移的对象,有时它会错误地检测到一个对象。有谁知道如何处理它?<​​/ p>

2 个答案:

答案 0 :(得分:0)

调试对象检测可能很棘手。我建议检查输入数据(是否有意义):

  1. 与图像重叠时,对象边界框是否正确显示?
  2. 准备训练数据时是否使用像素框坐标(相对于归一化)?
  3. 您是否使用的框太小或超出图像边界而导致张量NaN错误?
  4. 您的图像太大而导致CUDA内存不足错误吗?

一旦您对输入数据感到满意,并能够成功生成TF记录文件以进行培训和评估。我建议您提出以下问题:

  1. 您是否正在对网络进行足够数量的全局迭代(例如200K)训练,最好是批量大小足够大的多个GPU?
  2. 对一些图像进行评估时,您是否得到了合理的检测结果,例如通过指定以下配置文件:

    eval_config: { num_examples: 1000 num_visualizations: 16 min_score_threshold: 0.15 # Note: The below line limits the evaluation process to 10 evaluations. # Remove the below line to evaluate indefinitely. max_evals: 1 }

    在运行num_visualizations脚本时,images会在张量板上创建一个eval.py选项卡,您将能够可视化检测并更改IoU min_score_threshold。 / p>

  3. 您是否正在微调预训练的模型,例如检查以确保您有 fine_tune_checkpoint: "/path/to/model.ckpt" from_detection_checkpoint: true

最后,TensorFlow对象检测API的美丽之处在于您可以尝试不同的对象检测模型:更快的R-CNN,YOLO,SSD,它们具有不同的速度精度权衡,而无需太多额外的工作。您可能会发现其他对象检测器更适合您的应用程序。

答案 1 :(得分:0)

为什么不对小对象使用fast_rcnn_inception_resnet_v2_atrous_coco ...这是我的选择选项