用faster rcnn训练自己的数据集

本文详细介绍了如何构建数据集并使用py-faster-rcnn进行训练,包括创建目录结构、制作xml文件、下载并编译caffe、配置训练参数等步骤。

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

 

一、建立数据集

分为三个文件夹JPEGImages、annotations、ImageSets

 

1.JPEGImages 

存放图片,名称以6位数字+.jpg

2.Annotations

存放xml文件

3.ImageSets

存放trainval.txt train.txt val.txt test.txt,其中没有xml的文件不需要jpg

文件内格式为:

 jpg文件名名 xml文件名 

 

制作xml的文件为window的labelImg.exe

 

二、下载py-faster-rcnn编译

编译caffe

首先进入py-faster-rcnn\caffe-fast-rcnn

执行

 cp Makefile.config.example Makefile.config

配置好Makefile.config文件后执行

make -j8 && make pycaffe
cd ../lib
make -j4

 

三、更改文件

 1.修改lib/fast_rcnn/config.py

__C.DATA_DIR = osp.abspath(osp.join('')) #dataset的地址

__C.MODELS_DIR = osp.abspath(osp.join(__C.ROOT_DIR, 'models', 'usb')) #在model下新建文件夹,可以将pascal_voc拷贝重新命名

2.修改 experients/scripts处文件

在这里用的是交替训练,即更改faster_rcnn_alt_opt.sh文件

在case $DATASET in处添加代码

usb)
    TRAIN_IMDB="usb_2018_trainval"
    TEST_IMDB="usb_2018_test"
    PT_DIT="usb"
    ITERS=40000
    ;;

3.修改lib/datasets处文件

  • 修改factory.py

在最开始加上

from datasets.usb import usb

中间加上

#Set up usb_<year>_<split>
for year in ['2018']:
    for split in ['trainval', 'test']:
        name = 'usb_{}_{}'.format(year,split)
        __sets[name] = (lambda split=split,year=year: usb(split,year))

修改usb.py(将pascal_voc.py复制成usb.py)

class usb(imdb):

imdb.__init__(self,'usb_'+image_set)

self._classes = ['_background_','flaw'] #改成background加其他自己的分类

image_set_file = os.path.join(self._data_path, ' ')

4.修改tools/train_net.py

在文件最下面加上args.num_class的个数

 

四、修改训练里的参数

参考地址

 

五、开始训练

./experients/scripts/faster_rcnn_alt_opt.sh 0 ZF usb

另外

1.修改anchor

在/lib/rpn/generate_anchors.py中,如果不需要改变anchor数量,而只是简单改变scales和ratios,直接改generate_anchors函数的默认值就好,比如把base_size改为8或者把scales该为2**np.arrage(2,5),都可以把基础尺度减少为64, 128, 256。ratios也可以根据需要这样改。

参考地址:链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值