部署Faster-RCNN TensorFlow版本
创建Anaconda环境
首先利用Anaconda
创建并配置一个独立的Python环境,在此我的环境名字为tf-faster-rcnn
。
Conda命令创建新环境
打开终端,通过conda
命令创建名为tf-faster-rcnn
的新环境,同时指定python
版本为3.6:
su@Laptop-su:~$ conda create -n tf-faster-rcnn python=3.6
若想删除conda环境,可采用下面命令:
su@Laptop-su:~$ conda remove -n tf-faster-rcnn --all
Conda安装所需包
在终端内使用下面命令进入tf-faster-rcnn
环境:
su@Laptop-su:~$ source activate tf-faster-rcnn
可以通过下面指令确认自己所在的环境位置:
(tf-faster-rcnn) su@Laptop-su:~$ conda env list
若要退出tf-faster-rcnn
环境,返回默认环境,使用下面命令:
(tf-faster-rcnn) su@Laptop-su:~$ source deactivate
在tf-faster-rcnn
环境下,使用conda命令逐一安装所需包:
1.tensorflow-gpu
(tf-faster-rcnn) su@Laptop-su:~$ conda install tensorflow-gpu
会自动将最新版本的tensorflow-gpu
版本以及其依赖的包比如cudatoolkit
、cudnn
、scipy
、scikit-learn
、numpy
安装完毕,我安装时如果不指定版本自动安装会安装tensorflow-gpu=1.12
,cudatoolkit=9.2
,cudnn=7.2.1
,注意cuda的版本是要跟你的N卡驱动匹配的,看下图
我的N卡驱动版本是390.77
,并且不想升级显卡驱动,因此CUDA最高可选择9.1,我决定先安装CUDA9.0
可以通过下面命令安装指定版本的包:
(tf-faster-rcnn) su@Laptop-su:~$ conda install cudatoolkit=9.0
再安装tensorflow
,会自动将匹配CUDA9.0
的cudnn
版本附带安装完毕
(tf-faster-rcnn) su@Laptop-su:~$ conda install tensorflow-gpu
这样安装完成后,我的环境里是tensorflow-gpu=1.12
,cudatoolkit=9.0
,cudnn=7.1.2
2.py-opencv
(tf-faster-rcnn) su@Laptop-su:~$ conda install py-opencv
我安装时自动安装的是py-opencv=3.4.2
3.matplotlib
(tf-faster-rcnn) su@Laptop-su:~$ conda install matplotlib
4.cython
(tf-faster-rcnn) su@Laptop-su:~$ conda install cython
5.pillow
(tf-faster-rcnn) su@Laptop-su:~$ conda install pillow
6.pyyaml
(tf-faster-rcnn) su@Laptop-su:~$ conda install pyyaml
7.easydict
conda库中不提供easydict
的安装,需要使用pip
命令进行安装:
(tf-faster-rcnn) su@Laptop-su:~$ pip install easydict
我安装时,自动安装的是easydict=1.9
gcc降级
我们要git的tf-faster-rcnn
不支持6以上版本的gcc,因此要对gcc进行降级或者改变不同版本的优先级.
- 查看gcc版本
在终端中输入如下命令:
su@Laptop-su:~$ gcc -v
会显示gcc version
在此我的gcc版本为7
- 查看安装有哪些版本的gcc
在终端中输入如下命令:
su@Laptop-su:~$ ls /usr/bin/gcc*
如果没有需要的版本,则需要进行第3步安装指定版本
- 安装指定版本gcc
以安装gcc5为例,在终端中输入如下命令:
su@Laptop-su:~$ sudo apt-get install gcc-5 g++-5
- 配置gcc优先级
在终端中输入如下命令调整优先级,数值越低优先级越高:
su@Laptop-su:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
su@Laptop-su:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
输入如下命令,确认配置:
su@Laptop-su:~$ sudo update-alternatives --config gcc
同样也要设置一下g++的:
su@Laptop-su:~$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50
su@Laptop-su:~$ sudo update-alternatives --install /usr/bin/g++ gc++/usr/bin/g++-5 40
如果想删除可选项的话可以键入以下指令:
su@Laptop-su:~$ sudo update-alternatives --remove gcc /usr/bin/gcc-7
- 检查当前gcc版本
在终端中输入如下命令:
su@Laptop-su:~$ gcc -v
显示如下:
下载tf-faster-rcnn和数据集
克隆代码
在想要下载的位置下通过终端输入下列命令:
su@Laptop-su:~/GitHub$ git clone https://github.com/endernewton/tf-faster-rcnn.git
根据你的显卡更新setup脚本中的arch参数
修改tf-faster-rcnn/lib/setup.py
中第130行的arch
参数
比如我的显卡是1070,算力是6.1,所以是sm_61
你显卡的算力可以查询下面网址:
https://developer.nvidia.com/cuda-gpus#collapseOne
编译Cython
在tf-faster-rcnn/lib
路径下,在tf-faster-rcnn环境下输入终端命令:
# 清除之前编译结果
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/lib$ make clean
# 编译
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/lib$ make
安装COCO API
这是为了使用COCO数据库
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ cd data
# 下载COCO API
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data$ git clone https://github.com/pdollar/coco.git
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data$ cd coco/PythonAPI
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/coco/PythonAPI$ make
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/coco/PythonAPI$ cd ../../..
下载PASCAL VOC数据集
- 下载训练集,验证集,测试集以及VOCdevkit
在想要存放数据集的位置打开终端,输入下列命令:
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
- 将所有压缩包解压到一个名为VOCdevkit的文件夹中
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ tar xvf VOCtrainval_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ tar xvf VOCtest_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ tar xvf VOCdevkit_08-Jun-2007.tar
- VOCdevkit文件夹应由如下构成
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit$ # development kit
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit/VOCdevkit/VOCcode$ # VOC utility code
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit/VOCdevkit/VOC2007$ # image sets, annotations, etc.
- 创建数据集的软连接
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit$ cd ~/GitHub/tf-faster-rcnn/data
su@