在ubuntu16.04系统中运行Faster RCNN的Tensorflow代码(一)

本人近期在学习Faster RCNN目标检测算法,花了近一天时间在Tensorflow下将Faster RCNN实现了,运行了demo.py并得到了结果,因此记录一下从安装到运行,以及对出现的错误进行总结。此次是利用自己的电脑远程访问服务器,在服务器上配置环境并进行运行程序,如果是在自己的电脑上应该也大同小异。

本文为博主原创,转载请注明出处:https://blog.csdn.net/hitzijiyingcai/article/details/81347402

一、环境准备

所使用的环境总的来说是python2.7、cuda8.0、tensorflow1.4.0

1、cuda、cudnn:由于此次是在服务器上进行,因此对于运行所必须的cuda、cudnn等已经在服务器上配好,不需要自己再配置,如果在自己电脑上可以自行百度。

2、Tensorflow:由于本人原来在服务器上配置的tensorflow是在python3环境下,而现有的github上的开源代码都是基于python2的,本人本来尝试进行修改,然而python3是不兼容python2的,有很多函数和语法进行了修改,前期还在尝试,但工作量太大耗时太多。因此本人又重新配置了在python2下的tensorflow,对于此部分配置tensorflow的步骤,大家可以参考本人之前的博客:https://blog.csdn.net/hitzijiyingcai/article/details/81099951。由于是利用Anaconda进行的配置,对此部分概念不太清楚的可以看一下这个https://www.jianshu.com/p/d2e15200ee9b,个人觉得总结的还不错,看一下对于了解自己每一步都在干什么还是有必要的。

在配置好tensorflow之后,就是安装相应的依赖库:

apt-get install cython python-opencv python-tk python-scipy python-yaml

pip install easydict

pip install matplotlib

python -m pip install Pillow

在这里需要注意两点,第一点是本人并没有使用sudo命令,是因为本人是在服务器上进行的配置,并不是管理员身份,因此用sudo无法安装,假如是在自己的电脑上进行配置,还是应该加上。第二点是,在利用这些命令进行安装时,以安装pillow为例,往往会出现这样的错误:

对于这样的错误,往往是因为连接超时而没法继续下载,个人感觉是由于通过终端访问网页服务器速度很慢而且有时间限制,所以建议大家可以把截图中最上面那段连接复制到浏览器进行下载,这样可以快很多,下载完成后再copy到相应的服务器文件夹,通过以下命令进行安装:

pip install Pillow-4.1.0-cp27-cp27m-win_amd64.whl

NB:这种方式在使用linux系统安装其他工具时也可有效使用,方便又省时。

扫描二维码关注公众号,回复: 2822903 查看本文章

二、下载Github代码

本人本次使用的为https://github.com/endernewton/tf-faster-rcnn,可通过以下代码直接下载:

git clone https://github.com/endernewton/tf-faster-rcnn.git

同样的,这样的方式比较耗时,可以通过直接去github上下载的方式。

NB:对于网上出现的其他github代码,如:https://github.com/CharlesShang/TFFRCNN以及https://github.com/smallcorgi/Faster-RCNN_TF,这两个版本的代码本人都尝试过,但是由于种种原因,总是出现各种错误,也在网上进行了各种搜索,花费了比较长的时间,但是还是出现各种莫名其妙的错误,在这里把搜到的一些解决问题的链接放上,以供有需要的小伙伴参考,加入有成功的小伙伴,欢迎来进行分享。

以下为利用这两个库进行实践的比较有用的链接,大家可自行查看:

https://blog.csdn.net/qq_15650409/article/details/80051018https://www.cnblogs.com/deeplearning1314/p/8463647.html

https://blog.csdn.net/Seven_year_Promise/article/details/78589656?locationNum=2&fps=1

https://blog.csdn.net/a694262054/article/details/79645093https://www.cnblogs.com/danpe/p/7825357.html#undefined

三、更改配置

1、更新GPU架构配置

cd ~/tf-faster-rcnn/lib

vim setup.py

到setup.py中找到 -arch 这个参数,改成自己的GPU架构,对应的配置如下图:

因为本人使用的服务器为GTX 1080,因此改为sm_61,大家可以通过nvidia-smi查看自己电脑的GPU配置。

2、链接cython 模块

在上一步那个lib 文件夹中进行

make clean

make

cd ..

3、安装 Python COCO API(这是为了使用COCO数据库)

cd data

git clone https://github.com/pdollar/coco.git

cd coco/PythonAPI

make

cd ../../..

四、运行Demo 和测试预训练模型

1、下载预训练模型

上一步回到根目录后:

./data/scripts/fetch_faster_rcnn_models.sh

这一步的作用是下载要用的模型 voc_0712_80k-110k.tgz ,此文件在终端往往难以下载,会出现如图所示的错误:

因此手动下载文件,可在此网盘中下载:https://pan.baidu.com/s/1kWkF3fT

下载后copy到相应文件夹进行解压:

tar xvf voc_0712_80k-110k.tgz

2、建立预训练模型的软连接

回到主目录

NET=res101

TRAIN_IMDB=voc_2007_trainval+voc_2012_trainval

mkdir -p output/${NET}/${TRAIN_IMDB}

cd output/${NET}/${TRAIN_IMDB}

ln -s ../../../data/voc_2007_trainval+voc_2012_trainval ./default

cd ../../..

3、demo测试

在tf-faster-rcnn 这个根文件夹中运行

GPU_ID=0

CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py

注意:由于是在本地用终端在服务器上运行,demo里面一个文件 import matlibplot.pyplot ,可能会出现DISPLAY 变量未设置这个bug,echo $DISPLAY 命令这时候肯定是什么不显示的,因此,需要对demo.py做如下两处修改:

修改完成后即可运行,运行的结果如图:

图片结果保存如下:

最后,测试预训练模型

首先要下载测试的voc2007模型,下载地址为https://pjreddie.com/projects/pascal-voc-dataset-mirror/,下载后进行解压,重命名为VOCdevkit2007,然后放在data文件夹下。然后还要在其中新建一个txt文件,具体的位置及相关文件夹名称如图:

然后在tf-faster-rcnn根目录下执行以下两个命令:

GPU_ID=0

./experiments/scripts/test_faster_rcnn.sh $GPU_ID pascal_voc_0712 res101

跑出来的结果:

NB:本文部分内容参考自

https://www.cnblogs.com/toone/p/8433581.htmlhttps://blog.csdn.net/Angela_qin/article/details/80921688

猜你喜欢

转载自blog.csdn.net/hitzijiyingcai/article/details/81347402