目标检测在图形识别的基础上有了更进一步的应用,但是代码也更加繁琐,TensorFlow专门为此开设了一个object detection API,接下来看看怎么使用它。
一、object detection API 配置
首先,能到目标检测了应该至少已经安装好了TensorFlow及其相关依赖。这里主要讲在TensorFlow可以正常使用的基础上目标检测API的配置。
(1)下载TensorFlow object detection API
去TensorFlow github上下载到本地目录(避免中文),解压。
(2)protobuf安装与配置
首先看看电脑是否安装了protobuf,可在终端试下:
? ~ protoc --version libprotoc 3.6.1 # 有输出说明已经安装
如果没有安装,先去protobuf github下载安装包,我选择的版本是protobuf-all-3.6.1.tar.gz。Linux安装方法如下:
a、解压,编译,安装
#tar -xf protobuf-all-3.6.1.tar.gz #cd protobuf-3.6.1 #./configure #make #make check #make install
b、安装protobuf的python 模块(不需要python调用的可以不用)
#cd ./python #python setup.py build #python setup.py test #python setup.py install
我原先在python模块了安装过了,用 pip install protobuf,但两个版本要一致。
c、验证是否安装成功
#protoc --version #python >>>import google.protobuf
没有报错,说明安装成功
下面进行protobuf的配置,终端进入models\research\目录,输入:
? ~ $ cd tensorflow/models/research ? research $ protoc object_detection/protos/*.proto --python_out=.
会将protos下所有的proto文件转换为一个对应的Python文件。
(3)添加环境变量PYTHONPATH
tensorflow/models/research/ 和 slim 目录 需要添加到PYTHONPATH环境变量中. 从终端中,切换到tensorflow/models/research/目录,执行:
# From tensorflow/models/research/ export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
注意: 这条命令在新打开的终端中需要重新执行一次才会在新终端中生效,如果不想那么麻烦,就在 ~/.bashrc或者~/.zshrc (具体看用的是bash还是zsh)文件上把上面的语句添加到末尾,注意把pwd改成绝对路径。
(4)测试
得到OK,说明安装成功
python object_detection/builders/model_builder_test.py
(5)接下来,跑一个demo,你可以在这个路径下运行jupyter notebook,然后打开/object_detection/object_detection_tutorial.ipynb
注意,下面这个demo里第4步是从网络中下载预训练模型文件,若执行的时候速度很慢,可以单独去下载这个模型文件,然后解压到相应目录,确保存在object_detection/ssd_mobilenet_v1_coco_2017_11_17/frozen_inference_graph.pb 文件,然后屏蔽到代码中下载指令,如图所示,把Download Model代码块设置MarkDown或直接注释掉也可以。
接下就一步步执行里面的代码,看看最后的结果是否能检测出图片中的object。
TensorFlow object detection API应用一
原文:https://www.cnblogs.com/zongfa/p/9662832.html