致谢声明
本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型(2)——训练并使用自己的模型》的基础上优化并总结,此博客链接:https://blog.csdn.net/dy_guox/article/details/79111949,感谢此博客作者。
0.前言
本文作者的环境:python3.6、Windows10、tensorflow_gpu1.10
跟随本篇文章实践之前,需要先阅读前置文章。
《目标检测第2步-数据准备》,链接:https://www.jianshu.com/p/3d9436b4cb66
《目标检测第3步-模型训练》,链接:https://www.jianshu.com/p/0e5f9df4686a
1.下载并解压文件
在已经阅读并且实践过前3篇文章的情况下,读者会有一些文件夹。
因为每个读者的实际操作不同,则文件夹中的内容不同。
本文作者为了保持本篇文章的独立性,制作了可以独立运行的文件夹目标检测
。
本文作者对文件夹目标检测
做了压缩,形成的压缩文件目标检测.zip
已经上传百度网盘。
链接: https://pan.baidu.com/s/1aL2WOZ_e9380caeJxbcYrQ 提取码: fea6
压缩文件目标检测.zip
只有60.8M,下载好后放在桌面
,选择提取到当前位置
。
现在桌面有1个文件夹目标检测
,文件夹目标检测
中有3个文件夹nets
、object_detection
、training
。
文件夹training
中含有训练了200000次的模型。
如下图所示:
要求:读者需要用本文中的文件夹
object_detection
替换自己的文件夹object_detection
。原因:在文章《目标检测第3步-模型训练》中的文件夹
object_detection
与本文中的文件夹object_detection
有区别,但是因为时间较久,没有找到修改的代码文件。之前的文件夹object_detection
可能无法完成导出模型的操作
2.导出训练好的模型
在桌面
的文件夹目标检测
中,打开cmd
,如下图所示:
即在
资源管理器
的路径中输入cmd
,按Enter键运行。
2.1 添加环境变量
使用cmd添加永久环境变量,适用于熟悉cmd命令的读者。
cmd中运行命令:setx -m PYTHONPATH "C:\Users\Administrator\Desktop\目标检测"
命令成功运行后,如下图所示:
要保持下图中的2个红色方框内容一致
,路径加双引号可以增加命令的强壮性。
运行成功会有提示
成功: 指定的值已得到保存
,如下图所示:image.png
2.2 导出模型命令
在桌面
的文件夹目标检测
中,打开cmd
。
在cmd
中运行命令:python object_detection/export_inference_graph.py --input_type=image_tensor --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --trained_checkpoint_prefix=training/model.ckpt-200000 --output_directory=fish_inference_graph
运行成功的结果如下图所示:
在桌面的文件夹
目标检测
中产生了文件夹fish_inference_graph
,如下图所示:image.png
3. 下载测试数据
下载链接: https://pan.baidu.com/s/1NksESNqBX--YqMJ4zptGdw 提取码: 6p3u
压缩文件n01440764.tar
下载完成后,复制到桌面的文件夹目标检测
中,解压时选择提取到"n01440764"
。
进行到此步,桌面的文件夹目标检测
如下图所示:
4.下载并运行测试代码
链接: https://pan.baidu.com/s/1Ym1cYFCnsj1JAYFACHFj_Q 提取码: i3wn
代码文件fish_detection.ipynb
下载完成后,复制到桌面的文件夹目标检测
中。
在桌面的文件夹目标检测
中打开cmd
,如下图所示:
在cmd中输入并运行命令:
jupyter notebook
,如下图所示:image.png
浏览器会自动打开jupyter页面,打开代码文件
fish_detection.ipynb
,点击下图红色箭头所示标注处:image.png
在代码文件中,依次运行单元格中的代码即可。
文件夹
n01440764
中共有1300张图片,测试图片是随机选的10张图片。本文作者展示测试效果较好的2张图片。
image.png
image.png
5.总结
1.这篇文章值得读者花时间去实践,因为本文作者花了很久时间才完成本篇文章的写作。
2.时间主要花费在用最少的代码文件完成模型导出和模型测试的效果。
3.目标检测给物体画方框,方框线条的粗细和字体大小是一个需要花时间去学习的点。
网友评论