最近在研究我的项目,正好就是参考的 Google's Tensorflow Object Detection API和OpenCV来做的。
我先研究了 Google's Tensorflow Object Detection API,这个是官方的文档里面有个demo进行图片中的目标识别。
可以识别一张图像里的一个或多个对象。
(本来想放弃的,后来想我还是继续弄吧。)
参考网站:
【1】Google's Tensorflow Object Detection API的官方文档
https://github.com/tensorflow/models/tree/master/research/object_detection
【2】其他安装教程:
https://blog.csdn.net/qq_34767784/article/details/90258955
https://www.cnblogs.com/bitsign/p/10633133.html
https://blog.csdn.net/qq_28019591/article/details/82023949
https://blog.csdn.net/michelexie/article/details/80429495
https://blog.csdn.net/qq_37644877/article/details/92772820
https://www.jianshu.com/p/9d22f7a1c1bc
一.安装库
python解释器安装库
具体的安装可以参考以上的网站,我在这里说明一下我遇到的问题,以及我是怎么解决的。
1.安装库
我是直接在pip 安装的。在安装tensorflow-gpu时出现了问题,索性我就用了cpu版(tensorflow).
pip安装以下库:
tk
pillow
tensorflow
lxml
Matplotlib
Cython
contextlib2
Jupyter
安装语句:
pip install tk(库名) -i https://pypi.tuna.tsinghua.edu.cn/simple
因为安装慢,所以换清华源。
二.其他文件安装
下载文件
(1)python 解释器 (我的版本是python 3.6.5)
下载官网: https://www.python.org/
(2) 下载Tensorflw源码,去GitHub下载(下载后放到任意一个盘,建立文件夹名为Tensorflow),并解压,model-master改名为models。
下载官网:https://github.com/tensorflow/models
(3)下载protoc文件(我的是proto-3.7.1-win64版本),按照自己电脑配置,解压,然后把文件夹放到和object_detecion文件夹(Tensorflow/models/research)一个目录下。
下载官网:https://github.com/protocolbuffers/protobuf/releases
下载后复制到与models同名的文件夹下,解压,生成:bin、include。将bin文件夹下的protoc.exe复制到C:\Windows\System32文件夹下。cmd打开命令行界面,输入命令protoc,出现如下界面说明安装成功:
(4)编译proto文件
在models/research下运行Windows PowerShell(注意,这里必须是PowerShell,运行cmd会报错),输入如下命令:
选中路径,然后按住shift键,在空白处右击选择-在此处打开powershell窗口。
./protoc-3.7.1-win64/bin/protoc.exe object_detection/protos/*.proto --python_out=.
好像是这个命令
或者下面命令:
protoc object_detection/protos/*.proto --python_out=.
具体我也忘记了。
第二次编译protoc:
Get-ChildItem object_detection/protos/*.proto | Resolve-Path -Relative | %{ protoc $_ --python_out=. }
正确。可能就是这个了吧
运行完成后,可以检查object_detection/protos/文件夹,如果每个proto文件都成了对应的以py为后缀的python源码,就说明编译成功了。
(5)添加环境变量PYTHONPATH
在我的电脑-右击属性-高级系统设置-高级-环境变量-xx用户的环境变量下新建PYTHONPATH,并把变量值加上:
E:\Tensorflow\models\research
E:\Tensorflow\models\research\slim
(6)运行models/research下的setup.py
在models/research的powershell下运行以下语句:
python setup.py build
python setup.py install
(7)安装完成测试
在models/research下运行如下命令:
python object_detection/builders/model_builder_test.py
出现以下如图所示,表明安装成功:
注:不过第一次我直接运行时除了错误,提示ModuleNotFoundError: No module named 'nets'
我上网查找资料解决了。
解决方法:
1.删除models/research/slim/的BUILD文件
2.运行命令:在*/research/slim下运行命令
python setup.py build
python setup.py install
3.再次运行测试命令
在research下运行:python object_detection/builders/model_builder_test.py
出现OK说明成功了。
三.demo测试
命令行运行:\models-master\research\object_detection> jupyter notebook,则在浏览器启动了jupyter,点击选中object_detection_tutorial.ipynb文件
运行也可以是Cell-Run All.
识别的图片在object_dection/test_images文件夹下。
但是运行时特别慢,就运行成功了一两次,希望后来能够改进,想想办法。这是利用已经训练好的模型进行的测试,后期可以学着自己训练模型,加油。