【问题标题】:tensorflow object detection api for object detection, but the result is not goodtensorflow object detection api 用于物体检测,但是效果不好
【发布时间】:2017-10-20 03:18:54
【问题描述】:

我使用了带有RFCN_resnet101的tensorflow object detection api,用于小物体,但有时检测效果不好,会检测到有offset的物体,有时会误检测到物体。有谁知道怎么处理?

【问题讨论】:

    标签: tensorflow object-detection


    【解决方案1】:

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

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

    一旦您对输入数据感到满意并能够成功生成用于训练和评估的 TF 记录文件。我建议问以下问题:

    1. 您是否在最好是具有足够大批量大小的多个 GPU 上训练网络以进行足够数量的全局迭代(例如 200K)?
    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 }

      当您运行 eval.py 脚本时,num_visualizations 将在 tensorboard 中创建一个 images 选项卡,您将能够可视化检测并改变 IoU min_score_threshold

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

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

    【讨论】:

    • 那是什么???您在准备训练数据时是否使用像素框坐标(vs 归一化)?
    • 当我们在创建 tfrecords 文件时将 [xmin, xmax, ymin, ymax] 除以图像的宽度和高度时,它被称为标准化值,因为这样做会将所有值从 0 标准化为 1。 其他那么这个,值是像素框坐标。
    【解决方案2】:

    为什么不使用 faster_rcnn_inception_resnet_v2_atrous_coco ... 对于小物体,这是我的 goto 选项

    【讨论】:

    • 另外你是如何训练模型的?使用 train.py 或 model_main.py ?
    猜你喜欢
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2018-01-28
    • 2018-07-28
    相关资源
    最近更新 更多