caffe模型RefineDet,SSD自己制作数据的问题

网上有很多制作数据集的样式,但是忽略了一些问题,或者不够清晰。

目录

第一步:拷贝文件

第二步:更改labelmap_voc.prototxt

第三步:更改Create_list.sh

 可能出现的错误注意:当生成的trainval和test文件出现换行错误的时候,是因为我们在windows生成的VOC的ImageSets/Main/train.txt和ImageSets/Maintest.txt等文件时,在unix或者linux下多了回车

第四步:更改Create_data.sh


第一步:拷贝文件

把自己VOC数据格式的文件放在data/VOCdevkit/VOC2007这个目录下,同时把data/VOC0712文件下的Create_list.sh,Create_data.sh和labelmap_voc.prototxt三个文件拷贝到data/VOCdevkit/VOC2007下。

第二步:更改labelmap_voc.prototxt

保留背景,添加你数据集中的类别。

第三步:更改Create_list.sh

 

更改:

        root_dir,因为root放的是你的数据集的路径

        for name in VOC2007,因为此时我们只用了2007这个数据集

 可能出现的错误注意当生成的trainval和test文件出现换行错误的时候,是因为我们在windows生成的VOC的ImageSets/Main/train.txt和ImageSets/Maintest.txt等文件时,在unix或者linux下多了回车

Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回 车>”,即“\n\r”。一个直接后果是,Unix系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。

 出现以上错误,我们需要增加一个删除换行的批处理代码。

sed -i  "s/\r//"  $img_file

然后运行 sh create_list.sh会生成三个文件trainval.txt,test.txt 和test_name_size.txt。而且换行问题解决了。如果没有生成这三个文件更改create_data也是不行的。

trainval.txt和test.txt文件里面放的是jpg和xml的相对路径。

 

test_name_size.txt文件里面放的是图像序号和图像长宽。

 

第四步:更改Create_data.sh

1.root_dir 更改为当前代码的路径(根路径)

2.data_root_dir 更改为当前数据的根路径

3.dataset_name 更改为2007,不是VOC0712

4.mapfile的路径中插入VOCdevkit,这是文件labelmap_voc.prototxt的路径,

    因为root_dir=/media/data/hjr/RefineDet,dataset_name=VOC2007,

    labelmap_voc.prototxt的路径为:

    /media/data/hjr/RefineDet/data/VOCdevkit/VOC2007/labelmap_voc.prototxt

    所以要插入/VOCdevkit

5. python 改为 python2.7,这是因为我的caffe环境是采用python2.7进行编译的。原版代码好像也是2.7编译的。

6. 在/data之后插入/VOCdevkit

7.至于长宽我都没有更改,程序里面自己会更改。

其实上面所有的更改都是为了找到相应的文件,如果报错某一个文件找不到,你只需要进行检查路径是否合理就可以。

然后运行sh create_data.sh即可。

 生成的数据集会在examples/VOC2007文件夹下。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值