LabelImg使用笔记

news2024/11/27 0:39:53

LabelImg使用笔记

文章目录

  • LabelImg使用笔记
    • 一、LabelImg简介
      • 1.1、特性
      • 1.2、LabelImg的热键
    • 二、LabelImg安装
    • 三、3种格式的使用
      • 3.1、VOC格式标注
      • 3.2、yolo格式标注
      • 3.3、json格式
    • 四、LabelMe 和 LabelImg适用场景

一、LabelImg简介

LabelImg 是一个用于图像标注的开源工具,它提供了一个用户友好的图形界面,用于手动标记图像中的物体或区域,并生成相应的标注文件。这个工具通常用于计算机视觉和机器学习项目中,尤其是目标检测任务。

1.1、特性

LableImg具备以下特性

  1. 支持多种表注格式(Pascal VOC 格式、YOLO 格式、COCO 格式)
  2. 跨平台支持: LabelImg 是一个跨平台的工具,可以在不同的操作系统上运行
  3. 支持快捷键: LabelImg 提供了一些快捷键,以加快标注的速度

如下图
在这里插入图片描述

1.2、LabelImg的热键

LabelImg的热键:

热键含义
Ctrl+S保存
Ctrl+d复制当前标签和矩形框
Ctrl+r更改默认注释目录(标签文件存放的位置)
Ctrl+u加载目录中的所有图像(鼠标点击Open dir)
w创建标注框(矩阵/三角)
d下一张
a上一张
delete删除选定的矩阵框
space将当前图像标记为已标记

二、LabelImg安装

说明:如果是有虚拟环境的,建议先创建一个虚拟环境,然后在安装LabelImg;如果不选择虚拟环境,默认为基础环境。

conda创建虚拟环境以及库的安装

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

安装如下图:

在这里插入图片描述

使用:打开cmd输入LabelImg/labelimg(大小写不做区分)

LabelImg

打开后,如下图所示:
在这里插入图片描述

快捷使用(自动保存)

在这里插入图片描述

三、3种格式的使用

3.1、VOC格式标注

如图:
在这里插入图片描述
保存后的标签文件xml格式:
图片大小、通道数、标签名称、选框位置的参数

<annotation>
	<folder>VOC2007</folder>
	<filename>000030.jpg</filename>
	<source>
		<database>The VOC2007 Database</database>
		<annotation>PASCAL VOC2007</annotation>
		<image>flickr</image>
		<flickrid>340039936</flickrid>
	</source>
	<owner>
		<flickrid>uma_tyan</flickrid>
		<name>?</name>
	</owner>
	<size>
		<width>500</width>
		<height>375</height>
		<depth>3</depth>
	</size>
	<segmented>0</segmented>
	<object>
		<name>bicycle</name>  
		<pose>Right</pose>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<bndbox>
			<xmin>36</xmin>
			<ymin>205</ymin>
			<xmax>180</xmax>
			<ymax>289</ymax>
		</bndbox>
	</object>
	<object>
		<name>person</name>
		<pose>Unspecified</pose>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<bndbox>
			<xmin>51</xmin>
			<ymin>160</ymin>
			<xmax>150</xmax>
			<ymax>292</ymax>
		</bndbox>
	</object>
	<object>
		<name>person</name>
		<pose>Frontal</pose>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<bndbox>
			<xmin>295</xmin>
			<ymin>138</ymin>
			<xmax>450</xmax>
			<ymax>290</ymax>
		</bndbox>
	</object>
</annotation>

3.2、yolo格式标注

在图形化界面中选择yolo的保存格式。如下图红框:

在这里插入图片描述

保存的文件:类别文件和坐标文件

在这里插入图片描述

3.3、json格式

在图形化工具选择对应的JSON格式

保存后的json文件文件:类别+坐标

[
  {
    "image": "000030.jpg",
    "annotations": [
      {
        "label": "person",
        "coordinates": {
          "x": 99.5,
          "y": 226,
          "width": 97,
          "height": 132
        }
      },
      {
        "label": "person",
        "coordinates": {
          "x": 372.5,
          "y": 214,
          "width": 161,
          "height": 156
        }
      },
      {
        "label": "bike",
        "coordinates": {
          "x": 108,
          "y": 247,
          "width": 148,
          "height": 84
        }
      }
    ]
  }
]

