Ubuntu16.04 server 安装tensorflow object detection模块

安装提醒:本博文是在ubuntu16.04服务器(只有黑框框,没有图形界面,推荐使用MobaXterm之类的远程控制软件,方便访问服务器)上离线安装的tensorflow object detection模块。因为服务器不能连外网,所以只能通过提前在外网下载好所需要的各种包工具传入服务器中进行安装。官网中也有安装教程,但你第一次安装可能会遇到坑(由你的开发环境决定)。

对于学习深度学习(图像这块的)的同学,我觉得对于tensorflow object detection这个模块应该不会陌生。记得自己当初刚开始学习目标检测识别时,就是从object detection模块开始的。下面贴张object detection官网上的检测效果图,是不是感觉很棒。贴出官网的链接:https://github.com/tensorflow/models/tree/master/research/object_detection 在这个模块中谷歌提供了很多使用tensorflow搭建的目标检测网络并在coco数据集上提前预训练好了,用户可以直接使用这些网络通过迁移学习的方式去训练自己需要检测的目标。总的来说使用起来非常方便,而且效果也很棒,也比较建议新手先从这里开始学习了解(很多小型科技公司就是直接使用这个模块去做深度学习的项目),因为该模块能够快速的实现你想要的目标,而且一开始直接让一个新手去搭建一个模型从数据的预处理、读取、模型搭建、计算误差等等真的不现实,所以从这里开始你能先体会到其中的乐趣后面再慢慢的去深入学习。话不多说,开始安装。

今天是2019.9.24日,tensorflow已经发展到2.0版本了,但是现在object detection master分支中很多模块是用1.12.0版本写的(官网要求tensorflow的版本要高于等于1.12.0,建议安装tensorflow时,比1.12.0高一点就行,版本过高很可能遇到Bug),本人也尝试过使用1.14.0版本感觉有些问题,由于python3.7能够安装的最低版本是1.13那么本博文就以1.13.1版本为例进行安装。先列出需要预先下载的文件。

