制作自己的数据集完整过程(按照VOC格式)

本文按照VOC数据集的格式,制作出自己的数据集,此外介绍一款使用方便且能够标注多类别并能直接生成xml文件的标注工具——labelImg工具。

VOC数据集的介绍:https://blog.csdn.net/tttabcgy/article/details/80191889
Ubuntu源码安装

由于Ubuntu系统自带python,这款软件在Ubuntu环境下的安装是最方便的。软件要求python版本在2.6以上,同时需要PyQt和lxml的支持。
(1)下载代码

git clone https://github.com/tzutalin/labelImg

 
( 2 )安装Python3+QT5(github上的安装步骤太慢 ,可以使用下面的代码)

1 安装:

    sudo apt-get install pyqt5-dev-tools
    sudo pip3 install lxml# 安装lxml,如果报错,可以试试下面语句
    sudo apt-get install python-lxml

2 打开终端,进入LabelImg目录后使用make编译:

    cd LabelImg
    make all

3 使用

在labelImg目录下使用终端执行

python3 labelImg.py

(3)建立自己的文件

按照VOC格式建立3个文件夹,Annotataions里是要放生成的XML文件,ImageSets里再建立Main文件,Main文件要放入生成的四个text文件,IPEGImages放入自己要图片,格式是000001.jpg。

(4)labelimg窗口的使用方法:(运行 python3  labelImg.py会出现画图窗口)

    “Open Dir”打开需要标注的样本图片文件夹,会自动打开第一张图片,开始进行标注。
    使用“Create RectBox”开始画框。
    完成一张图片后点击“Save”,此时XML文件要保存到Annotations中。
    点击“Next Image”转到下一张图片。
    标注过程中可随时返回进行修改,后保存的文件会覆盖之前的。
    完成标注后打开XML文件,发现确实和PASCAL VOC所用格式一样。此外,还可以转换成yolo格式的(点击PASCAL VOC切换)。

注意:

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

• 源码文件夹中使用notepad++打开data/predefined_classes.txt,可以修改默认类别,比如改成bus、car、building三个类别。

类别名称请用小写字母。(pascal.py中读取.xml文件的类别标签的代码:cls = self._class_to_ind[obj.find('name').text.lower().strip()]写的只识别小写字母,如果你的标签含有大写字母,可能会出现KeyError的错误)

 

•每个图片和标注得到的xml文件,JPEGImages文件夹里面的一个训练图片,对应Annotations里面的一个同名XML文件,一 一 对应,命名一致。

此时,Annotations里面的已经自动保存XML文件。

然后就是搞定ImageSets文件夹中的Main文件夹中的四个文件。如下面代码:

    import os
    import random
     
    trainval_percent = 0.66
    train_percent = 0.5
    xmlfilepath = '/media/lee/data/xm/labelImg/RS2018/Annotations'
    txtsavepath = '/media/lee/data/xm/labelImg/RS2018/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('/media/lee/data/xm/labelImg/RS2018/ImageSets/Main/trainval.txt', 'w')
    ftest = open('/media/lee/data/xm/labelImg/RS2018/ImageSets/Main/test.txt', 'w')
    ftrain = open('/media/lee/data/xm/labelImg/RS2018/ImageSets/Main/train.txt', 'w')
    fval = open('/media/lee/data/xm/labelImg/RS2018/ImageSets/Main/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()

只要把上面出现的所有路径换成自己的路径就可以运行。运行成功后就可以发现Main文件夹中出现了四个文件。

到此,制作数据集结束。可以进行下一步训练。

参考的文章:

https://blog.csdn.net/cgt19910923/article/details/80211220

https://blog.csdn.net/u011574296/article/details/78953681

https://blog.csdn.net/tsq292978891/article/details/78720157

https://blog.csdn.net/jesse_mx/article/details/53606897

https://blog.csdn.net/xunan003/article/details/78720189

https://github.com/tzutalin/labelImg
————————————————
版权声明:本文为CSDN博主「weixin_38385446」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38385446/article/details/81081172

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
遥感数据制作VOC数据集是一种将遥感图像数据转化为VOC数据集格式过程VOC数据集是一种常用的目标检测识别数据集格式,适用于训练深度学习模型进行目标检测任务。 首先,需要收集大量的遥感图像数据,可以通过航拍、卫星遥感等方式获取。这些图像数据应涵盖各种地物、场景和目标。 接下来,需要对这些遥感图像进行标注。标注包括两个主要步骤:目标框标注和类别标注。 目标框标注是指在遥感图像中确定目标物体的位置和边界框。可以使用标注工具(如LabelImg)手动框选目标物体,并记录目标框的坐标信息。 类别标注是对每个目标框指定一个类别标签。遥感图像中可能存在多种目标物体,如车辆、建筑物、道路等。针对每个目标框,可以手动选择适当的类别标签(如"car"、"building"、"road"等)。 完成标注后,需要将标注信息转化为VOC数据集格式VOC数据集格式包括图像文件、标注文件和类别文件。图像文件保留原始的遥感图像,标注文件记录每个目标框的位置和类别信息,类别文件记录所有可能的类别标签。 最后,通过使用相关工具(如LabelImg)对VOC数据集进行校验和修改,确保数据集的质量和准确性。可以检查每个目标框的位置是否正确,并删除不准确或冗余的标注。 通过以上步骤,就能够制作出一份基于遥感数据的VOC数据集,可以用于训练目标检测模型,提高遥感图像的自动识别和分析能力,应用于航空、农林、智能交通等领域。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值