四、LabelMe 和 LabelImg适用场景

LabelMe 和 LabelImg 都是用于图像标注的工具,但它们有不同的特点和用途,可以根据具体需求来选择使用哪一个

LabelMe:

  • 用途LabelMe 主要用于复杂的图像标注任务特别适用于语义分割和实例分割任务。它允许用户创建像素级的标注,以标识图像中的对象、区域和物体。
  • 功能LabelMe 提供了丰富的交互式标注工具,包括绘制多边形、矩形或自定义形状的区域以进行复杂的标注。它支持多种标注文件格式,具有数据管理和协作功能。
  • 优点适用于实例分割复杂标注任务多人协作。能够创建详细的像素级标注。
  • 缺点对于简单的目标检测任务,可能显得过于复杂,因为它更专注于像素级标注

LabelImg

  • 用途LabelImg 主要用于目标检测任务特别适合创建边界框标注。它通常用于标记物体的位置和大小。
  • 功能: LabelImg 提供了简单而直观的图形用户界面,用户可以加载图像并使用矩形工具创建目标边界框。它支持多种标注文件格式,适用于单人标注任务
  • 优点适用于目标检测任务,界面简单易用,适合快速标注。
  • 缺点对于像素级标注或实例分割任务,功能较为有限。

如果你需要进行像素级标注实例分割或复杂标注任务,LabelMe可能更适合;而如果只需要进行目标检测任务,LabelImg提供了更简单的界面和功能来快速创建边界框标注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1177535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vuepress 打包后左侧菜单链接 404 问题解决办法

背景 上周看到一本开源书 《深入架构原理与实践》&#xff0c;是基于 vuepress 搭建的&#xff0c;下载了源码&#xff0c;本地部署了一下&#xff0c;本文记录如何打包该源码遇到的路径问题及思考。 结论&#xff1a; vuepress 插件的 sideBar 的菜单路径默认是相对 / 的&am…

Python学习笔记--类的继承

七、类的继承 1、定义类的继承 说到继承&#xff0c;你一定会联想到继承你老爸的家产之类的。 类的继承也是一样。 比如有一个旧类&#xff0c;是可以算平均数的。然后这时候有一个新类&#xff0c;也要用到算平均数&#xff0c;那么这时候我们就可以使用继承的方式。新类继…

牛客出bug(华为机试HJ71)

Hj71&#xff1a;字符串通配符 描述 问题描述&#xff1a;在计算机中&#xff0c;通配符一种特殊语法&#xff0c;广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。 要求&#xff1a; 实现如下2个通配符&#xff1a; *&#xff1a;匹配0个…

318. 最大单词长度乘积

318. 最大单词长度乘积 难度: 中等 来源: 每日一题 2023.11.06 给你一个字符串数组 words &#xff0c;找出并返回 length(words[i]) * length(words[j]) 的最大值&#xff0c;并且这两个单词不含有公共字母。如果不存在这样的两个单词&#xff0c;返回 0 。 示例 1&…

新版Helix QAC 100%覆盖MISRA C++:2023

Helix QAC 2023.3预期将100%覆盖在2023年第四季度发布的新的MISRA C:2023规则。 此外&#xff0c;该版本支持更多的C20语言特性&#xff0c;并改进了Perforce Validate平台和Helix QAC与Validate的集成&#xff0c;以及其他质量改进。 编码标准覆盖率&#xff08;MISRA C:202…

JDK设置编码格式UTF-8

Windows中安装的JDK默认编码格式是GBK 需要修改为UTF-8.在系统中添加系统变量 环境变量 变量名&#xff1a;JAVA_TOOL_OPTIONS 变量值&#xff1a;-Dfile.encodingUTF-8

UE问题盘点

打包后运行时应用程序崩溃 GPU崩溃&#xff08;Timed out waiting for RenderTread after 120.00 secs&#xff09; 分析&解决&#xff1a; 像素流送模式&#xff0c;部署机无显示器无分辨率所致&#xff08;接显示器或显卡欺骗器&#xff09;项目设置Targeted RHIs为Di…

七种事务传播行为,核心只有Required默认和required_new

事务的概念&#xff1a;当一个事务方法被另一个事务方法调用时&#xff0c;这个事务方法应该如何进行事务控制。 结论&#xff1a;一般情况下&#xff0c;你就用默认的把两个事务合并成一个事务&#xff0c;只有当写日志&#xff08;事物之间不互相影响&#xff09;的时候用req…

