https://blog.csdn.net/dy_guox/article/details/79111949
后续博客地址(附带视频教程)
--------------------------------------------------------------------------------------------------
最近对深度学习比较感兴趣,看了网上很多资料,尝试了一下Tensorflow object detection API,想要在自己的数据集上调用API完成识别,积累了不少经验,记录下来,以后给需要的人。
1.开发环境搭建
在自己笔记本上完成。
操作系统:windows 10 64位
内存:8G
GPU:Nvidia MX 150
Tensorflow: 1.4
(1) 安装python
建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配好)
(2)安装Tensorflow
Tensorflow有CPU版本与GPU版本,首先安装CPU版本。采用pip原生安装。“开始-Anaconda3-Anaconda Prompt”调出命令行。
pip install --upgrade tensorflow
然后安装GPU版本。此过程中有报错,先运行
conda install pip
更新pip程序即可。
pip install --upgrade tensorflow-gpu
当然也可以在Anaconda中新建一个虚拟环境进行安装,详见 https://www.tensorflow.org/install/install_windows
对于GPU版本,需要安装如下软件:
1)CUDA® Toolkit 8.0, 需要注意最新版9.1不支持tensorflow 1.4版本;
2) cuDNN v6.0,7.0不支持tensorflow 1.4版本,现在cuDNN需要先注册成为NVIDIA开发者,下载后将cuDNN中对应文件夹下的.dll文件分别复制到CUDA安装目录对应文件夹下;
3) 对应的显卡驱动,如果驱动较新,在安装CUDA的时候会有提示可能不兼容,可以无视。
要测试Tensorflow 是否安装成功,打开命令行,首先激活python
开始-Anaconda3-Anaconda Prompt,输入'python',然后逐行输入下面的文字
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
当输出下面这行字,说明安装成功。
Hello, TensorFlow!
要测试是否启用了GPU加速,可以用以下两行代码测试:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
会有如下输出,
Sample Output
[name: "/cpu:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 4402277519343584096,
name: "/gpu:0" device_type: "GPU" memory_limit: 6772842168 locality { bus_id: 1 } incarnation: 7471795903849088328 physical_device_desc: "device: 0, name: GeForce GTX 1070, pci bus id: 0000:05:00.0" ]
如果有GPU的信息,说明GPU加速已经启用。
(3)下载Tensorflow object detection API
https://github.com/tensorflow/models
从github上下载项目(右上角“Clone or download”-"DownloadZIP"),下载到本地目录(避免中文),解压。
(4)Protobuf 安装与配置
在 https://github.com/google/protobuf/releases 网站中选择windows 版本(最下面),解压后将bin文件夹中的【protoc.exe】放到C:\Windows
在models\research\目录下打开命令行窗口,输入:
# From tensorflow/models/
protoc object_detection/protos/*.proto --python_out=.
在这一步有时候会出错,可以尝试把/*.proto 这部分改成文件夹下具体的文件名,一个一个试,每运行一个,文件夹下应该
出现对应的.py结尾的文件。不报错即可。
(5)PYTHONPATH 环境变量设置
在 ‘此电脑’-‘属性’- ‘高级系统设置’ -‘环境变量’-‘系统变量’ 中新建名为‘PYTHONPATH’的变量,将
models/research/ 及 models/research/slim 两个文件夹的完整目录添加,分号隔开,效果如下图:
接下来可以测试API,在 models/research/ 文件夹下运行命令行:
python object_detection/builders/model_builder_test.py
不报错说明运行成功。
2.测试自带案例
“开始-Anaconda3-Anaconda Prompt”调出命令行,改变工作目录至 models\research\object_detection
然后输入jupyter notebook,就会调用浏览器(Chrome)打开当前文件夹,点开 object_detection_tutorial.ipynb,
在新标签页中打开 Object Detection Demo,点击上方的 “Cell”-"Run All",
就可以直接看到结果,最后输出的是两张图片的识别结果,分别是狗,以及沙滩。第一次运行由于需要下载训练好的模型,耗时较长。第二次之后可以将 .ipynb文件中 Download Model 即 in[5]部分的代码注释掉,以加快运行速度。
如果在notebook中运行有问题,可以将.ipynb中in[]的代码复制到.py中,然后在 开始-Anaconda3-spyder 中运行。
至此Tensorflow object detection API 的环境搭建与测试工作完成。
下一步我们可以在此基础上对代码进行适当的修改,可以用已有的模型来检测自己的图片,甚至视频,并输出结果。
在进一步,可以用自己标注的数据集进行训练与评估。这些内容将在后续的博客中呈现。
转自:https://blog.csdn.net/dy_guox/article/details/79081499