Ubuntu+GPU+Tensorflow运行tf-faster-rcnn【光纤分类项目】
系统配置
我所使用的环境总体来说为:
- Ubuntu 18.04
- cuda 9.0
- cudnn 7.5.0
- python 3.6.7
- tensorflow 1.10.0
- gcc 4.8.5(tf-faster-rcnn不支持6以上版本的gcc)
文章图片
ubuntu系统配置
文章图片
显卡配置:GeForce GTX 1060
文章图片
显卡配置:GeForce GTX 1060
文章图片
屏幕截图
文章图片
屏幕截图
文章图片
Cuda版本9.0
文章图片
Cudnn版本7.5
文章图片
Python版本3.6.7
文章图片
Tensorflow版本1.10
文章图片
gcc版本4.8.5 Github代码链接
本文使用的代码:https://github.com/endernewton/tf-faster-rcnnDemo运行过程
官方代码:https://github.com/ShaoqingRen/faster_rcnn
半官方代码:https://github.com/rbgirshick/py-faster-rcnn
Faster-RCNN原文链接:https://arxiv.org/pdf/1506.01497.pdf
改进方案论文链接:https://arxiv.org/pdf/1702.02138.pdf
- 根据显卡更改下对应的计算单元:
修改tf-faster-rcnn/lib/setup.py中第130行的arch参数,比如我的显卡是1070,算力是6.1,所以是sm_61
显卡的算力可以查询下面网址: http://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
文章图片
参考 - 编译Cython
仍然在lib路径下,编译Cython模块(确保你已经安装了easydict,如果没有,pip install easydict):
make clean
make
cd ..
- 安装COCO API(代码需要API来访问COCO dataset)
这点按照GitHub的步骤走就ok:
cd data
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
cd ../../..
在执行git clone https://github.com/pdollar/coco.git 这个步骤时,终端报错:
文章图片
报错信息
查找资料发现修改下载方式-https改为ssh,把’ https://git.openwrt.org/feed/packages.git’改为’ git://git.openwrt.org/feed/packages.git’,即改为如下指令就可以成功执行:
git clone git://github.com/pdollar/coco.git
- 配置数据(按照py-faster-rcnn的说明,设置VOC和COCO数据集,这些步骤包括下载数据和在数据文件夹中创建可选的软链接)
- 下载训练集、验证集、测试集以及VOCdevkit
在想要存放数据集的位置打开终端,输入下列命令:
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
- 将所有压缩包解压到一个名为VOCdevkit的文件夹中
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar
- VOCdevkit文件夹应由如下构成
VOCdevkit/# development kit
VOCdevkit/VOCcode/# VOC utility code
VOCdevkit/VOC2007# image sets, annotations, etc.
... and several other directories ...
- 创建数据集的软连接
cd tf-faster-rcnn-master/data
ln -s $VOCdevkit VOCdevkit2007
- 下载预训练模型
需要翻墙,如果翻不了墙就从网盘里下吧,下面提供一个预训练模型的网盘链接:
预训练模型 提取码:8ahl
(感谢提供下载链接的无私可爱人er)
下载过后复制到data文件夹内对其进行解压:
tar zxvf voc_0712_80k-110k.tgz(在data文件夹中解压)
data文件夹解压之后如下图所示:
文章图片
data文件夹
- 创建一个文件夹和一个软链接以使用预训练模型
在tf-faster-rcnn根目录创建一个output文件夹并且在其中存放预训练模型的软链接,使用软连接来使用预训练模型,output文件夹中会在每次训练后存放训练好的模型,这里按照步骤走就行:
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 ../../..
- 对demo进行测试
上面的Res101网络预训练模型是已经经过imagenet和voc0712数据集训练好的,用demo来调用output文件夹下的该模型,展示其实际检测效果。仍然按照步骤走:
GPU_ID=0
CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py
最终效果如图所示:
文章图片
Demo.py效果图 使用训练好的faster模型对数据进行测试 这里有点地方需要改:首先把 tf-faster-rcnn/lib/datasets/voc_eval.py的第121行的
with open(cachefile,'w') as f
改成
with open(cachefile,'wb') as f
同时还要把第105行的
cachefile = os.path.join(cachedir, '%s_annots.pkl' % imagesetfile)
改成
cachefile = os.path.join(cachedir, '%s_annots.pkl' % imagesetfile.split("/")[-1].split(".")[0])
然后在tf-faster-rcnn根目录中输入下面命令:
GPU_ID=01
./experiments/scripts/test_faster_rcnn.sh $GPU_ID pascal_voc_0712 res101
结果如图所示:
文章图片
预训练模型测试结果 【Ubuntu+GPU+Tensorflow运行tf-faster-rcnn【光纤分类项目】】会在output文件夹下建立一个路径为:
/output/res101/voc_2007_test/default/res101_faster_rcnn_iter_110000/
的文件夹,res101代表网络名称,voc_2007_test代表数据集,与训练不同,该文件夹下不再是模型文件。
到此为止,所有步骤都成功的话则说明tf-faster-rcnn平台搭建完成!
推荐阅读
- 运行报错Cannot|运行报错Cannot find module '@babel/compat-data/corejs3-shipped-proposals’
- Python程序运行方式
- Flink总结-运行命令参数分析
- Android免Root|Android免Root 修改程序运行时内存指令逻辑(Hook系统函数)
- iOS-OC运行时
- 小知识点
- 2018年3月19日(星期一)如意区环境卫生综合整治提升精细化作业工作内容、青城驿站运行及整改情况(上)
- 【大型项目-电商平台】1.0|【大型项目-电商平台】1.0 互联网以及电商行业分析、项目搭建及运行
- systemctl接管下获取/设置linux运行级别
- 解决VScode终端管理员运行问题