Labelimg制作数据集「建议收藏」

Labelimg制作数据集「建议收藏」Labelimg制作数据集1、安装labelimg①下载源码自行安装,安装步骤参考搜索文章下载地址:https://github.com/tzutalin/labelImg②下载打包版直接运行,Windows和Linux平台可用,无需编译下载地址:http://tzutalin.github.io/labelImg/2、图片标注①仿照VOC2007在py-faster-rc…

大家好,又见面了,我是你们的朋友全栈君。

Labelimg制作数据

1、 安装labelimg

① 下载源码自行安装,安装步骤参考搜索文章

下载地址:https://github.com/tzutalin/labelImg

② 下载打包版直接运行,Windows和Linux平台可用,无需编译

下载地址:https://tzutalin.github.io/labelImg/

2、 图片标注

① 仿照VOC2007在py-faster-rcnn-master\data目录下新建文件夹“VOCdevkit2007”,在VOCdevkit2007\VOC2007目录下新建如图5个文件夹(前3个必须有)。JPEGImages存放训练图片,Annotations存放使用labelimg标注图片后生成的.xml文件,ImageSets中新建Main文件夹。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
② 使用打包版labelimg时直接打开labelImg.exe,先点击“Change Save Dir”修改保存路径为文件夹Annotations(路径不能包含中文)。使用notepad++打开data文件夹中的predefined_classes.txt,修改分类的类别。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述打开需要标记的图片文件夹JPEGImages,Ctrl+u
在这里插入图片描述修改保存路径(.xml文件夹)为Annotations,Ctrl+r
在这里插入图片描述标注ROI区域填写标签,w:开始画框
在这里插入图片描述保存.xml文件,有弹框提醒,Ctrl+s

d: 下一张

a: 上一张

del: 删除画的框

Ctrl++: 图片放大

Ctrl–: 图片缩小

↑→↓←: 对框进行移动

Ctrl+d: 复制当前框的标签和框

③ 文件夹JPEGImages中的图片命名格式要求为“xxxxxx.jpg”,从000000.jpg开始,图片重命名代码以Python为例,可参考:https://blog.csdn.net/u011574296/article/details/72956446

import os
path = "F:\caffe\py-faster-rcnn-master\data\VOCdevkit\VOC2007\JPEGImages"
filelist = os.listdir(path) # 该文件夹下所有的文件(包括文件夹)
count=0 # 编号从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

使用代码在ImageSets\Main目录下生成test.txt(测试集)、train.txt(训练集)、val.txt(验证集)、trainval.txt(训练验证集,由train.txt和val.txt组成)。VOC2007中, test大概是整个数据集的50%,trainval是整个数据集剩下的50%;train大概是trainval的50%,val是trainval剩下的50%。所占比例可在代码中修改,以Python为例(其中trainval是整个数据集的70%):
在这里插入图片描述

import os
import random

trainval_percent = 0.7   # trainval占总数的比例
train_percent = 0.5   # train占trainval的比例
xmlfilepath = r'F:\caffe\py-faster-rcnn-master\data\VOCdevkit2007\VOC2007\Annotations'
txtsavepath = r'F:\caffe\py-faster-rcnn-master\data\VOCdevkit2007\VOC2007\ImageSets\Main'
total_xml = os.listdir(xmlfilepath)

num = len(total_xml)
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(txtsavepath + r'\trainval.txt', 'w')
ftest = open(txtsavepath + r'\test.txt', 'w')
ftrain = open(txtsavepath + r'\train.txt', 'w')
fval = open(txtsavepath + r'\val.txt', 'w')

for i in list:
    name = total_xml[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()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149449.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C#winForm窗体美化

    C#winForm窗体美化【前言】IrisSkin是为MicrosoftVisualStudiodotNET开发的最易用的界面增强dotNET(WinForm)组件包。它能完全自动的为您的应用程序添加支持换肤功能。 【正文】添加IrisSkin4.DLL文件网上的教程有很多,这里就不再次赘述了,推荐一篇比较好的博客添加与使用教程 窗体代码如下 publicForm…

  • executescalar mysql_ExecuteScalar[通俗易懂]

    executescalar mysql_ExecuteScalar[通俗易懂]这两个答案和一点点思考使我想到了一个接近答案的东西。首先再澄清一下:该应用程序是用C#(2.0+)编写的,并使用ADO.NET与SQLServer2005进行通信。镜像设置是托管主体和镜像的两个W2k3服务器以及托管作为监视器的快速实例的第三个服务器。这样做的好处是,故障转移对于使用数据库的应用程序几乎是透明的,它将对某些连接引发错误,但从根本上讲一切都会很好地进行。是的,我们得到了奇怪的误报…

  • 【手把手】制作一个简单的HTML网页

    【手把手】制作一个简单的HTML网页新建一个html文件:我要给body添加一些样式,就在head元素上挂载一个style元素。然后,写样式表:效果:这样的话,我们就可以看到body部分了。现在,我给body添加一点padding。页面上看不出区别,让我们打开F12,看一下现在的body变成了什么样子。示意图:从图中可以看出,body元素分为三层,最里面的一层,就是520×500的那部分,这个叫做内部真实空间,也就是说,你可以在里面添加其他元素,比如div元素,p元素,a元素等等。然后中间的一层就是paddin

  • Excel VBA宏编程入门(五)——用户交互[通俗易懂]

    Excel VBA宏编程入门(五)——用户交互[通俗易懂]目录任务介绍选择文件夹选择文件保存路径交互选择一列交互选择一行任务介绍VBA编程中,为了程序的灵活性,有时候需要用到用户交互操作,例如让用户选择一个文件夹,用户选择一个单元格等等。本文将介绍一些常用的用户交互操作的实现选择文件夹St=Application.FileDialog(msoFileDialogFolderPicker).Show’如果选择了文件夹就返回-1,不选择文件夹就返回0IfSt<>0ThenfileDir=Application.File

  • 两数之和 II – 输入有序数组(Java实现)

    两数之和 II – 输入有序数组(Java实现)给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值index1和index2,其中index1必须小于index2。

  • es6延展操作符_一行代码实现数组去重

    es6延展操作符_一行代码实现数组去重es6之扩展运算符三个点(…)es6之扩展运算符三个点(…)对象的扩展运算符数组的扩展运算符总结es6之扩展运算符三个点(…)对象的扩展运算符理解对象的扩展运算符其实很简单,只要记住一句话就可以:对象中的扩展运算符(…)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中letbar={a:1,b:2};letbaz={…z};/…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号