如题,在自己的笔记本上就能跑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