• LabelImg使用笔记


    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 #安装
    
    • 1

    安装如下图:

    在这里插入图片描述

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

    LabelImg
    
    • 1

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

    快捷使用(自动保存)

    在这里插入图片描述

    三、3种格式的使用

    3.1、VOC格式标注

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

    <annotation>
    	<folder>VOC2007folder>
    	<filename>000030.jpgfilename>
    	<source>
    		<database>The VOC2007 Databasedatabase>
    		<annotation>PASCAL VOC2007annotation>
    		<image>flickrimage>
    		<flickrid>340039936flickrid>
    	source>
    	<owner>
    		<flickrid>uma_tyanflickrid>
    		<name>?name>
    	owner>
    	<size>
    		<width>500width>
    		<height>375height>
    		<depth>3depth>
    	size>
    	<segmented>0segmented>
    	<object>
    		<name>bicyclename>  
    		<pose>Rightpose>
    		<truncated>0truncated>
    		<difficult>0difficult>
    		<bndbox>
    			<xmin>36xmin>
    			<ymin>205ymin>
    			<xmax>180xmax>
    			<ymax>289ymax>
    		bndbox>
    	object>
    	<object>
    		<name>personname>
    		<pose>Unspecifiedpose>
    		<truncated>0truncated>
    		<difficult>0difficult>
    		<bndbox>
    			<xmin>51xmin>
    			<ymin>160ymin>
    			<xmax>150xmax>
    			<ymax>292ymax>
    		bndbox>
    	object>
    	<object>
    		<name>personname>
    		<pose>Frontalpose>
    		<truncated>0truncated>
    		<difficult>0difficult>
    		<bndbox>
    			<xmin>295xmin>
    			<ymin>138ymin>
    			<xmax>450xmax>
    			<ymax>290ymax>
    		bndbox>
    	object>
    annotation>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57

    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
            }
          }
        ]
      }
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    四、LabelMe 和 LabelImg适用场景

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

    LabelMe:

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

    LabelImg

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

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

  • 相关阅读:
    有线热电偶温度验证系统
    [PyTorch][chapter 55][GAN- 3]
    基于B/S架构,包括PC后台管理端、APP移动端、可视化大屏端的智慧工地源码
    在 Next.js App目录中使用 Code Hike
    计算机中CPU、内存、缓存的关系
    判断当前时间是否在指定时间区间(时间段)内
    JAVA Calender获取当前日期的前一天
    Vivado仿真数据出错
    ECCV2022 Oral | MaskCLIP
    GB28181视频监控国标平台EasyGBS如何更流畅进行接口调用?操作指南来了
  • 原文地址:https://blog.csdn.net/weixin_46625488/article/details/134250484