我的第一个tf-faster-rcnn训练程序(demo+voc2007数据训练)

本文详细介绍了在Linux环境下,使用TensorFlow和CPU进行Faster R-CNN模型训练的全过程,包括系统配置、克隆代码、修改代码以适应CPU、获取初始权重、下载和处理VOC2007数据集、建立预训练模型的软链接、修改训练脚本、解决运行中遇到的问题等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 本人系统配置:
  LINUX+python3.6+tensorflow+cpu
  (主要参考:https://blog.youkuaiyun.com/char_QwQ/article/details/80980505)
  
2. 克隆代码
git clone https://github.com/endernewton/tf-faster-rcnn.git

3. 根据显卡或cpu更改对应的架构
(参考:https://blog.youkuaiyun.com/sinat_33486980/article/details/81045315)
  3.1修改lib/model/nms_wrapper.py:
按照图中箭头所指示的地方,将代码注释,作用就是为了直接禁用掉GPU模式
在这里插入图片描述  3.2lib/setup.py
在这里插入图片描述在这里插入图片描述在这里插入图片描述   3.3将USE_GPU_NMS 由原来的True改为False
在这里插入图片描述
4. 编译Cython
  仍然在lib路径下,编译Cython模块(确保你已经安装了easydict,如果没有,pip install easydict):
1 make clean
2 make
3 cd …

5. 获取网络模型初始权重
在根目录下打开终端,输入以下命令:

(1)如果是使用VGG16模型
mkdir -p data/imagenet_weights
cd data/imagenet_weights
wget -v http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz
tar -xzvf vgg_16_2016_08_28.tar.gz
mv vgg_16.ckpt vgg16.ckpt
cd …/…

(2)如果是Resnet101模型

mkdir -p data/imagenet_weights
cd data/imagenet_weights
wget -v http://download.tensorflow.org/models/resnet_v1_101_2016_08_28.tar.gz
tar -xzvf resnet_v1_101_2016_08_28.tar.gz
mv resnet_v1_101.ckpt res101.ckpt
cd ../..

6. 下载数据:
  6.1Download the training, validation, test data and VOCdevkit
1 wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
2 wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
3 wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
  6.2Extract all of these tars into one directory named VOCdevkit
1 tar xvf VOCtrainval_06-Nov-2007.tar
2 tar xvf VOCtest_06-Nov-2007.tar
3 tar xvf VOCdevkit_08-Jun-2007.tar
  6.3t should have this basic structure
在这里插入图片描述  6.4Create symlinks for the PASCAL VOC dataset
1 cd $FRCN_ROOT/data
2 ln -s $VOCdevkit VOCdevkit2007
#或者直接重命名,直接把VOCdevkit文件夹拷贝到tf-fater-rcnn/data路径下,并重命名为VOCdevkit2007

7.下载预训练模型
  需要翻墙,如果翻不了墙就从网盘里下吧,我存网盘了。链接:预训练模型 密码:8ahl
  解压得到四个文件

8. 建立预训练模型的软连接
  在tf-faster-rcnn目录下建立output文件夹,并使用软连接来使用预训练模型,这里按照步骤走就行,没啥问题:
1 NET=res101
2 TRAIN_IMDB=voc_2007_trainval+voc_2012_trainval
3 mkdir -p output/ N E T / {NET}/ NET/{TRAIN_IMDB}
4 cd output/ N E T / {NET}/ NET/{TRAIN_IMDB}
5 ln -s …/…/…/voc_2007_trainval+voc_2012_trainval ./default
6 cd …/…/…
在这里插入图片描述在这里插入图片描述

9. 修改lib/model/trainval_net.py
修改第50行,default
在这里插入图片描述

10. 对一些图片进行测试
仍然按步骤走:tools/demo.py要修改一句代码:第120行路径改为绝对路径,不然会报错
(在Spyder运行即可,可跳过下面代码)
 
(1 GPU_ID=0
  2 CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py)

运行过程中会提示缺少很多模块,依据提示用 pip install $$$ 安装即可

11.使用训练好的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])

然后在文件根目录下运行训练代码即可:
  ./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16

12. 遇到的问题
在这里插入图片描述解决方式:
(参考:https://blog.youkuaiyun.com/weixin_39970417/article/details/80576252)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值