TF对象检测API - 并非所有类都被检测到&表现得很奇怪

时间:2017-11-06 02:55:29

标签: tensorflow object-detection

设定:

  1. ubuntu 16.04 LTS,4 vCPU + 30gb ram
  2. nvidia K80 GPU w / 12gb内存
  3. CUDNN 8.0 x64
  4. TF version 1.3
  5. 目的:使用TF物体检测API检测面部,人,手枪,步枪,automatic_rifle

      

    采取的步骤:

    1)准备图像和边框 - face:使用WIDER face数据集 - person:使用COCO数据集 - 枪:使用Image-Net

    没有。枪的数据集大小远远不及面部和背景。那个人,所以我确保通过限制脸部/人物图像的数量来确保每个班级的图像#相似。

    90%开始训练,10%开始测试

    每个班级的图像数量看起来像这样

    火车 - see csv

    • 步枪401
    • 左轮手枪389
    • assault_rifle 532
    • face 407
    • person 389

    测试 - see csv

    • 步枪45
    • 左轮手枪44
    • assault_rifle 60
    • face 126
    • person 44

    2)生成TF记录see code

    # see pastebin
    
    • 使用的型号:faster_rcnn_resnet101_coco
    • 配置:非常类似于宠物自定义检测器配置,see code
    • pbtxt文件:see code

    ==>次要注意:有" nb_epoch"在最后一行。我注意到这个值并不存在于TF对象检测API(即文件夹)中附带的其他模型配置文件中

    3)训练 超过20万步。

      

    问题

    我训练过的5个班级并不总是出现,即使是训练有素的图像。这似乎是人或者脸部正在检测,很少两者都是。

    作为参考框架,这是TF对象检测API附带的faster_rcnn_inception_resnet_v2_atrous_coco模型的结果。我知道它不是苹果与苹果的比较,但至少你可以看到人物检测:

    See pictures

    以下是自定义数据集训练模型的用法:

    See pictures

    1)我出错的任何想法?

    这个SO用户有同样的问题(TensorFlow Object Detection API Weird Behaviour),但声称他通过裁剪/调整输入图像来解决它。

    是否需要调整培训数据的大小?我不记得在custom pet detector tutorial中看到任何调整大小但我确实要求b / c我在配置文件中看到min_和max_dimension

1 个答案:

答案 0 :(得分:0)

在配置文件中设置num_examples:8000为8000,将该数字设置为要添加的测试图像数量。例如您要在测试文件夹中拍摄200张图像,然后输入“ num_examples:200: