目标检测—利用labelimg制作自己的深度学习目标检测数据集

目标检测—利用labelimg制作自己的深度学习目标检测数据集看了网上的xml转txt的博客很多上来就给代码,关于怎么用都不说,有的也用不了,所以这里自己写了一份代码

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

目录

1  labelimg介绍

2  labelimg的安装

3  使用labelimg

3.1 数据准备

3.2  标注前的一些设置

3.3 开始标注


1  labelimg介绍

  Labelimg是一款开源的数据标注工具,可以标注三种格式。

       1  VOC标签格式,保存为xml文件。

       2  yolo标签格式,保存为txt文件。

       3 createML标签格式,保存为json格式。

2  labelimg的安装

       这里主要讲的是在window系统中的安装,首先打开cmd命令行(快捷键:win+R)。进入cmd命令行控制台。输入如下的命令:

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

       运行如上命令后,系统就会自动下载labelimg相关的依赖。由于这是一个很轻量的工具,所以下载起来很快,当出现如下红色框框中的告诉我们成功安装的时候,说明labelimg安装成功了。

目标检测---利用labelimg制作自己的深度学习目标检测数据集

目标检测---利用labelimg制作自己的深度学习目标检测数据集

3  使用labelimg

3.1 数据准备

        首先这里需要准备我们需要打标注的数据集。这里我建议新建一个名为VOC2007的文件夹(这个是约定俗成,不这么做也行),里面创建一个名为JPEGImages的文件夹存放我们需要打标签的图片文件;再创建一个名为Annotations存放标注的标签文件;最后创建一个名为 predefined_classes.txt 的txt文件来存放所要标注的类别名称。

VOC2007的目录结构为:

├── VOC2007
│├── JPEGImages  存放需要打标签的图片文件
│├── Annotations  存放标注的标签文件
│├── predefined_classes.txt  定义自己要标注的所有类别(这个文件可有可无,但是在我们定义类别比较多的时候,最好有这个创建一个这样的txt文件来存放类别

3.2  标注前的一些设置

         首先在JPEGImages这个文件夹放置待标注的图片,这里是三类图片,分别是人、狗和猫。目标检测---利用labelimg制作自己的深度学习目标检测数据集

        然后再 predefined_classes.txt 这个txt文档里面输入定义的类别种类;如下图所示。

目标检测---利用labelimg制作自己的深度学习目标检测数据集

         打开cmd命令终端(快捷键:win+R)。进入到刚刚创建的这个VOC2007路径(这个很重要,涉及到能不能利用predefined_classes.txt 这个txt文件中定义的类别,我在这里卡了很久,一度以为不能显示txt文件中定义的类别是我安装有问题)。执行如图中的命令进入到VOC2007路径下(每个人的路径都不一样,按个人的路径去写)如下图所示:可以看到进入到相应的目录了。

 目标检测---利用labelimg制作自己的深度学习目标检测数据集

         输入如下的命令打开labelimg。这个命令的意思是打开labelimg工具;打开JPEGImage文件夹,初始化predefined_classes.txt里面定义的类。

labelimg JPEGImages predefined_classes.txt

          运行如上的命令就会打开这个工具;如下。 

目标检测---利用labelimg制作自己的深度学习目标检测数据集

        下面介绍图中的我们常用的按钮。         

 目标检测---利用labelimg制作自己的深度学习目标检测数据集待标注图片数据的路径文件夹,这里输入命令的时候就选定了JPEGImages。(当然这是可以换的)

目标检测---利用labelimg制作自己的深度学习目标检测数据集保存类别标签的路径文件夹,这里我们选定了Annotations文件夹。

目标检测---利用labelimg制作自己的深度学习目标检测数据集这个按键可以说明我们标注的标签为voc格式,点击可以换成yolo或者createML格式。

        点击View,会出现如图红色框框中的选项。最好和我一样把勾勾勾上。

        Auto Save mode:切换到下一张图的时候,会自动保存标签。

        Display Labels:会显示标注框和标签

        Advanced Mode:标注的十字架会一直悬浮在窗口。

目标检测---利用labelimg制作自己的深度学习目标检测数据集

 常用快捷键如下:

A:切换到上一张图片

D:切换到下一张图片

W:调出标注十字架

del :删除标注框框

Ctrl+u:选择标注的图片文件夹

Ctrl+r:选择标注好的label标签存在的文件夹

 3.3 开始标注

        由于我们设置标注的十字架一直在标注界面上,这就不需要我们按快捷键w,然后选定我们需要标注的对象。按住鼠标左键拖出框框就可以了。如下图所示,当我们选定目标以后,就会加载出来predefined_classes.txt  定义自己要标注的所有类别(如果类别多,是真的很方便,就不需要自己手打每个类别的名字了)。打好的标签框框上会有该框框的类别(图中由于颜色的原因不太清晰,仔细看会发现的)。然后界面最右边会出现打好的类别标签。打好一张照片以后,快捷键D,就会进入下一张,这时候就会自动保存标签文件(voc格式会保存xml,yolo会保存txt格式)。

目标检测---利用labelimg制作自己的深度学习目标检测数据集

         标签打完以后可以去Annotations 文件下看到标签文件已经保存在这个目录下。

目标检测---利用labelimg制作自己的深度学习目标检测数据集

 自此labelimg使用讲解就结束了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147722.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言xml配置文件换行的方法[通俗易懂]

    C语言xml配置文件换行的方法[通俗易懂]/options参数设定成XML_PARSE_NOBLANKS,否则的话是不会在结点后面添加回车的。/doc=xmlReadFile(docname,“UTF-8”,XML_PARSE_NOBLANKS);//读取xml文件时忽略空格/把xmlSaveFormatFile的format参数修改成1,否则在使用xmlReadFile打开的xml文件时,在生成的xml文件里是会把所有的结点都放到一行里显示。/xmlSaveFormatFile(docname,doc,1);以上内容

    2022年7月12日
    14
  • flask 教程_python flask快速入门与进阶

    flask 教程_python flask快速入门与进阶Flask入门基础教程Flask简介Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合

    2022年8月3日
    7
  • html完整网页实例简单_html简单网页代码解读

    html完整网页实例简单_html简单网页代码解读要完成一个网页的制作其实本质上是很简单的,本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,同样的也有js的动画效果,这个实例比较全面,有助于同学的学习。本实例仅供参考,其他行为自负。本实例分为四篇来观看。一共有一个HTML文件,三个css样式表,三个js,有16张图片。其中img里面的图片可以自行下载,或用本实例里面的图片。测试项目是建议大家用谷歌…

    2022年9月23日
    0
  • eclipse中svn操作详解

    eclipse中svn操作详解1、svn:原理是这样的svn服务器一般放在公共的服务器上,大家连这个服务器,在Eclipse上使用svn控件可以下载svn上的项目至本地,所以很多公司将开发要用到的代码都放在svn上,有同事来

    2022年7月2日
    22
  • JavaWeb:request.setAttribute()和session.setAttribute()的区别

    JavaWeb:request.setAttribute()和session.setAttribute()的区别在编写javaweb中的servlet层程序时,为了实现前后端的交互,我们通常会使用request.setAttribute()和session.setAttribute()保存一些信息,用于其他页面或者servlet的使用。本文主要介绍两者的区别。

    2022年10月16日
    0
  • python numpy 矩阵转置

    python numpy 矩阵转置记录下问题…常规用法如下:值得注意的是行向量转换成列向量或者列向量转换成行向量,注意矩阵的定义。

    2022年6月2日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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