1. Anaconda3(自行官网下载即可,如果想安装python3.6的Anaconda请到清华镜像源中下载,链接

2. tensorflow1.13.1(根据自己的电脑硬件配置选择CPU或者GPU版本,本文以CPU为例,GPU可以参考我原来的文章

3. 下载object detection模块(克隆官网中的源码,可以用git也可以直接下载zip,离线最好下载zip)

4. cocoapi(object detection模块需要用到,同样在官网上进行下载源码)

5. protobuf3.0.0 Linux 64位(官网推荐版本,下载链接

 

安装Anaconda3

强烈推荐Anaconda3,为什么?首先Anaconda内集成了几乎所有你可能用到的包(离线环境太方便了)不需要你一个个去pip install 帮你节约大把时间(object detection要求的一系列包工具anaconda都包括了),其次ubuntu16.04系统了自带安装了python2.7和python3.5,尽可能不要去碰这两个系统版本,千万别去卸载,否则你会后悔。

将文件放到ubuntu服务器中,cd到文件当前目录,通过以下指令进行安装 :

$ bash Anaconda3-x.x.x-Linux-x86_64.sh

安装过程先一路回车看看anaconda的安装说明,接着系统问你(Do you accept the license terms?)输入yes(如果接着问你是否将anaconda写入环境变量,请选择是,如果没有需要手动添加环境变量,本人安装时没有提示故需要手动添加)安装完成后还会问你安不安装VScode我是服务器端就不用装了。

接着添加两条软连接,下面的xxx是你自己安装anaconda的根目录,自己改一下。添加软链接的目的是在终端输入python3.7系统会自动调用anaconda包里的python3.7,在终端使用pip安装时会调用anaconda包里的pip进行安装这样你安装的包就会都在anaconda管理的目录里了,方便管理:

sudo ln -s /xxx/anaconda3/bin/python3.7 /usr/bin/python3.7
sudo ln -s /xxx/anaconda3/bin/pip /usr/bin/pip

接着修改下环境变量,在vim编辑器中点击“Insert”键启动编辑模式,编辑完后按下“Esc”按钮退出编辑模式,输入“:wq”指令进行保存并退出:

# 使用vim打开文件
sudo vim ~/.bashrc 
# 在文件最底部加入如下字段,xxx为用户自己安装的anaconda根目录
export PATH="/xxx/anaconda3/bin$PATH"
# 更新环境变量
source ~/.bashrc

 

安装tensorflow

若有网络或者有pip镜像源直接通过以下指令下载:

pip install tensorflow==1.13.1

若有tensorflow的whl二进制文件,将whi文件放入ubuntu系统中在通过cd进入当前文件夹,通过下列指令进行安装:

pip install tensorflow-1.13.1-xxx-xxx-linux_x86_64.whl

由于我的anaconda(2018年的)包里的wrap包版本太老,安装过程中提示无法uninstall wrap包导致安装失败,解决办法就是卸载wrapt包,重新下载一个新版本进行安装。

# 如果有网或者有ubuntu包镜像时,可以直接通过以下指令进行升级即可
pip install wrapt --ignore-installed

更新wrapt包后再次安装tensorflow成功。

 

安装cocoAPI

这里直接按照object detection官网上的描述进行安装。将下载的cocoapi包放入ubuntu系统中,通过下列指令进行解压:

unzip cocoapi-master.zip

解压后cd进入cocoapi/PythonAPI路径下,输入以下指令进行安装:

make

我在make过程中提示没有找到python执行文件,接着打开路径下的Make.file文件,将里面的python改为python3.7(我们在安装anaconda中添加了python3.7的软连接),这样就没问题了。

#########

题外话,如果提示没有unzip指令说明没有安装unzip,在有网络或者有ubuntu source代理的情况下输入以下指令进行安装:

sudo apt-get install unzip

如果make过程中提示没有make工具,说明没有gcc等编译工具, 在有网络或者有ubuntu source代理的情况下输入以下指令安装:

sudo apt-get install build-essential

##########

编译完cocoapi后我们将下载的object detection包(文件名为models-master.zip)放入ubuntu系统中进行解压,解压后将编译好的pycocotools文件夹复制到/xxx/models-master/research/文件夹下xxx是相应文件的根目录,请自行修改。

cp -r /XXX/cocoapi/PythonAPI/pycocotools /XXX/models-master/research/

 

安装protobuf3.0.0

将我们下载好的protobuf包放到ubuntu服务器中,进行解压,解压后有三个文件(bin文件夹、include文件夹、readme文件),建议将这三个文件放在一个新建的文件夹中便于后期管理。接着添加一条软连接,链接bin文件夹下的protoc文件到/usr/bin/protoc文件中:

sudo ln -s /xxx/protobuf3/bin/protoc /usr/bin/protoc

创建软连接完成后,我们能够通过以下指令进行查看protobuf的版本:

protoc --version

 

Protobuf Compilation

进入/xxx/models-master/research/文件夹下,输入以下指令。这一步是使用我们安装好的protobuf去配置、编译object detection模块中所需要的一些参数等。

protoc object_detection/protos/*.proto --python_out=.

 

Add Libraries to PYTHONPATH

这一步是为了方便python去调用object detection中的一些功能模块。建议写入环境变量,通过sudo vim ~/.bashrc打开环境变量文件,加入如下语句:

# export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
# 其中`pwd`是models-master/research的绝对路径,例如
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/models-master/research:/home/ubuntu/models-master/research/slim

添加完成后更新环境变量source  ~/.bashrc

 

Testing the Installation

最后是激动人心的测试时刻,测试通过就基本说明object detection模块安装完成,测试很简单:

python /xxx/models-master/research/object_detection/builders/model_builder_test.py

看到终端打印提示 OK  表示测试通过!

到此object detection模块安装完成,具体如何去使用,官网也有实例,而且文档写的很详细,在我的下一篇博客中讲述了训练一个Pascal VOC2012数据集的实例,有兴趣的同学可以看看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章