linux 下faster rcnn入门三:训练自己的数据集

目录

一 数据处理

1 数据集

2 影像规则化命名

3生成txt文件

4 labelImg标记数据

二 代码修改

三评测显示


自制目标检测数据集链接数据集1数据集2数据集3

一 数据处理

1 数据集

想走一下数据标记的流程,从场景分类的数据源里,找了50张猫+50张飞机。将其制成voc2007格式,可参照博客https://blog.csdn.net/babyzbb636/article/details/100031102文件夹放置

2 影像规则化命名

如000000.jpg,新建name.py文件

import os
path = "/home/zbb/VOC2007"
filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹)
count=0
for file in filelist:
    print(file)
for file in filelist:   #遍历所有文件
    Olddir=os.path.join(path,file)   #原来的文件路径
    if os.path.isdir(Olddir):   #如果是文件夹则跳过
        continue
    filename=os.path.splitext(file)[0]   #文件名
    filetype=os.path.splitext(file)[1]   #文件扩展名
    Newdir=os.path.join(path,str(count).zfill(6)+filetype)  #用字符串函数zfill 以0补全所需位数
    os.rename(Olddir,Newdir)#重命名
    count+=1

3生成txt文件

VOC2007/ImageSets/Main需要四个生成trian.txt 、test.txt 、trainval.txt、 val.txt

#6:2:2 train val test 一般是55开,这里数据比较少

import os
import random
#6:2:2 train val test
trainval_percent = 0.8 # trainval数据集占所有数据的比例
train_percent = 6/8.0 # train数据集占trainval数据的比例
jpgfilepath = '/home/zbb/VOC2007/JPEGImages'
txtsavepath = '/home/zbb/VOC2007/ImageSets/Main'
total_jpg = os.listdir(jpgfilepath)

num=len(total_jpg)
list=range(num)
tv=int(num*trainval_percent)
tr=int(tv*train_percent)
trainval= random.sample(list,tv)
train=random.sample(trainval,tr)

ftrainval = open('/home/zbb/VOC2007/ImageSets/Main/trainval.txt', 'w')
ftest = open('/home/zbb/VOC2007/ImageSets/Main/test.txt', 'w')
ftrain = open('/home/zbb/VOC2007/ImageSets/Main/train.txt', 'w')
fval = open('/home/zbb/VOC2007/ImageSets/Main/val.txt', 'w')

for i in list:
    name=total_jpg[i][:-4]+'\n'
    if i in trainval:
      ftrainval.write(name)
      if i in train:
        ftrain.write(name)
      else:
        fval.write(name)
    else:
      ftest.write(name)

ftrainval.close()
ftrain.close()
fval.close()
ftest .close()

4 labelImg标记数据

labelImg配置参照博客https://blog.csdn.net/babyzbb636/article/details/100105444

标记数据流程:

此软件的使用方法

    类别默认:PascalVoc

    修改默认的XML文件保存位置,使用快捷键“Ctrl+R”,改为自定义位置,这里的路径一定不能包含中文,否则无法保存。

    源码文件夹中使用notepad++打开data/predefined_classes.txt,修改默认类别,比如改成person、car、motorcycle三个类别,这里注意修改后,重新编译打开,python labelImg.py

    “Open Dir”打开图片文件夹,选择第一张图片开始进行标注,使用“Create RectBox”或者“Ctrl+N”开始画框,单击结束画框,再双击选择类别。完成一张图片后点击“Save”保存,此时XML文件已经保存到本地了。点击“Next Image”转到下一张图片。

    标注过程中可随时返回进行修改,后保存的文件会覆盖之前的。

二 代码修改

   主要在demo.py,pascal_voc.py修改为自己的类别

详细见我之前的博客https://blog.csdn.net/babyzbb636/article/details/100031102,虽然是windows下修改位置相同。

三评测显示

详细见我上一篇的博客https://blog.csdn.net/babyzbb636/article/details/100122516

./tools/demo.py 需要修改类别数目,否则报错[4096,21]与 [4096,2]不对应

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值