一、TensorFlow Object Detection API 环境搭建
TensorFlow Object Detection API 默认提供了 5 个预训练模型,官们都是使用 coco 数据集训练完成的,结构分别为 SSD+Mobi leNet 、 SSD+Inception 、R-FCN+ ResNet101 、 FasterRCNN+ResNet101、 Faster RCNN+Inception_ResNet 。
在GitHub上,Object Detection API是存放在tensorflow /models 项目(地址: https: //github.com/tensorflow/models )下的。可以通过 git 来下载 tensorflow/models: git clone https://github.com/tensorflow/models.git 。也可以直接在github下载zip包,本文直接下载的zip包(大概415M,虽然我们只会用到里面很少一部分内容)
下载后,解压到~/tensorflow目录下,为了与github目录结构一致,我们将models-master目录重命名为models
得到如下目录结构~/tensorflow/models/research/object_detection
Tensorflow Object Detection API 依赖如下组件包:
Tensorflow (最新版本,安装过程参考本文姊妹篇《Ubuntu 16.04下搭建TensorFlow运行环境(用Anaconda)》)
Protobuf 2.6
Python-tk
Pillow 1.0
lxml
tf Slim (已在 "tensorflow/models/research/" 目录下)
Jupyter notebook
Matplotlib
cocoapi
若你是通过《Ubuntu 16.04下搭建TensorFlow运行环境(用Anaconda)》介绍的方式,用anaconda安装的tensorflow,那么这上面的所有依赖项(除了cocoapi)都已经自动安装好,你可以像安装tensorflow一样在anaconda-navigator的搜索框里搜索下上面的组件,检验是否均已安装。
Protobuf 编译(非常重要)
Tensorflow Object Detection API 用 Protobufs 来配置模型和训练参数. 在用这个框架之前,必须先编译Protobuf 库,切换到这个目录下: tensorflow/models/research/, 另外,确保当前bash是在anaconda的root环境中,具体参考《Ubuntu 16.04下搭建TensorFlow运行环境(用Anaconda)》
# 在这个目录下: tensorflow/models/research/
source activate root
cd ~/tensorflow/models/research/
protoc object_detection/protos/*.proto --python_out=.
★如果报错: object_detection/protos/model.proto:12:5: "Ssd" is not defined.
则说明protoc的版本不对,
解决办法:
1.下载 https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-linux-x86_64.zip
2.解压
3.将bin文件夹下的执行文件protoc拿到models/research目录下。
4.执行:
cd ~/tensorflow/models/research/
protoc object_detection/protos/*.proto --python_out=.
5.运行完成后,可以检查 object_detection/protos/文件夹,如果每个 proto文件都生成了对应的以 PY 为后缀的 python 源代码,就说明编译成功了。
添加环境变量 PYTHONPATH(非常重要)
tensorflow/models/research/ 和 slim 目录 需要添加到PYTHONPATH环境变量中. 从终端中,切换到tensorflow/models/research/目录,执行:
# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
注意: 这条命令在新打开的终端中需要重新执行一次才会在新终端中生效,如果不想那么麻烦,就用下面的命令编辑 ~/.bashrc 文件,把上面的语句添加到末尾.
gedit ~/.bashrc
测试:
执行一下语句,得到OK则说明安装成功:
python object_detection/builders/model_builder_test.py