Ubuntu 16.04 安装Tensorflow Object Detection API遇到的问题解决

**

Ubuntu 16.04 安装Tensorflow Object Detection API

**

本篇的内容主要参考以下链接:https://blog.csdn.net/pkokocl/article/details/82596089,
该博主描述的比较清楚,对于解决实际操作过程中遇到的问题很有帮助,下面针对我遇到的问题做一个记录。

环境:本次实验是在unbuntu 16.04下, tensorflow版本时1.10.1,python 3.5的环境下实现的。

依赖包的安装
此处注意:使用pip安装依赖包时一定要注意使用 pip 还是 pip3 ,否则可能在使用时会出现该包不存在的提示。

      sudo apt-get install protobuf-compiler
      sudo apt-get install python-pil
      sudo apt-get install python-lxml
      sudo pip3 install jupyter
      sudo pip3 install matplotlib

数据的下载

可选择直接github上下载,或者是在终端使用命令下载,数据集链接: https://github.com/tensorflow/models
在终端使用如下命令:

    mkdir tensorflow
    cd tensorflow
    git clone https://github.com/tensorflow/models.git

protobuf编译
若采用命令下载,则下载的文件位于当前目录下,其中tensorflow是自己建立的文件夹,根据其他博客的说法,此处为了与网上路径保持一致(为什么,不清楚,估计没有影响),在目录~/tensorflow/models/research/object_detection打开终端输入以下命令将proto文件编译为.py文件:

$ protoc ~/tensorflow/models/research/object_detection/protos/*.proto --python_out=.

此处注意:输入命令之后可能出现,以下错误:

object_detection/protos/ssd.proto:104:3: Expected "required", "optional", or "repeated".
object_detection/protos/ssd.proto:104:12: Expected field name.
object_detection/protos/model.proto: Import "object_detection/protos/ssd.proto" was not found or had errors.
object_detection/protos/model.proto:12:5: "Ssd" is not defined.

解决方案同上面链接中的一致。
查看当前protoc的版本

$ protoc --version
libprotoc 2.6.1

版本为2.6.1,需要升级protoc版本。
卸载protoc旧版本,sudo apt-get remove protobuf-compiler
https://github.com/google/protobuf/releases 下载最新的protoc安装包 protobuf-all-3.6.1.tar.gz
下载完后解压,然后执行下面的命令编译安装:

$ cd protobuf-3.6.1
$ ./configure --prefix=/usr
$ make -j15
$ make check -j15
$ sudo make install -j15
$ sudo ldconfig
$ protoc --version

将slim添加到PYTHONPATH
直接在.bashrc 文件中添加如下一行,使用如下一行,其中/×××代表系统路径

export PYTHONPATH=$PYTHONPATH:/×××/tensorflow/models/research:/your home path/tensorflow/models/research/slim

然后在终端执行 source ~/.bashrc

验证测试
在~/tensorflow/models/research目录下执行如下命令:

$ python3  object_detection/builders/model_builder_test.py

出现以下结果:No model name matplotlib
在终端使用命令:

 $ sudo apt-get install python-matplotlib
 $ pip3 install --user matplotlib
   
 注意:命令中python是指python2,python3是指3.0版本的python,与pip,pip3的一样

jupyter问题
在环境搭建好,jupyter安装好之后会出现,io_loop参数问题:
解决方案:
在终端输入以下命令:

$ pip3 uninstall tornado
$ pip3 install tornado==4.5.3

#切记不要安装5.0以上版本,默认安装时为5.0版本,先卸载后再重新安装
对jupyter操作的问题: 记得去掉simple …off的勾,在右上角

猜你喜欢

转载自blog.csdn.net/weixin_41644725/article/details/83007901