Ubuntu16.04下使用【cpu】运行【tf-faster-rcnn】目标检测Demo

如题,在自己的笔记本上就能跑tf-faster-rcnn的demo,预装的环境主要就是tensorflow1.2.0-rc和python3的一些库,不牵扯cuda那些。我也许会写一系列,从跑demo到训练自己的目标检测网络,faster rcnn的原理等等。快点动手弄起来吧!

tf-faster-rcnn的github源码地址: https://github.com/endernewton/tf-faster-rcnn

一、预安装的环境:

1. python3.5.2 

ubuntu16.04的默认python3版本为3.5.2,需要说明的是,要给python3安装相关的库,一切命令都用pip3,如pip3 install numpy....pip3 install seaborn....如果用pip的话默认的是给python2装相应的库。python3需要为tf-faster-rcnn安装的库有cython, opencv-python, easydict等等,先往后走,等运行的时候报import error的话再进行相应的pip3 install。

2. tensorflow1.2.0-rc2

源码follow的是tensorflow的r1.2版本,为了避免踩坑,大家还是先规规矩矩来吧。在清华源上下载对应的tensorflow的cpu版本的whl。我装的是:

tensorflow-1.2.0rc2-cp35-cp35m-linux_x86_64.whl 33.0 MiB 2017-06-07 06:02

tensorflow-cpu的详细安装步骤,可以参考:ubuntu16.04安装TensorFlow的正确步骤

我按照python3的版本流程给大家梳理一下,和教程里有点小区别的是我的whl是手动下的:

1.安装python对应版本的pip和依赖包(sudo apt-get install python3-pip python3-dev)

2.升级pip版本(sudo pip3 install --upgrade  pip)

3.在之前下载的.whl目录下打开ubuntu的命令终端,pip3 install tensorflow-1.2.0rc2-cp35-cp35m-linux_x86_64.whl,即可安装。

4.测试一下:

二、tf-faster-rcnn运行demo

可参考的教程:Faster R-CNN tensorflow版本,cpu下运行demo

我还是按照python3,按照github上的readme顺序为大家梳理一下:

1.克隆源码

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

2.修改lib目录下的Makefile和setup.py

进入lib目录

cd tf-faster-rcnn/lib

更改Makefile文件中的python setup.py...这行为python3 setup.py....

setup.py文件做以下修改:

(我在ubuntu里安装了pycharm,用pycharm打开tf-faster-rcnn,相应的地方直接用快捷键ctrl+/注释,如果没装pycharm的话就用gedit打开逐行加#就好)

找到 CUDA = locate_cuda() 并注释掉该行;

注释掉Extension的nms.gpu_nms的部分,如下图所示:

Readme中说要将USE_GPU_NMS设置为False,这个是在tf-faster-rcnn/lib/model/config.py文件中进行修改,将原先的True改为False。

tf-faster-rcnn/lib/model/nms_wrapper.py中也要注释掉相应部分:

 

3.构建Cython模块

在终端的tf-faster-rcnn/lib目录下依次输入下面三个命令

make clean
make
cd ..

解释一下:

make clean命令是清除之前编译的文件;

make指的是编译,也就是运行Makefile文件,Makefile中有执行setup.py构建cython的命令;

cd ..指的是返回上一级目录,也就是返回到了tf-faster-rcnn目录。

4.安装Python COCO API

cd data
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
cd ../../..

这个还是要注意,有make命令就要将相应目录下的Makefile文件中的python改为python3,因为咱们是要用python3解释执行,不是要用python2。

5.Setup Data

1.下载预训练模型:

在tf-faster-rcnn/data目录下新建一个文件夹,命名为voc_2007_trainval+voc_2012_trainval,文件夹内的四个ckpt文件可以从我的baidu网盘中下载

链接:https://pan.baidu.com/s/1nsfXWIr5E8w49ElvsadzEg 
提取码:irdq 

(原readme说是执行fetch_faster_rcnn_models.sh下载预训练模型,我下载不下来,所以从google drive中手动下载,然后传到了baidu网盘上)

2.创建文件夹和软链接以使用预训练模型

现在在终端的tf-faster-rcnn目录,

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 ../../..

解释一下:

mkdir -p 这行代码指的是创建output/res101/voc_2007_trainval+voc_2012_trainval路径,没有的就创建。-p指的是父目录。

ln -s这行指的是创建一个软链接,创建后output/res101/voc_2007_trainval+voc_2012_trainval下会出现一个带有黑色箭头的default文件夹,里面的内容是链接的data/voc_2007_trainval+voc_2012_trainval  (我们之前放的模型文件)

我觉得我的解释你们应该能懂,不懂的话就看图:

3.运行demo

python3 ./tools/demo.py

有强迫症的话可以自行解决上面的那些cpu加速的warning...这对我们运行demo看效果并没什么影响。

大功告成啦!运行完会跑出12张图片窗口。为了给大家看看效果,我才把窗口这样拉了拉,当然可以把检测的结果保存成图片到目录中。快去试试吧!

===============================================================================================

因为不是边弄边截图,所以中间有一些小的问题我可能没有顾及到。有问题的朋友可以在博客下方留言,我看到会回复你哒。

如果按照我的教程成功运行了的话,可爱的你真棒,给我点个赞吧~

                                                                                                                                                                                                       2019.4.16

猜你喜欢

转载自blog.csdn.net/luolan9611/article/details/89326374
今日推荐