基于TensorFlow复现Faster R-CNN

预先准备

  • 先到GitHub上clone相关文件

    git clone https://github.com/endernewton/tf-faster-rcnn.git
    
  • 根据GPU型号选择相应的Architecture(-arch),由于我是在服务器上操作,服务器的型号为GTX 1080,所以选择的Architecture是sm_61

    cd tf-faster-rcnn/lib
    vim setup.py
    

    在setup.py中找到arch,使arch = sm_61.

  • 构建Cython模块

    make clean
    make
    cd ..
    
  • 在tf-faster-rcnn/data中导入coco的PythonAPI(PythonAPI),如果选择的是VOC数据集,这一步骤就不需要了,因为这是为了接受coco数据集做准备的。

    cd data
    git clone https://github.com/pdollar/coco.git
    cd coco/PythonAPI
    make
    cd ../../..
    

数据集的准备

我使用的是来自官网的VOC数据集(当然这个数据集可以自己制作)。

aria2c -s 5 http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
aria2c -s 5 http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
aria2c -s 5 http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
  • 这里共涉及到三个压缩包,都需要下载。
  • aria是多线程下载,可以稍加速下载速度。当然,下载也可以使用wget + 网址。

下载完压缩包后,解压压缩包,解压结束后,三个文件夹中的内容会处于同一个文件夹中。

tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
tar -xvf VOCdevkit_08-Jun-2007.tar

预训练模型下载

由于GitHub中所给的预训练模型无法下载,我在其他网站上找到了一个resnet101的预训练模型。

aria2c -s 5 http://download.tensorflow.org/models/resnet_v1_101_2016_08_28.tar.gz
  • 这样下载的速度特别慢,可能这需要连接外网才能快速下载,所以我先用外网将模型下载到本地文件中,在将该压缩包上传至服务器中
  • 除了resnet101预训练模型,还可以下载vgg16预训练模型(vgg16模型下载网址
scp -r resnet_v1_101_2016_08_28.tar.gz username@服务器:文件名

上传后解压,将解压后的模型放至data文件夹中

mkdir -p data/imagenet_weights
cp resnet_v1_101.ckpt (对应路径名)data/imagenet_weights            --后一个用绝对路径
cd data/imagenet_weights
mv resnet_v1_101.ckpt res101.ckpt
cd ../..

设置软连接

在VOC数据集与下载的预训练模型之间设置软连接

cd data/
mkdir -p output/${res101}/${VOCdevkit}
cd output/${res101}/${VOCdevkit}
ln -s ../data/VOCdevkit ./default
cd ../..

开始训练

训练:

./experiments/scripts/train_faster_rcnn.sh [GPU_ID] [DATASET] [NET]
# Examples:
./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16
./experiments/scripts/train_faster_rcnn.sh 1 pascal_voc res101

测试与验证:

./experiments/scripts/test_faster_rcnn.sh [GPU_ID] [DATASET] [NET]
# Examples:
./experiments/scripts/test_faster_rcnn.sh 0 pascal_voc vgg16
./experiments/scripts/test_faster_rcnn.sh 1 pascal_voc res101

可以用tensorboard来可视化效果:

tensorboard --logdir=tensorboard/res101/voc_2007_trainval

总结

这篇博客中的步骤可以用来新手练习复现faster rcnn,这些步骤都很简单,很快就能实现。

主要是根据GitHub中的README进行一步步操作,省略了部分操作,以上为亲自实现过的操作步骤都很简单,很快就能实现。

GitHub链接:https://github.com/endernewton/tf-faster-rcnn

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值