Labelimg图像标注入门教程:新手快速上手指南

前言

本教程主要面向初次使用 labelimg 的新手,详细介绍了如何在 Windows 上通过 Anaconda 创建和配置环境,并使用 labelimg 进行图像标注。

1. 准备工作

  • 在开始本教程之前,确保已经安装了 Anaconda。可以参考我之前的教程了解 Anaconda 的下载与安装:一步步教你在 Windows 上轻松安装 Anaconda以及使用常用conda命令(超详细)。
  • 本文所有命令操作均在Anaconda Prompt下进行,打开方式如下图。

  • 2. 创建 Conda 环境

    使用 Conda 管理 Python 环境可以避免不同项目之间的依赖冲突。下面是配置步骤:

    # 创建 Python 3.9 的新环境(名称为 labelimg)
    conda create -n labelimg python=3.9 -y
    
    # 激活环境
    conda activate labelimg
    

    注意:可以根据需要选择不同的 Python 版本,但建议使用 3.83.9,以确保 labelimg 的兼容性,版本过高会导致不稳定直接退出程序。


    3. 安装 labelimg

    安装 labelimg 有两种主要方法:使用 CondaPip,各有优缺点。

    方法一:使用 pip 安装 labelimg(简洁快速但不稳定)

    激活环境后,直接运行以下命令使用 pip 安装:

    pip install labelimg
    

    优点pip 安装方法简洁、快速,适合 Conda 默认不包含 labelimg 的情况。

    缺点:有时依赖项可能因 Python 版本或系统环境导致兼容性问题。

    方法二:使用 Conda 安装 labelimg(推荐)

    激活环境后,直接运行以下命令使用 conda 安装:

    conda install -c conda-forge labelimg
    

    优点:Conda 会自动解决依赖冲突问题,通常更稳定,且 Conda Forge 提供的包适配性较好。

    缺点:Conda Forge 中的包可能不是最新版本,适合追求环境稳定的用户。


    4. 启动 labelimg

    使用以下命令启动 labelimg

    labelimg
    


    5. labelimg 的基本使用

    5.1 打开图像(文件夹)

  • 在工具栏中选择“Open”来加载单个图像
  • 在工具栏中选择“Open Dir”来加载目标文件夹内的所有图像
  • 在工具栏中选择“Change Save Dir”来改变XML保存路径
  • 5.2 创建标注框

  • 选择图像后,点击“Create RectBox”按钮,或使用快捷键 W 来创建一个矩形框。
  • 鼠标拖拽创建边界框,并在对话框中输入标签名称,例如“dog”或“car”等,根据需求输入。
  • 创建完成后,点击“Save”按钮保存 XML 标注文件。
  • 5.3 快捷键(必会)

  • Ctrl + S – 保存当前标注
  • A / D – 切换至上/下一张图片
  • W – 创建矩形框
  • 5.4 配置

    5.4.1 自动保存(强烈推荐)

  • 可以通过选择 View -> Auto Save Mode 自动保存标注数据。
  • 选择该选项后,每次创建完标注框后不需要手动点击"Save"保存标注数据。
  • 5.4.2 选择 YOLO 格式或 PascalVOC 格式导出标注文件(区别)

    Pascal VOC 格式(默认):使用 XML 文件描述标注,包含目标的类别、坐标(非归一化)以及其他信息。每个 XML 文件的结构如下:

    <annotation>
        <folder>images</folder>
        <filename>image1.jpg</filename>
        <size>
            <width>image_width</width>
            <height>image_height</height>
            <depth>3</depth>
        </size>
        <object>
            <name>class_name</name>
            <bndbox>
                <xmin>x_min</xmin>
                <ymin>y_min</ymin>
                <xmax>x_max</xmax>
                <ymax>y_max</ymax>
            </bndbox>
        </object>
    </annotation>
    
  • class_name:目标的类别名称。
  • bndbox:边界框的具体坐标,分别表示框的左上角 (xmin, ymin) 和右下角 (xmax, ymax) 的位置。
  • YOLO 格式:每个目标用一个行表示,包含了类别标签和归一化后的边界框信息。具体格式如下:

    class_id center_x center_y width height
    
  • class_id:目标的类别编号。
  • center_xcenter_y:目标边界框的中心坐标(归一化到图像宽度和高度的比例)。
  • widthheight:边界框的宽度和高度(同样是归一化比例)。
  • 使用场景:

  • YOLO 格式:用于 YOLO 系列的目标检测模型,因为格式紧凑、存储空间小,适合大批量数据集训练时快速加载和处理。
  • Pascal VOC 格式:常用于更通用的数据集,适合兼容性广泛的检测任务。Pascal VOC 格式在标注详细度上更高,更适合需要丰富标签信息的场景,如模型评价或结果展示等。

  • 5.5 结果

  • 标注后的XML格式文件最后会保存在最初选择"Change Save Dir"的保存路径下。
  • 如下图所示,可能不同电脑图标不同。右键单击文件并选择“属性”,只要文件后缀显示为.xml文件,即表示已正确保存。
  • 可在Anaconda Prompt终端查看标注记录。

  • 6. 注意事项

  • 若过程中遇到报错或闪退问题,最好的解决方法是删除当前环境并重新创建

  • 当前最稳定的配置为:Python 版本 3.9 + 通过 Pip 安装 labelimg

  • 推荐在 labelimg 环境中仅安装 labelimg包,避免安装其他不必要的包。

  • 软件总览如下:

  • 作者:Natsuagin

    物联沃分享整理
    物联沃-IOTWORD物联网 » Labelimg图像标注入门教程:新手快速上手指南

    发表回复