本文基于《21个项目玩转深度学习》第五章。
Anaconda3 + tensorflow1.7 + python3.5
安装API
- 安装升级protoc的问题详见之前博客
https://blog.csdn.net/ltszhh/article/details/81588081
- 安装完成后,若测试API时出现问题:
ImportError: no module named object_detection
这是路径导入的问题,在anaconda安装目录‘F:\Anaconda\Lib\site-packages’文件夹下写一个‘tensorflow_model.pth’文件,内容为:
F:\Tensorflow\models\reseachs
F:\Tensorflow\models\research\slim
执行已经训练好的模型
训练新的模型
- 出现非法参数score_thresh的问题,仔细查看了一下出现问题的tf.image.non_max_suppression函数,可能是在Tensorflow1.7这个函数还没有关键字score_threshold。故采取的办法是直接修改删除传入参数中的score_threshold。具体操作是在object_detection\core下的post_processing.py中,第150行修改为:
selected_indices = tf.image.non_max_suppression(
boxlist_and_class_scores.get(),
boxlist_and_class_scores.get_field(fields.BoxListFields.scores),
max_selection_size,
iou_threshold=iou_thresh)
# score_threshold=score_thresh)
利用新模型进行物体检测
在训练模型的过程中想要看看训练效果怎么样,可以直接利用训练生成的文件生成模型文件.pb,进行预测。修改好参数文件之后,本人训练1000轮后的检测效果为:
考虑到大佬的训练轮数以万计,1000轮能实现这个效果已经挺不错的了(1000轮用cpu跑了一夜。。。)