Tensorflow提供了目标识别的API来支持通过各种深度学习网络实现目标识别的功能。通过访问Github项目https://github.com/tensorflow/models 可以看到Tensorflow目前支持的各种神经网络的模型实现,包括Resnet,Fast R-CNN,SSD等。其中包含的一些子目录内容如下。
official - 官方模型目录,是使用TensorFlow的高级API的示例模型的集合,它们得到良好的维护,支持最新稳定API,经过了充分的测试,并进行过优化,是TensorFlow用户的首选。
research - 研究模型目录,是研究人员在TensorFlow中实施的模型,它们没有得到官方支持,也不能保证在后续的TensorFlow发布版本中工作,带有一些研究性质。考虑到深度学习的快速发展,一些最新的研究成果不会出现在官方模型中,会在这里出现。
community - 文件夹包含一些精选的库和机器学习的模型,用于演示TensorFlow的功能,包括各种博客文章中提供的代码。
orbit - 一些灵活的轻量级的库,用户可以复制并在其基础上进行自己的学习功能的实现。
在official和research等目录中均包含了目标识别(object_dectection)的内容,目前的版本中,在research/object_dection/g3doc子目录下,tf1_detection_zoo.md和tf2_detection_zoo.md文件中,分别列出了各种神经网络用于目标识别的性能指标评估,如下
在research/object_dection/colab_tutorials子目录下,object_detection_tutorial.ipynb则给出了采用Tensorflow实现目标识别的示例。
在Windows下进行示例的实现(假定已经安装python环境),具体的实现方法选择一个目录作为工作目录,以运行后面的示例程序。在目录下执行
git clone https://github.com/tensorflow/models
复制models代码库至本地,之后可以在该目录创建object_detection_tutorial.ipynb来运行示例目标识别程序。程序设置和运行过程可能会遇到如下一些问题
1. pycocotools安装
安装命令 pip install pycocotools,需要提前安装Build Tools for Visual Studio 2017(2015版之后就可以,不需要安装整个Studio),不然会报错,可以通过搜索安装。
2. protobuf安装
从https://github.com/protocolbuffers/protobuf/releases下载指定的protobuf版本
个人选择Windows执行文件版本,解压到指定目录,包含protoc.exe文件,把执行文件的目录加到系统路径中,就可以在任意位置执行protoc命令
3. pip安装
按照示例程序执行
cd models/research #进入models/research目录
pip install .
可能会出现类似 Cannot uninstall 'pywin32'. It is a distutils ... 这样的错误,表示无法卸载pywin32,解决的方法是找到指定的文件并且删除就可以。参考https://www.pianshen.com/article/46991684283/
找到指定的site-packages目录下的对应的包的文件pywn32-xxx.egg-info文件并删除,再执行pip install的指令就可以了。其它的包的问题也是同样的方法。
其中site-packages目录在参考链接中在python36\Lib下面,个人通过anaconda安装的python环境,位置在C:\ProgramData\Anaconda3\Lib\site-packages,可以根据python安装位置来确定。
完成环境设置后,运行示例程序,打开object_detection目录下的object_detection_tutorial.ipynb,运行到最后,显示两个示例图片的目标识别,分别是狗和海边放风筝。实现了图片中各种对象的识别。
并且用了两种模型进行对比,ssd_mobilenet_v1_coco_2017_11_17和mask_rcnn_inception_resnet_v2_atrous_coco_2018_01_28,结果显示mask_rcnn具有更好的识别效果,同时也需要更多计算时间。
参考链接:
https://toutiao.io/posts/m4hrm3/preview
https://github.com/tensorflow/models
https://www.cnblogs.com/mar-q/p/7459845.html
https://blog.csdn.net/nuohanfengyun/article/details/105988496
https://www.pianshen.com/article/46991684283/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)