SSD框架训练自己的数据集

SSD框架训练自己的数据集(一)

在这里声明一下,我是在windows系统上安装数据标注助手对图片进行标注,没有在Ubuntu下安装labelImg,亲测这方法是可行的。

数据集的转换

caffe训练使用LMDB格式的数据,ssd框架中提供了voc数据格式转换成LMDB格式的脚本.
(一) VOC数据格式
用到三个文件夹:

  1. Annotations:保存的是xml格式的lable信息,删除路径标签,修改folder标签值。

  2. ImageSet目录下的Main目录(自己建立的)存放的是用来表示训练的图片集和训练集。共四个文件:
    —train.txt 用来训练的图片文件的文件列表(一般来说比测试集多,其实就是将图片的后缀名去掉,根据比重随机生成的一定数量的数据集信息)
    —val.txt:用来验证图片文件的文件名列表
    — trianval.txt是用来训练和验证的图片文件的文件名列表
    —test.txt 是用来测试的图片文件的文件名列表
    我们可以写个python程序,直接生成这四个文件,具体的代码网上很多(你可以根据自己数据集的实际情况修改训练和测试集的比例),就不累述了。

  3. JPEGImages目录下存放所有图片集
    (二) 将VOC数据转换为LMDB数据
    SSD提供了VOC数据到LMDB数据的转换脚本。./data/VOC0712/create_list.sh 和 ./data/VOC0712/create_data.sh,这两个脚本是完全针对VOC0712目录下的数据进行的转换。
      将放置数据集的文件夹名称改为freckles,则pwd全路径为: $HOME/data/VOCdevkit
      根据自己的数据集,对应修改上述的两个脚本文件内容,可以采用gedit打开,或者在目录上打开终端输入gedit命令打开。修改的内容如下:
     
    [create_list.sh]
    for name in VOC2007 VOC2012 --> for name in freckles

    [create_data.sh]
    由于我的是无法获取当前文件夹所在的根目录,即出现该文件中的第一行无法编译,以至于找不到.py文件运行。我使用的了绝对路径的方式进行修改,大家遇到此类问题,也可以采用此方法及逆行解决。

    [labelmap_voc.prototxt]
    将该文件中的类别修改成和自己的数据集相匹配
    完成上面步骤的修改后,可以开始LMDB数据数据的制作,在 C A F F E R O O T 目 录 下 分 别 运 行 : . / d a t a / i n d o o r / c r e a t e l i s t i n d o o r . s h . / d a t a / i n d o o r / c r e a t e d a t a i n d o o r . s h 命 令 执 行 完 毕 后 , 可 以 在 CAFFE_ROOT目录下分别运行: ./data/indoor/create_list_indoor.sh ./data/indoor/create_data_indoor.sh 命令执行完毕后,可以在 CAFFEROOT./data/indoor/createlistindoor.sh./data/indoor/createdataindoor.shCAFFE_ROOT/indoor目录下查看转换完成的LMDB数据数据。
    (三) 使用SSD进行自己数据集的训练
    训练时使用ssd models中提供的预训练好的VGGnet model : VGG_ILSVRC_16_layers_fc_reduced.caffemodel
    将该模型保存到$CAFFE_ROOT/models/VGGNet下。
    将ssd_pascal.py复制一份,根据自己的数据集修改副本
    主要修改点:
    (1)train_data和test_data修改成指向自己的数据集LMDB
       train_data = “examples/VOC0712/trainval_lmdb”
    test_data = “examples/VOC0712/test_lmdb”
    注意:如果文件或者文件夹上面有锁头的标志,说明没有访问权限,要使用sudo chmod -R 777 路径(文件夹或文件)获取权限。
    (2) num_test_image该变量修改成自己数据集中测试数据的数量
    (3)num_classes 该变量修改成自己数据集中 标签类别数量数 + 1
    训练命令:
    python examples/ssd/ssd_pascal_indoor.py
    后续我会整理下,在训练过程中出现的问题以及相应的解决方法。大家也可以参考以下链接:https://blog.csdn.net/a8039974/article/details/79836564

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值