前言

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

1. 准备工作

在这里插入图片描述


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包,避免安装其他不必要的包。

  • 软件总览如下:

  • 在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