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