参考资料:
vs2015的安装就不赘述了,Anaconda3、CUDA和cuDNN的安装可参考cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015。
注意,先安装vs2015,再安装后续软件。
打开 Anaconda Prompt 命令窗口(图标已经被玩坏,正常应该像cmd命令窗口图标):
创建虚拟空间。
输入如下命令,创建一个名为 tensorflow_gpu 的虚拟空间,中途有需要选择是否安装某些库,输入 y 然后回车:
conda create -n tensorflow1 pip python=3.7
创建成功之后,可以在 D:\Anaconda3\envs 目录下看到刚才创建的虚拟空间:
activate tensorflow_gpu
安装 tensorflow-gpu:
pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
该命令的后半部分:
-i https://pypi.tuna.tsinghua.edu.cn/simple
表示使用清华开源镜像进行下载,可以提高文件下载速度。如果对自己的网速有信心,也可以不加这部分命令。
输入以下命令,查看 tensorflow-gpu 是否成功安装:
conda list
如果如下图所示,则说明安装成功。
python
进入 python 命令行,然后执行下面的一小段程序,来进一步验证 tensorflow 安装是否成功:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果系统输出以下红框所示内容,说明可以用 python 编写 tensorflow 程序了:
在D盘根目录下新建一个名为 tensorflow_gpu 的文件夹:
接着进入 tensorflow models下载页(点此链接),下载模型。如果 github 网站下载慢,也可以进入我的网盘下载:tensorflow models。
将下载的 models-master.zip 解压到刚创建的 D:\tensorflow_gpu 目录下,并把文件夹的名字改为 models,如下图所示:
回到 Anaconda Prompt 命令窗口,开始配置环境。
首先输入以下命令,退出 python:
exit()
如果窗口已经关闭,需要重新打开,然后激活 tensorflow_gpu 虚拟空间即可。
接着安装如下依赖包:
conda install -c anaconda protobuf
中间出现提问是否安装某些库,输入 y 然后回车。
继续安装依赖库:
pip install pillow lxml Cython jupyter matplotlib pandas opencv-python
以上依赖库都安装完成后,添加系统环境变量 PYTHONPATH。
先从C盘转到D盘,在命令窗口中输入:
D:
然后设置路径:
set PYTHONPATH=D:\tensorflow_gpu\models;D:\tensorflow_gpu\models\research;D:\tensorflow_gpu\models\research\slim
将路径添加到系统环境变量中:
set PATH=%PATH%;PYTHONPATH
这样,环境变量就设置好了。
我们可以通过输入以下语句来确认环境变量是否设置成功。
先输入:
echo %PATH%
再输入:
echo %PYTHONPATH%
出现下图所示结果,则说明环境变量添加成功。
接下来,我们要做的是编译 Protobuf 文件。
由于 proto 文件不能直接在Windows下被调用,所以需要做如下变换:
首先需要将路径变为 D:\tensorflow_gpu\models\research,在 Anaconda Prompt 命令窗口中输入:
cd tensorflow_gpu\models\research
然后输入命令:
protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protos\string_int_label_map.proto .\object_detection\protos\train.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\multiscale_anchor_generator.proto .\object_detection\protos\graph_rewriter.proto
如下图所示:
以上命令执行结束,会产生如下两个 _pb2.py 文件:
Protobuf 文件编译结束,我们可以开始编译安装需要测试的项目。
输入如下两句命令进行项目的编译和安装:
python setup.py build
python setup.py install
项目的编译安装完成后,我们还需要给模型的路径做一下配置。
打开 D:\Anaconda3\Lib\site-packages 文件夹,在该文件夹下新建一个 .txt 文件,内容编辑为:
D:\tensorflow_gpu\models\research
D:\tensorflow_gpu\models\research\slim
如下图所示:
然后将该 .txt 文件重新命名为 model_path.pth,如下图所示:
首先进入 object_detection 目录,在刚才未关闭的 Anaconda Prompt 命令窗口中输入 :
cd object_detection
使用 Jupyter 打开测试文件 object_detection_tutorial.ipynb,命令如下:
jupyter notebook object_detection_tutorial.ipynb
这时,会打开一个网页版的 python 调试工具,每点击下图红框部分的 Run一下,选中的代码将会往下移动一段,同时 In 后面方括号中数字将会变成星号,比如:In [0] → \rightarrow → In [*] ,表示当前代码段正在运行;星号变回数字,则表示当前代码段运行完成。有些代码段需要下载模型,或者运算的时间较长,需要耐心等待。
解决办法是将出错部分的代码注释掉(在代码前添加#号)。
即,将以下两句代码
if tf.__version__ < '1.4.0':
raise ImportError('Please upgrade your tensorflow installation to v1.4.* or later!')
改为
#if tf.__version__ < '1.4.0':
# raise ImportError('Please upgrade your tensorflow installation to v1.4.* or later!')
如下图所示:
之前的错误不再出现,一直点击Run直到代码段结尾,等待星号变成数字即可。第一次所有代码段运行结束,可能还不会显示识别结果,如下图所示,最后一段代码段的星号已经变成数字,但是没有显示结果图:
我们需要重新回到第一段代码的位置,先点击选择代码段,然后再像之前一样,一下一下地点击Run运行后面的代码段,直到代码结尾处: