7.7.4 TensorFlow目标检测库
7.7.4 tensorflow目标检测库
tensorflow中提供了目标检测算法的实现以及预训练模型,依赖的软件环境为:
? protobuf 3.0.0
? python-tk
? pillow 1.0
? lxml
? tf slim(包含在tensorflow/models/research/中)
? jupyter notebook
? matplotlib
? tensorflow (>=1.9.0)
? cython
? contextlib2
? cocoapi
安装过程为,首先同步tensorflow的模型库。
git clone https://github.com/tensorflow/models.git
推荐安装路径为:
adversarial_examples/code/models/models
然后安装protobuf工具,如果是linux环境,则执行以下命令。
# from tensorflow/models/research/
wget -o protobuf.zip
https://github.com/google/protobuf/releases/download/v3.0.0/protoc-3.0.0-
linux-x86_64.zip
unzip protobuf.zip
# from tensorflow/models/research/
./bin/protoc object_detection/protos/*.proto --python_out=.
如果是mac环境,则执行以下命令或者直接执行brew install protobuf。
curl -ol
https://github.com/google/protobuf/releases/download/v3.3.0/$protoc_zip
sudo unzip -o $protoc_zip -d /usr/local/bin/protoc
rm -f $protoc_zip
# from tensorflow/models/research/
protoc object_detection/protos/*.proto --python_out=.
把当前库添加到系统环境变量中。
# from tensorflow/models/research/
export pythonpath=$pythonpath:`pwd`:`pwd`/slim
执行测试工具,验证安装是否成功。
# from tensorflow/models/research/
python object_detection/builders/model_builder_test.py
run 22 tests in 0.145s
ok
tensorflow提供了大量的目标检测模型的实现以及预训练参数。
https://github.com/tensorflow/models/blob/master/research/object_detection/
g3doc/detection_model_zoo.md
tensorflow提供的目标检测模型如图7-33所示。
图7-33 tensorflow提供的目标检测模型
tensorflow提供的目标检测模型的预训练参数主要基于mscoco数据集(也被简称coco数据集)进行训练。mscoco数据集是微软团队提供的一个可以用来完成机器视觉任务的数据集,其官方说明网址为http://mscoco.org/。mscoco数据集经典图片示例如图7-34所示。
下面以faster rcnn为例介绍tensorflow的目标检测模型的预训练参数,下载地址为:http://download.tensorflow.org/models/object_detection/faster_rcnn_resnet101_coco_2018_01_28.tar.gz。
解压到adversarial_examples/code/models:
# adversarial_examples/code/models/faster_rcnn_resnet101_coco_2018_01_28
tar -zxvf faster_rcnn_resnet101_coco_2018_01_28.tar.gz
图7-34 mscoco数据集经典图片示例
查看目录下文件,其中frozen_inference_graph.pb为模型文件,包含模型的结构和参数信息:
checkpoint
model.ckpt.meta
frozen_inference_graph.pb
pipeline.config
model.ckpt.data-00000-of-00001
saved_model
model.ckpt.index
另外还有一个非常重要的文件,即mscoco数据集标签和物体名称的对应关系。
models/research/object_detection/data/mscoco_label_map.pbtxt
也可以直接下载并使用。下载网址为:https://github.com/tensorflow/models/blob/master/research/object_detection/data/mscoco_label_map.pbtxt。
另外,tensorflow的目标检测库官方推荐使用1.9及以上版本的tensorflow来运行,出于性能考虑也建议使用gpu版本。使用tensorflow gpu高版本时需要升级cuda库,下面我们介绍如何升级tensorflow需要使用的cuda库。
首先登录nvidia官网,网址为:https://developer.nvidia.com/cuda-downloads。
根据你的操作系统选择对应的cuda版本,如图7-35所示,我们的gpu服务器是linux x86_64的ubuntu 16,选择通过网络安装。
然后如图7-36所示,执行提示的相关升级命令安装cuda 10即可。
sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
图7-35 升级cuda时选择平台
图7-36 升级cuda 10时执行相关升级命令
如果想安装cuda 9可以使用以下命令。
sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt-key adv --fetch-keys
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/
x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-9-0
查看当前安装的cuda的命令如下:
cat /usr/local/cuda/version.txt
如果安装的是cuda 9,显示的内容如下:
cuda version 9.0.176
升级cudnn到7,升级页面如下:https://developer.nvidia.com/rdp/cudnn-download。
下载对应的版本安装。
sudo dpkg -i libcudnn7_7.4.1.5-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.4.1.5-1+cuda10.0_amd64.deb
查看cudnn版本,已经升级到7。
cat /usr/include/cudnn.h | grep cudnn_major -a 2
#define cudnn_major 7
#define cudnn_minor 4
#define cudnn_patchlevel 1
推荐使用cuda 9和cudnn 7,安装最新的tensorflow-gpu版本1.11。
pip install tensorflow-gpu==1.11
tensorflow中提供了目标检测算法的实现以及预训练模型,依赖的软件环境为:
? protobuf 3.0.0
? python-tk
? pillow 1.0
? lxml
? tf slim(包含在tensorflow/models/research/中)
? jupyter notebook
? matplotlib
? tensorflow (>=1.9.0)
? cython
? contextlib2
? cocoapi
安装过程为,首先同步tensorflow的模型库。
git clone https://github.com/tensorflow/models.git
推荐安装路径为:
adversarial_examples/code/models/models
然后安装protobuf工具,如果是linux环境,则执行以下命令。
# from tensorflow/models/research/
wget -o protobuf.zip
https://github.com/google/protobuf/releases/download/v3.0.0/protoc-3.0.0-
linux-x86_64.zip
unzip protobuf.zip
# from tensorflow/models/research/
./bin/protoc object_detection/protos/*.proto --python_out=.
如果是mac环境,则执行以下命令或者直接执行brew install protobuf。
curl -ol
https://github.com/google/protobuf/releases/download/v3.3.0/$protoc_zip
sudo unzip -o $protoc_zip -d /usr/local/bin/protoc
rm -f $protoc_zip
# from tensorflow/models/research/
protoc object_detection/protos/*.proto --python_out=.
把当前库添加到系统环境变量中。
# from tensorflow/models/research/
export pythonpath=$pythonpath:`pwd`:`pwd`/slim
执行测试工具,验证安装是否成功。
# from tensorflow/models/research/
python object_detection/builders/model_builder_test.py
run 22 tests in 0.145s
ok
tensorflow提供了大量的目标检测模型的实现以及预训练参数。
https://github.com/tensorflow/models/blob/master/research/object_detection/
g3doc/detection_model_zoo.md
tensorflow提供的目标检测模型如图7-33所示。
图7-33 tensorflow提供的目标检测模型
tensorflow提供的目标检测模型的预训练参数主要基于mscoco数据集(也被简称coco数据集)进行训练。mscoco数据集是微软团队提供的一个可以用来完成机器视觉任务的数据集,其官方说明网址为http://mscoco.org/。mscoco数据集经典图片示例如图7-34所示。
下面以faster rcnn为例介绍tensorflow的目标检测模型的预训练参数,下载地址为:http://download.tensorflow.org/models/object_detection/faster_rcnn_resnet101_coco_2018_01_28.tar.gz。
解压到adversarial_examples/code/models:
# adversarial_examples/code/models/faster_rcnn_resnet101_coco_2018_01_28
tar -zxvf faster_rcnn_resnet101_coco_2018_01_28.tar.gz
图7-34 mscoco数据集经典图片示例
查看目录下文件,其中frozen_inference_graph.pb为模型文件,包含模型的结构和参数信息:
checkpoint
model.ckpt.meta
frozen_inference_graph.pb
pipeline.config
model.ckpt.data-00000-of-00001
saved_model
model.ckpt.index
另外还有一个非常重要的文件,即mscoco数据集标签和物体名称的对应关系。
models/research/object_detection/data/mscoco_label_map.pbtxt
也可以直接下载并使用。下载网址为:https://github.com/tensorflow/models/blob/master/research/object_detection/data/mscoco_label_map.pbtxt。
另外,tensorflow的目标检测库官方推荐使用1.9及以上版本的tensorflow来运行,出于性能考虑也建议使用gpu版本。使用tensorflow gpu高版本时需要升级cuda库,下面我们介绍如何升级tensorflow需要使用的cuda库。
首先登录nvidia官网,网址为:https://developer.nvidia.com/cuda-downloads。
根据你的操作系统选择对应的cuda版本,如图7-35所示,我们的gpu服务器是linux x86_64的ubuntu 16,选择通过网络安装。
然后如图7-36所示,执行提示的相关升级命令安装cuda 10即可。
sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
图7-35 升级cuda时选择平台
图7-36 升级cuda 10时执行相关升级命令
如果想安装cuda 9可以使用以下命令。
sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt-key adv --fetch-keys
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/
x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-9-0
查看当前安装的cuda的命令如下:
cat /usr/local/cuda/version.txt
如果安装的是cuda 9,显示的内容如下:
cuda version 9.0.176
升级cudnn到7,升级页面如下:https://developer.nvidia.com/rdp/cudnn-download。
下载对应的版本安装。
sudo dpkg -i libcudnn7_7.4.1.5-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.4.1.5-1+cuda10.0_amd64.deb
查看cudnn版本,已经升级到7。
cat /usr/include/cudnn.h | grep cudnn_major -a 2
#define cudnn_major 7
#define cudnn_minor 4
#define cudnn_patchlevel 1
推荐使用cuda 9和cudnn 7,安装最新的tensorflow-gpu版本1.11。
pip install tensorflow-gpu==1.11