我正在使用faster_rcnn_inception_v2_coco作为预训练模型在 Windows 10 上训练Tensorflow 对象检测。我在 Windows 10 上,在 NVIDIA GeForce GTX 1080、CUDA 9.0 和 CUDNN 7.0 上使用 tensorflow-gpu 1.6。
我的数据集仅包含一个对象“手枪”和 3000 张图像(2700 个训练集,300 个测试集)。图像的大小从 ~100x200 到 ~800x600。
我训练这个模型进行了 55k 次迭代,其中mAP约为 0.8,TotalLoss似乎收敛到 0.001。但是,但是,看到评估,在同一个检测到的对象上有很多多个边界框(例如this和this),并且有很多误报(房屋被检测为手枪)。例如,在我拍摄的这张照片中(后来应用了模糊滤镜),模型将人和汽车检测为手枪,以及正确检测。
数据集与 tfrecords 和标签映射一起上传到此处。我使用了这个配置文件,其中我唯一更改的是:num_classes为 1、fine_tune_checkpoint、train 和 eval的input_path和label_map_path以及num_examples。 由于我认为多个框是一个非最大抑制问题,我将score_threshold(第 73 行)从 0 更改为 0.01,将iou_threshold(第 74 行)从 1 更改为 0.6。使用标准值,结果比这差得多。
我该怎么做才能获得良好的检测?我应该改变什么?也许我错过了一些关于参数调整的东西......
谢谢