Tensorflow平台实现faster_rcnn

一. Tensorflow平台实现faster_rcnn
1.下载tensorflow对象检测API存储库
直接在E:中创建一个文件夹,并将其命名为“ tensorflow1”。该工作目录将包含完整的TensorFlow对象检测框架,以及您的训练图像,训练数据,训练有素的分类器,配置文件以及对象检测分类器所需的所有其他内容。
单击“克隆或下载”按钮并下载zip文件,下载位于https://github.com/tensorflow/models的完整TensorFlow对象检测存储库。打开下载的zip文件,然后将“ models-master”文件夹直接解压缩到您刚创建的E:\ tensorflow1目录中。将“ models-master”重命名为“ models”。
这里有一个问题就是github下载实在太慢了。
解决办法:1.尝试加入github的三个主要ip后刷新dns,无效
2.用国内的资源,如码云平台将链接上传之后再下载
Tensorflow平台实现faster_rcnn

  1. 从TensorFlow的模型下载Faster-RCNN-Inception-V2-COCO模型
    下载网址
    http://download.tensorflow.org/models/object_detection/faster_rcnn_inception_v2_coco_2018_01_28.tar.gz
    这个直接下载很慢,用上面的方法不行,用迅雷可以。
    将faster_rcnn_inception_v2_coco_2018_01_28文件夹解压缩到tensorflow1 \ models \ research \ object_detection文件夹

https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10.git

如果要训练自己的对象检测器,请删除以下文件(不要删除文件夹):

\ object_detection \ images \ train和\ object_detection \ images \ test中的所有文件
\ object_detection \ images中的“ test_labels.csv”和“ train_labels.csv”文件
\ object_detection \ training中的所有文件
\ object_detection \ inference_graph中的所有文件
3. 设置新的Anaconda虚拟环境
1)在 ANACONDA 里创建名为 TENSORFLOW 的环境
conda create -n tensorflow pip python=3.x
2)发出以下命令以激活 conda 环境
activate tensorflow
3)发出相关命令以在 conda 环境中安装 TensorFlow
(tensorflow)C:> pip install --ignore-installed --upgrade
tensorflow-gpu(可在后加==版本号)

通过发出以下命令来安装其他必要的软件包:

(tensorflow1) C:> conda install -c anaconda protobuf
(tensorflow1) C:> pip install pillow
(tensorflow1) C:> pip install lxml
(tensorflow1) C:> pip install Cython
(tensorflow1) C:> pip install contextlib2
(tensorflow1) C:> pip install jupyter
(tensorflow1) C:> pip install matplotlib
(tensorflow1) C:> pip install pandas
(tensorflow1) C:> pip install opencv-python
Tensorflow平台实现faster_rcnn

如果pip下载慢的话可以
将清华的镜像源设置为默认的镜像源:
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
注意:TensorFlow不需要’pandas’和’opencv-python’软件包,但它们在Python脚本中用于生成TFRecords以及处理图像,视频和网络摄像头feed。
4. 配置PYTHONPATH环境变量
必须创建一个指向\ models,\ models \ research和\ models \ research \ slim目录的PYTHONPATH变量。通过发出以下命令(从任何目录)来执行此操作:
set PYTHONPATH=E:\tensorflow1\models;E:\tensorflow1\models\research;E:\tensorflow1\models\research\slim
(注意:每次退出“ tensorflow1”虚拟环境时,都会重置PYTHONPATH变量并需要再次设置。您可以使用“ echo%PYTHONPATH%”来查看它是否已设置。)

  1. 编译Protobufs并运行setup.py
    接下来,编译Protobuf文件,TensorFlow使用该文件来配置模型和训练参数。不幸的是,在TensorFlow的“对象检测API”安装页面上发布的简短协议编译命令在Windows上不起作用。\ object_detection \ protos目录中的每个.proto文件都必须由命令单独调出。
    在Anaconda命令提示符中,将目录更改为\ models \ research目录:
    (tensorflow1) E:> cd E:\tensorflow1\models\research

这里说明一下如果上述文件放在E盘,但是anaconda默认的环境是在c盘的,我们用普通的cd 切换磁盘的方法是没有用的,必须先退回到C:,再从C根目录切到其他盘符。所以你需要输入
cd C:
E:
自动定位到刚才环境变量所在位置。

输入以下指令:
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 .\object_detection\protos\calibration.proto .\object_detection\protos\flexible_grid_anchor_generator.proto
这将从\ object_detection \ protos文件夹中的每个name.proto文件创建一个name_pb2.py文件
Tensorflow平台实现faster_rcnn

最后,从E:\ tensorflow1 \ models \ research目录运行以下命令:
(tensorflow1) E:\tensorflow1\models\research> python setup.py build
(tensorflow1) E:\tensorflow1\models\research> python setup.py install
现在,所有TensorFlow对象检测API都已设置为使用预训练的模型进行对象检测,或训练新模型。
6.测试测试TensorFlow设置以验证其是否有效
可以通过使用Jupyter启动object_detection_tutorial.ipynb脚本来进行测试并验证安装是否正常。从\ object_detection目录,发出以下命令
tensorflow1) E:\tensorflow1\models\research\object_detection> jupyter notebook object_detection_tutorial.ipynb
Tensorflow平台实现faster_rcnn

这里有一个问题,新版的models库里,根本就没有这个文件,所以我花了不小的功夫去以前别人down下来的库里面找到了这个文件。

Tensorflow平台实现faster_rcnn

现在终于有这个文件了。但是运行完了并没有图片出现。
尝试方法一:请尝试以下操作:进入object_detection / utils / visualization_utils.py并注释掉第29和30行周围的import语句, matplotlib。然后,尝试重新运行Jupyter笔记本。
Tensorflow平台实现faster_rcnn

无效。
尝试方法二:
首先在tutorial.ipynb的代码最后新加一行写上

plt.show()
然后修改visualization_util.py文件第26行如下

import matplotlib#; matplotlib.use(‘Agg’)
直接把后半句指定后端注释掉,保存,然后重启notebook服务,执行kernel中的restart &run all,无效。

尝试方法三:解释是要打开object_detection的utils模块中的visualization_util.py文件,修改第26行代码中的“agg” 为“Qt5agg”或者“TKAgg”。
因为按照报错显示是说使用agg这种默认后端是不能显示图片的,所以改成后两中能显示图片的模式,其中“Qt5gg”是弹窗显示图片。无效

上一篇:gRPC:在ASP.NET Core上的基本应用


下一篇:浅谈javascript的原型和原型链(新手懵懂想学会原型链?看这篇文章就足够啦!!!)