我正在尝试在我自己的数据集上训练ssd MobileNet,但我的训练结果被打破了 . 让我解释一下我做了什么 .

基本上我按照本教程只检测船只:

https://pythonprogramming.net/introduction-use-tensorflow-object-detection-api-tutorial/

我合并了两个数据集 . 第一个是我用https://www.marinetraffic.com/en/photos/of/ships的5000张图片制作的 . 或多或少20张图片用于独特的船只 . 我将标签外包给crowdflower.com .

其次,我过滤了所有船舶图像和标签的COCO数据集 .

两个标签包我把这种格式写成.csv文件:[文件名,宽度,高度,类,xmin,ymin,xmax,ymax]

我合并了数据集并将它们分成火车和测试 . 总共我有大约10000张图像和16000个标记的船 .

从火车和测试csv文件我生成tfrecord文件就像使用此文件的教程:https://github.com/datitran/raccoon_dataset/blob/master/generate_tfrecord.py

我的.pbtxt标签文件包含:

item {
    id: 1
    name: 'boat'
    }

然后我用这个配置文件:https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_mobilenet_v1_pets.config

将类数更改为1.以及指向相应位置的路径 .

我尝试过学习率:0.004,0.001,0.0001,0.00001,0,000001 .

我正在使用gtx 1060 nvidia 6gb GPU训练Ubuntu 17.10 .

Tensorboard结果显示振荡结果,例如总损失,请参见图像:

Total loss

Tensorboard graphs

当我导出推理图并在视频上运行它似乎绘制随机框 . 我通过更改配置文件中的参数并检查数据是否采用正确的格式和位置来寻找解决方案 . 我是深度学习和机器学习的新手,所以我很困难 . 如果有人可以帮我找到错误或者有任何方法可以尝试,请告诉我,我会非常感激,因为这样可以节省我的实习项目;) . 如果您需要更多信息,请告诉我 . 提前致谢!