小白快速上手 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包,避免安装其他不必要的包。

  • 软件总览如下:

  • 在这里插入图片描述

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

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

相关文章

【算法】【优选算法】二分查找算法(上)

目录 一、二分查找简介1.1 朴素二分模板1.2 查找区间左端点模版1.3 查找区间右端点模版 二、leetcode 704.⼆分查找2.1 二分查找2.2 暴力枚举 三、Leetcode 34.在排序数组中查找元素的第⼀个和最后⼀个位置3.1 二分查找3.2 暴力枚举 四、35.搜索插⼊位置4.1 二分查找4.2 暴力枚…

自己构建ARM平台DM8镜像

&#xff1f;&#xff1f;&#xff1f; 为什么不使用官方提供的docker版本&#xff0c;测试有问题&#xff0c;分析函数不能使用&#xff0c;报错。 自己构建ARM平台的dm8镜像&#xff0c;参考 https://gitee.com/xlongfu/dm-docker/tree/master&#xff0c;发现一些问题 首先…

Linux之实战命令73:at应用实例(一百零七)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

万字长文解读【深度学习面试——训练(DeepSpeed、Accelerate)、优化(蒸馏、剪枝、量化)、部署细节】

&#x1f33a;历史文章列表&#x1f33a; 深度学习——优化算法、激活函数、归一化、正则化深度学习——权重初始化、评估指标、梯度消失和梯度爆炸深度学习——前向传播与反向传播、神经网络&#xff08;前馈神经网络与反馈神经网络&#xff09;、常见算法概要汇总万字长文解读…

C++ | Leetcode C++题解之第554题砖墙

题目&#xff1a; 题解&#xff1a; class Solution { public:int leastBricks(vector<vector<int>>& wall) {unordered_map<int, int> cnt;for (auto& widths : wall) {int n widths.size();int sum 0;for (int i 0; i < n - 1; i) {sum wi…

DDei在线设计器V1.2.42版发布

V1.2.42版 新特性&#xff1a; 1.快捷编辑框可以映射到主控件的多个属性上&#xff0c;从而实现快速编辑。 2.跟随图形的支持范围增加&#xff0c;从仅支持线控件到支持所有控件 2.新增控件双击回调函数EVENT_CONTROL_DBL_CLICK&#xff0c;可以用于覆盖默认的快速编辑逻辑…

大数据的实时处理:工具和最佳实践

在当今的数字世界中&#xff0c;数据以前所未有的速度从无数来源生成&#xff0c;包括社交媒体、物联网设备、电子商务平台等。随着组织认识到这些数据的潜在价值&#xff0c;他们越来越多地转向实时处理&#xff0c;以获得即时、可操作的见解。但是&#xff0c;实时处理大数据…

【51单片机】蜂鸣器演奏音乐——小星星天空之城

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 蜂鸣器按键发声无源蜂鸣器演奏音乐简单乐理小星星天空之城 蜂鸣器 蜂鸣器在开发板的位置如下&#xff1a; 蜂鸣器是一种将电信号转…

【含开题报告+文档+源码】高校校园二手交易平台的设计与实现

开题报告 随着互联网的快速发展&#xff0c;电子商务成为了现代化社会中不可或缺的一部分。线上交易平台的兴起&#xff0c;为商家和消费者创造了更多的交易机会和便利。然而&#xff0c;传统的电商平台通常由一家中央机构管理和控制&#xff0c;对商家和消费者的自由度有一定…

录制的音频听起来非常缓慢,声音很模糊

一、主题 录制的音频听起来非常缓慢&#xff0c;声音很模糊 二、问题背景 硬件&#xff1a;T113&#xff0c;R528等平台系列产品 软件&#xff1a;Tina5.0 三、问题描述 1、复现步骤 使用arecord进行录音。 arecord -Dhw:audiocodec -f S16_LE -r 16000 -c 2 -d 5 /tmp/t…

计算机的错误计算(一百五十)

摘要 探讨 MATLAB 中 的计算精度问题。当 为含有小数的大数或 &#xff08;&#xff09;附近数时&#xff0c;输出会有错误数字。 例1. 已知 计算 直接贴图吧&#xff1a; 另外&#xff0c;16位的正确值分别为 -0.7882256119904400e0、0.1702266977524110e0、-0.…

【网络安全 | 漏洞挖掘】Google SSO用户的帐户接管

未经许可,不得转载。 文章目录 DOM XSS获取 CSRF Token解除Google账户绑定在这篇博文中,我将详细介绍找到针对Google SSO用户的账号接管(ATO)漏洞的过程。 DOM XSS 我遇到 DOM XSS 漏洞的位置非常微妙,因为我遇到了非常严格的WAF。 获取 CSRF Token 在找到XSS漏洞后,我…

2024中国游戏出海情况

01 哪里出海更花钱&#xff1f; 报告显示&#xff0c;中国手游在全球不同市场的获客成本不同&#xff0c;整体来看北美市场竞争更加激烈&#xff0c;其安卓和iOS获客成本是拉丁美洲的12倍和7倍。 按具体市场划分&#xff0c;获客成本最高的TOP 3为韩国、美国和日本&#xff0c…

AI写作(七)的核心技术探秘:情感分析与观点挖掘

一、AI 写作中的关键技术概述 情感分析与观点挖掘在 AI 写作中起着至关重要的作用。情感分析能够帮助 AI 理解文本中的情感倾向&#xff0c;无论是正面、负面还是中性。在当今信息时代&#xff0c;准确把握用户情绪对于提供个性化体验和做出明智决策至关重要。例如&#xff0c;…

AlphaProof IMO 2024 P1 in LEAN 之 简介

AlphaProof 是用于进行数学证明的人工智能&#xff0c;其中&#xff0c;对于 IMO 2024 中的6道题中的 4 道。本系列博文&#xff0c;就 AlphaProof 对于 IMO 2024 P1 给出的答案进行详细讲述。这里是此系列的第一篇。 IMO 2024 P1 题目如下&#xff1a; IMO 2024 P1 答案 α 为…

CANFD与CAN区别

CANFD帧的帧格式相比于传统CAN帧的帧格式多了以下的不同的&#xff1a; 1.CANFD帧中用RRS位替换了CAN帧中的RTR位&#xff0c;CAN报文中的RTR&#xff08;Remote Transmission Request&#xff09;位是远程帧发送请求位&#xff0c;当RTR位为显性&#xff08;0&#xff09;时&…

并发编程设计模式——Balking模式(三十九)

Balking 模式 多线程下&#xff0c;维护一个共享状态满足某个条件时&#xff0c;执行业务逻辑&#xff1b;当不满足时则立即放弃。通常用互斥锁来确保共享状态线程安全&#xff0c;如果不需要保证共享状态原子性&#xff0c;也可以用 volitle 修饰&#xff0c;替换互斥锁。 Bal…

了解Synchronized与Lock的区别

前言&#xff1a; 在多线程编程中&#xff0c;保证线程安全是至关重要的。Java提供了两种主要的同步机制&#xff1a;synchronized关键字和Lock接口。尽管它们都是为了解决多线程并发访问共享资源的问题&#xff0c;但在使用方式和特性上存在一些显著的差异。 synchronized&am…

DOM操作和事件监听综合练习:利用JS实现图片轮播

我们经常会看到购物网页上有商品图片在自动循环播放&#xff0c;这就是图片轮播&#xff0c;图片轮播‌是一种常见的网页设计元素&#xff0c;用于在网页上自动切换显示多张图片或内容。它通过JavaScript来实现图片的自动轮播效果&#xff0c;结合HTML和CSS来完成布局和样式设置…