一、下载项目代码
git clone https://gitee.com/yunyao01/tf-faster-rcnn.git
二、根据不同类型的显卡设置Architecture
cd tf-faster-rcnn/lib
# Change the GPU architecture (-arch) if necessary
vim setup.py #修改第130行
GPU model | Architecture |
---|---|
TitanX (Maxwell/Pascal) | sm_52 |
GTX 960M | sm_50 |
GTX 1080 (Ti) | sm_61 |
GTX 2080 (Ti) | sm_75 |
Grid K520 (AWS g2.2xlarge) | sm_30 |
Tesla K80 (AWS p2.xlarge) | sm_37 |
三、下载预训练模型
3.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 ../..
3.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 ../..
四、自己训练数据的准备(以安全帽数据集为例)
4.1 使用labelImg标注自己的图像数据,生成xml文件
数据存放结构如下,当需要换成自己的数据集时,只要替换JPEGImages和Annotations里的文件.
4.2 训练集、验证集、测试集生成
运行以下代码:
cd data/VOCdevkit2007/voc2007/
python data_prepare.py #注意:可根据情况修改代码里的训练集比例
运行结束后,会在ImageSets文件夹下生成4个txt文件,每个文件代表意思如下:
五、代码修改
5.1 修改 lib/datatsets/pascal_voc.py
替换成自己的检测类别:
5.2 修改 lib/datasets/imdb.py
5.3 修改 tools/demo.py
六、参数调整
6.1 experiments/scripts/train_faster_rcnn.sh
修改训练迭代次数
七、训练运行
./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16