MobileNet上的Tensorflow对象检测,训练结果振荡

时间:2018-01-12 16:59:08

标签: python tensorflow deep-learning object-detection

我正在尝试在我自己的数据集上训练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

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

0 个答案:

没有答案