美文网首页人工智能TensorFlow
Ubuntu+GPU+Tensorflow运行tf-faster

Ubuntu+GPU+Tensorflow运行tf-faster

作者: 冬天都会过去 | 来源:发表于2020-09-03 23:02 被阅读0次

    系统配置

    我所使用的环境总体来说为:

    1. Ubuntu 18.04
    2. cuda 9.0
    3. cudnn 7.5.0
    4. python 3.6.7
    5. tensorflow 1.10.0
    6. 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-rcnn
    官方代码: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

    Demo运行过程

    1. 根据显卡更改下对应的计算单元:
      修改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/
      参考
    2. 编译Cython
      仍然在lib路径下,编译Cython模块(确保你已经安装了easydict,如果没有,pip install easydict):
        make clean
        make
        cd ..
    
    1. 安装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
    
    1. 配置数据(按照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
    
    1. 下载预训练模型
      需要翻墙,如果翻不了墙就从网盘里下吧,下面提供一个预训练模型的网盘链接:
      预训练模型 提取码:8ahl
      (感谢提供下载链接的无私可爱人er)
      下载过后复制到data文件夹内对其进行解压:
        tar zxvf voc_0712_80k-110k.tgz(在data文件夹中解压)
    

    data文件夹解压之后如下图所示:


    data文件夹
    1. 创建一个文件夹和一个软链接以使用预训练模型
      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 ../../..
    
    1. 对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
    

    结果如图所示:

    预训练模型测试结果

    会在output文件夹下建立一个路径为:
    /output/res101/voc_2007_test/default/res101_faster_rcnn_iter_110000/
    的文件夹,res101代表网络名称,voc_2007_test代表数据集,与训练不同,该文件夹下不再是模型文件。

    到此为止,所有步骤都成功的话则说明tf-faster-rcnn平台搭建完成!

    相关文章

      网友评论

        本文标题:Ubuntu+GPU+Tensorflow运行tf-faster

        本文链接:https://www.haomeiwen.com/subject/sulfsktx.html