部署Faster-RCNNTensorFlow版本
部署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环境:tensorflow版本选择
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命令逐⼀安装所需包:
(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
(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进⾏降级或者改变不同版本的优先级.
1. 查看gcc版本
在终端中输⼊如下命令:
su@Laptop-su:~$ gcc -v
会显⽰gcc version
在此我的gcc版本为7
2. 查看安装有哪些版本的gcc
在终端中输⼊如下命令:
su@Laptop-su:~$ ls /usr/bin/gcc*
如果没有需要的版本,则需要进⾏第3步安装指定版本
3. 安装指定版本gcc
以安装gcc5为例,在终端中输⼊如下命令:
su@Laptop-su:~$ sudo apt-get install gcc-5 g++-5
4. 配置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
5. 检查当前gcc版本
在终端中输⼊如下命令:
su@Laptop-su:~$ gcc -v
显⽰如下:
下载tf-faster-rcnn和数据集
克隆代码
在想要下载的位置下通过终端输⼊下列命令:
su@Laptop-su:~/GitHub$  git clone github/endernewton/tf-faster-rcnn.git 根据你的显卡更新setup脚本中的arch参数
编译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 github/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数据集
1. 下载训练集,验证集,测试集以及VOCdevkit
在想要存放数据集的位置打开终端,输⼊下列命令:
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar 2. 将所有压缩包解压到⼀个名为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
3. 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.
4. 创建数据集的软连接
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit$ cd ~/GitHub/tf-faster-rcnn/data
su@Laptop-su:~/GitHub/tf-faster-rcnn/data$ ln -s "/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit" VOCdevkit2007
⽤预训练模型演⽰并测试
下载并解压预训练模型
# Resnet101 for voc pre-trained on 07+12 set
su@Laptop-su:~/GitHub/tf-faster-rcnn$ ./data/scripts/fetch_faster_rcnn_models.sh
#解压
su@Laptop-su:~/GitHub/tf-faster-rcnn/data$ tar zxvf voc_
解压完如下图
创建⼀个⽂件夹和⼀个软链接以使⽤预训练模型
在tf-faster-rcnn根⽬录创建⼀个output⽂件夹并且在其中存放预训练模型的软链接,output⽂件夹中会在每次训练后存放训练好的模型
su@Laptop-su:~/GitHub/tf-faster-rcnn$ NET=res101
su@Laptop-su:~/GitHub/tf-faster-rcnn$ TRAIN_IMDB=voc_2007_trainval+voc_2012_trainval
su@Laptop-su:~/GitHub/tf-faster-rcnn$ mkdir -p output/${NET}/${TRAIN_IMDB}
su@Laptop-su:~/GitHub/tf-faster-rcnn$ cd output/${NET}/${TRAIN_IMDB}
su@Laptop-su:~/GitHub/tf-faster-rcnn/output/res101/voc_2007_trainval+voc_2012_trainval$ ln -s ../../../data/voc_2007_trainval+voc_2012_trainval ./defaul t
su@Laptop-su:~/GitHub/tf-faster-rcnn/output/res101/voc_2007_trainval+voc_2012_trainval$ cd ../../..
如下图
对⽰例图⽚的测试演⽰
上⾯的Res101⽹络预训练模型是已经经过imagenet和voc0712数据集训练好的,⽤demo来调⽤output⽂件夹下的该模型,展⽰其实际检测效果
注意切到tf-faster-rcnn的python环境下
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ GPU_ID=0
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。