部署kubevirt教程

前提条件 已安装&#xff1a;kubernetes集群、kubectl、docker apt install -y qemu-kvm libvirt virt-install bridge-utils 【所有节点全部安装】 virt-host-validate qemu部署kubevirt 下载kubevirt-cr.yaml和kubevirt-operator.yaml 先执行&#xff1a; Kubectl apply …

大型企业效率革命:从数字化应用提升到信息化管理平台升级-亿发

数字化转型本质上是一场企业效率的革命&#xff0c;它以连接效率、数据效率和决策效率为核心。所有的转型活动都与人的参与和贡献紧密相关。因此&#xff0c;如何利用数字化手段提升全体员工的数字化应用能力&#xff0c;从而加速商业创新和实现高质量发展&#xff0c;成为管理…

Python武器库开发-常用模块之re模块(十八)

常用模块之re模块(十八) 在Python中需要通过正则表达式对字符串进⾏匹配的时候&#xff0c;可以使⽤⼀个python自带的模块&#xff0c;名字为re模块 我们可以在Python中使用以下的语句&#xff0c;导入re模块&#xff1a; import re正则表达式的大致匹配过程是&#xff1a; …

mybatis在springboot当中的使用

1.当使用Mybatis实现数据访问时&#xff0c;主要&#xff1a; - 编写数据访问的抽象方法 - 配置抽象方法对应的SQL语句 关于抽象方法&#xff1a; - 必须定义在某个接口中&#xff0c;这样的接口通常使用Mapper作为名称的后缀&#xff0c;例如AdminMapper - Mybatis框架底…

petalinux 2022.2 在 ubantu18.04 下的安装

下载 Ubuntu下载&#xff1a; https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso petalinux 下载&#xff1a; https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools/2022-2.html 安装虚拟机 安装…

leetcode2054

leetcode 2054 #include <iostream> #include <vector> #include <tuple> #include <algorithm>using namespace std;struct Event {// 时间戳int ts;// op 0 表示左边界&#xff0c;op 1 表示右边界int op;int val;Event(int _ts, int _op, int _v…

淘宝婴儿用品购买情况分析报告

一.分析背景和目的 随着购物网站的发展&#xff0c;人们的网络购物行为占比也快速增加。为了能够获取更多的用户&#xff0c;提升商家的销售量&#xff0c;需要从产品和用户不同的角度进行分析&#xff0c;进而得到有价值的信息&#xff0c;指导商家进行获客和营销。本文就以淘…

行情分析——加密货币市场大盘走势(11.6)

大饼昨日下跌过后开始有回调的迹象&#xff0c;现在还是在做指标修复&#xff0c;大饼的策略保持逢低做多。稳健的依然是不碰&#xff0c;目前涨不上去&#xff0c;跌不下来。 以太周五给的策略&#xff0c;入场的已经止盈了&#xff0c;现在已经达到1884&#xff0c;已经全部吃…

Qwt 使用QwtCompass绘制指南针

1.概述 QwtCompass是Qwt库中的一个类&#xff0c;用于绘制一个指南针样式的仪表盘。它是基于QwtDial类的衍生类&#xff0c;提供了一些额外的功能和样式&#xff0c;用于显示方向和角度。 以下是类继承关系&#xff1a; ​ 2.常用方法 void setScaleArc (double minArc, dou…

6张图让你了解openRA 下载及编译

下面的3张图是免费赠送的用vs解决方案编译的方法

C语言每日一题(24)回文素数题解

BC158 [NOIP1999]回文数 题目描述 若一个数&#xff08;首位不为零&#xff09;从左向右读与从右向左读都一样&#xff0c;我们就将其称之为回文数。 例如&#xff1a;给定一个10进制数56&#xff0c;将56加65&#xff08;即把56从右向左读&#xff09;&#xff0c;得到121是…

MoeCTF 2023 Reverse题解

Reverse入门指北 搜索main函数跟进 双击跟进aMoectfF1rstSt3 得到flag base_64 python反编译 - Online Tools 使用在线软件反编译 就是一个变换编码表的base64加密 直接用现有的工具解密 UPX! 查壳&#xff0c;加了UPX壳&#xff0c;直接用官网工具脱壳 打开字符串窗口&am…