前言

看过许多博主经过 Object Detection 实现了一些皮卡丘捕捉,二维码检测等许多特定项的目标检测。而我跟着他们的事例来运转的时候,不是 Tensorflow 版别抵触,便是缺少什么包,还有是运转官方 object_detection_tutorial 不展示图片等等问题。

在看过一个国外博主比如,我也经过 Tensorflow-GPU1.10.0 运转了官方比如,既然要运用 GPU 则需求把 CUDA 先装备好,上一篇文章有特别详细介绍到。而这儿就捋一下在运转进程遇到的种种问题。

环境

  1. windows10 的 64 位电脑

2.显卡 GeForce GTX 750 Ti

  1. Python 3.6.13

  2. Tensorflow-GPU 1.10.0

  3. Cuda9.0.176

  4. Cudnn7.0.5

环境建立

1. 装置 Python 3.6.13 环境

由于之前我有其他项目用了高版别的 Py,这儿我就用了 Anconda3 的 conda 创立一个虚拟环境,这儿的 conda 的 bin 目录需求加到环境变量中。

1.1. 查看环境列表

输入 conda env list,就可以列出以往一切的环境名了,也是为了防止后面太多类似

1.2. 创立新环境并进入

conda create -n object_dection python=3.6 &&conda activate object_dection

1.3. 装置 Tensorflow-gpu

因为以上经过 conda 创立了新环境也装置了 pip,所以只需求输入 pip installtensorflow-gpu==1.10.0,在下载进程中可能会中止,要多试几次。

1.4. 装置其他依赖

conda install -c anaconda protobuf
pip install pillow
pip install lxml
pip install Cython
pip install jupyter (时刻较长,可能会中止)
pip install matplotlib
pip install pandas
pip install opencv-python (装置是可能会被杀毒软件误报)

资源下载

1. 下载与 TF 1.10.0 对应的模型库

以下是对应联系,我这儿就挑选 ”tensorflow/models/tree/b07b494e3514553633b132178b4c448f994d59df“,下载完毕后放入一个盘符下即可。

TensorFlow版别   GitHub 模型存储库提交
TF v1.7			https://github.com/tensorflow/models/tree/adfd5a3aca41638aa9fb297c5095f33d64446d8f
TF v1.8			https://github.com/tensorflow/models/tree/abd504235f3c2eed891571d62f0a424e54a2dabc
TF v1.9			https://github.com/tensorflow/models/tree/d530ac540b0103caa194b4824af353f1b073553b
TF v1.10		https://github.com/tensorflow/models/tree/b07b494e3514553633b132178b4c448f994d59df
TF v1.11		https://github.com/tensorflow/models/tree/23b5b4227dfa1b23d7c21f0dfaf0951b16671f43
TF v1.12		https://github.com/tensorflow/models/tree/r1.12.0
TF v1.13		https://github.com/tensorflow/models/tree/r1.13.0
最新版别	 	  https://github.com/tensorflow/models

2. 下载 TF 的目标检测模型

下载地址在模型库的 research/object_detection/g3doc/tf1_detection_zoo.md 里,模型挑选就很有讲究了,若要在核算能力较差的设备上 (智能手机树莓派、FPGA 等嵌入式体系中),运用 SSD-MobileNet 系列,若在作业站上练习检测可运用 RCNN 系列。这儿挑选的是 ”Faster-RCNN-Inception-V2“,下载完毕后放入上面模型库里的 object-detection-model\research\object_detection 下面。

如何在 Windows10 下运行 Tensorflow 的目标检测?

如何在 Windows10 下运行 Tensorflow 的目标检测?

3. 下载国外博主提供的 demo

地址:github.com/EdjeElectro…,下载后解压放入 object-detection-model\research\object_detection。

如何在 Windows10 下运行 Tensorflow 的目标检测?

环境装备

1. 装备模型的环境变量

需求将 \models, \models\research, and \models\research\slim 三个途径加入到 path 的环境变量中。

2.编译 Protobuf 文件

指令的目录切换到 “ object-detection-model\research” 下,经过前面conda 装置的 protobuf 将.proto 编译成name_pb2.py 文件,输入以下指令。

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

如何在 Windows10 下运行 Tensorflow 的目标检测?

3. 装置 Object-Detection

持续在 “object-detection-model\research” 目录下,别离运转下面两个指令,并且会多出几个文件夹。

python setup.py build
python setup.py install

如何在 Windows10 下运行 Tensorflow 的目标检测?

如何在 Windows10 下运行 Tensorflow 的目标检测?

验证与运转

为了验证 Object Detection 是否装置成功,也为了运转目标检测官方事例。经过前面装置的 jupyter,执行以下指令,前提是指令目录需求切换到 “object-detection-model\research\object_detection”。

jupyter notebook object_detection_tutorial.ipynb

如何在 Windows10 下运行 Tensorflow 的目标检测?

运转后默许会翻开阅读器,然后翻开脚本,并能一次一步地阅读代码部分。可以经过单击上面工具栏中的 “运转” 按钮逐渐阅读每个部分。当小节旁边的 “In [] 文本中的数字出现时,该节将完结运转 (例如 “In [1]”)。(留意:其中有一步是从 GitHub 上下载 ssd_mobilenet_v1 模型,大约 74M,需求多等一会,程序是在执行的,并不是死机或出错。静等 In [] 中的 * 变成数字)。可是当我在点击每段代码时,就有以下几个报错。

1. Could not find ‘cudart64_90.dll’. TensorFlow requires that this DLL be installed in a directory that
原因: 本地电脑没有 CUDA 的 cudart64_90.dll 文件,当装置 CUDA 后还报错,原来是启动窗口没有封闭,指令找的是旧环境地址
办法: 重启翻开该 conda 环境,再重新启动 jupyter 指令。

如何在 Windows10 下运行 Tensorflow 的目标检测?

2. Please upgrade your tensorflow installation to v1.4. or later*
原因: 反复确认过在该环境下装置的是 TF1.10.0,现在不知道什么原因,以下办法尽管处理了,可是榜首段代码运转还有有一些异常信息。
办法: 翻开 object_detection_tutorial.ipynb 文件,找到 “source”, 删去或注释掉以下代码。

如何在 Windows10 下运行 Tensorflow 的目标检测?

3. 目标检测的图片不出来。
原因: 现在不知道原因,没有错误提示,我也更换过阅读器。
办法: 代码运转挑选了 run all,在火狐阅读器里就出来了。

如何在 Windows10 下运行 Tensorflow 的目标检测?

  1. 最后如果需求上面的下载代码,可以留言,到时候我再贴出来。