关于python:如何在-Windows10-下运行-Tensorflow-的目标检测

42次阅读

共计 4669 个字符,预计需要花费 12 分钟才能阅读完成。

前言

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 看过很多博主通过 Object Detection 实现了一些皮卡丘捕获,二维码检测等诸多特定项的指标检测。而我跟着他们的案例来运行的时候,不是 Tensorflow 版本抵触,就是短少什么包,还有是运行官网 object_detection_tutorial 不展现图片等等问题。

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 在看过一个国外博主例子,我也通过 Tensorflow-GPU1.10.0 运行了官网例子,既然要应用 GPU 则须要把 CUDA 先配置好,上一篇文章有特地具体介绍到。而这里就捋一下在运行过程遇到的种种问题。

环境

1.windows10 的 64 位电脑

2. 显卡 GeForce GTX 750 Ti

3.Python 3.6.13

4.Tensorflow-GPU 1.10.0

5.Cuda 9.0.176

6.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 install tensorflow-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 上面。

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

地址:https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10#3-gather-and-label-pictures,下载后解压放入 object-detection-model\research\object_detection。

 

环境配置

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

3. 装置 Object-Detection

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

python setup.py build
python setup.py install

验证与运行

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 为了验证 Object Detection 是否装置胜利,也为了运行指标检测官网案例。通过后面装置的 jupyter,执行以下命令,前提是命令目录须要切换到“object-detection-model\research\object_detection”。

jupyter notebook object_detection_tutorial.ipynb

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 运行后默认会关上浏览器,而后关上脚本,并能一次一步地浏览代码局部。能够通过单击下面工具栏中的“运行”按钮逐渐浏览每个局部。当大节旁边的“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 命令。

2.Please upgrade your tensorflow installation to v1.4.* or later
起因 :重复确认过在该环境下装置的是 TF1.10.0,目前不晓得什么起因,以下办法尽管解决了,然而第一段代码运行还有有一些异样信息。
办法:关上 object_detection_tutorial.ipynb 文件,找到 “source”, 删除或正文掉以下代码。

3. 指标检测的图片不进去。
起因 :目前不晓得起因,没有谬误提醒,我也更换过浏览器。
办法:代码运行抉择了 run all,在火狐浏览器里就进去了。

正文完
 0