【教程】标注工具Labelimg的安装与使用

【教程】标注工具Labelimg的安装与使用

图片标注主要是为了建立自己的数据集,便于进行更深度的学习训练。本篇文章将对一款十分好用的图片标注工具labelimg进行介绍,重点介绍其安装以及使用的过程。

- 什么是labelimg

labelimg 是一个可视化的图像标定工具。它是用Python编写的,并将Qt用于其图形界面。批注以PASCAL VOC格式(ImageNet使用的格式)另存为XML文件。此外,它还支持YOLO格式。Faster R-CNN,YOLO,SSD等目标检测网络所需要的数据集,均需要借此工具标定图像中的目标。

在安装labelimg之前,我们需要先进行一个环境搭建,搭建环境之后再进行labelimg的安装和使用。

打开anaconda3的安装文件,进入安装界面,在install for安装选项中建议勾选all users,如下图。

在设置安装路径时,不建议使用默认的安装路径,建议在其他的盘符中新建文件夹进行安装。

在advanced options中勾选第一个√,将anaconda3的安装路径加入环境变量中。

安装完成后,打开开始菜单栏,选择anaconda3-anaconda prompt进入命令行。

在命令行中输入下列代码,若如下图显示pip版本号则证明anaconda3安装成功。

pip --version

环境配置完成后就可以进行labelimg的安装啦!

安装labelimg

在命令行窗口中依次输入下列代码,安装labelimg依赖的第三方库。

pip install PyQt5

pip install pyqt5-tools

pip install lxml

pip install labelimg

(注:此处可能会因网络原因造成卡顿,请耐心等待,若因为网络问题安装失败则重试)

使用pip安装第三方库流程如下:

#安装PyQt5,安装成功截图如下

#安装pyqt5-tools,安装成功截图如下

#安装lxml,安装成功截图如下

#安装labelimg,安装成功截图如下

至此,环境配置步骤已经全部完成。在第三方库安装完成后,在命令行中输入labelimg指令以启动labelimg(注:环境配置完成后再次启动只需要打开anaconda prompt命令行并输入labelimg即可启动,无需再次安装第三方库)。

进入labelimg标注工具的初始化界面如下图所示。

2. labelimg使用说明

2.1 使用labelimg进行数据集标注

labelimg的标注模式分为VOC和YOLO两种,两种模式下生成的标注文件分别为.xml文件和.txt文件,因此在进行标注前需要优先选择好标注的模式。

labelimg左侧菜单栏中按钮功能说明如下。

按钮功能
Open打开单个图像文件
Open Dir打开文件夹多幅图像
Change Save Dir标注后图像数据存储的路径
Next Image切换到下一张图像
Prev Image切换到上一张图像
Verify Image校验图像
Save保存图像
Create RectBox画一个标注框
Duplicate RectBox重复标注框
Delete RectBox删除标注框
Zoom In放大图像
Zoom Out缩小图像
Fit Window图像适应窗口
Fit Width图像适应宽度

在labelimg中,标注的快捷键为w,标注后用鼠标拖动锚框进行框选,框选完毕后会弹出类别选择框,如果是当前已有类则直接选择即可,若需要新加类别则在输入框中输入类别标签并确定。

(YOLO标注模式下)标注完成后数据集整体结构如下图所示。

2.2 标签文件解释

使用labelimg标注产生的结果如下。

使用labelimg以VOC模式进行标注产生的标注文件如下,与YOLO标注模式产生的类别标签不同,.xml标注文件不需要将类别文件单独进行存放,因为其中已经包含了标注锚框的位置信息和类别信息。

使用labelimg以YOLO模式进行标注产生的标注文件如下,classes.txt文件中存放的是类别标签,标签文件中以类别+锚框的位置坐标信息进行保存,文件中有几行则说明对应的标注图像中有几个锚框。

3. labelimg操作快捷键汇总

标注常用快捷键如下所示。

Ctrl + s 保存当前改动(注:切换图片时若未保存则会进行询问)

Ctrl + d 复制当前标签和矩形框

space 将当前图像标记为已验证

w 创建一个矩形框

d 下一张图片

Del 删除选定的矩形框

Ctrl + +/Ctrl + 滚轮向前 放大

Ctrl + -/Ctrl + 滚轮向后 缩小

↑→↓← 键盘箭头移动选定的矩形框

labelimg完整的快捷键列表如下。

快捷键功能快捷键功能
Ctrl + Q退出软件Ctrl + +放大
Ctrl + UOpen DirCtrl + =原始大小
Ctrl + RChange Save DirCtrl + F图像适应窗口
Ctrl + S保存图像Ctrl + E编辑标签
Ctrl + L线框颜色W画框
Ctrl + J移动编辑标注框Delete删除框
Ctrl + D复制框Ctrl + shift + F图像适应宽度
Ctrl + H隐藏所有的框DNext Image
Ctrl + A显示所有的框APrev Image
space标记当前图片已标记Ctrl + shift + O打开的文件夹只显示.xml文件

这篇文章的目的,就是为了让大家能够更好的安装和使用 labelimg,以及labelimg的一些小窍门。在目标检测上,了解labelimg及其使用还是很有必要的。

本篇文章到这里就结束啦,关于我们更多请前往官网了解https://www.easy-eai.com/

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

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

相关文章

HDFS客户端UnknownHostException事故解析

文章目录 前言事故现场问题分析是否是整个域名解析服务当时都出问题了是否是出问题的pods本身的域名解析有问题 异常发生的全部过程域名的解析是什么时候发生的,怎么发生的域名解析的详细流程 重试发生在什么地方为什么重试会无效 Bugfix代码详解关于StandardHostRe…

特殊权限(suid sticky acl mask)

1.suid 1. 普通用户可不可以修改密码? 答:是可以的,可以修改自己的密码 2. /etc/shadow 文件的作用是什么? 答:存储用户密码的文件 3. 普通用户是否可以修改/etc/shadow 文件? 答:不可以&…

STM32+Codesys工业软件PLC解决方案

工业控制系统在现代制造和自动化领域扮演着关键角色, 基于IEC 61131-3 标准的控制器编程开发软件平台CODESYS,适用于多种行业的控制系统的开发,使用户方便快捷地对自动化工程进行编程和配置,完成项目开发、软件测试和应用调试。 本次STM32联合合作伙伴C…

Docker logs 命令——查看docker容器日志

请直接看原文: 原文链接:Docker logs 命令——查看docker容器日志-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------- 用法: docker logs [OPTIONS] CONTAINER …

2023年全国职业院校技能大赛网络系统管理网络模块 网络构建答题卡(600)(还原截图锐捷)

网络构建答题卡(600) 要求:使用下面指令查看其运行状态,并使用FSCapture截图软件进行截图,将输入结果的截图插入到文档中。 职业素养(25) 截图文档整洁规范,根据题目要求进行截图。 整理赛位,工具、设备归位,保持赛后整洁有序。 遵守赛项记录,听从裁判安排。 基础…

FC UxROM (Mapper 2) 操作

UxROM 概览 mapper号2卡带名UxROMPRG ROM容量256K / 4096KPRG ROM窗口16K 16K fixedPRG RAM容量无PRG RAM窗口无CHR ROM容量无CHR ROM窗口n/a扩展声音无IRQ无 寄存器 Bank 选择 ( 8000 − 8000- 8000−FFFE) 7 bit 0 ---- ---- xxxx pPPP||||- 为 CPU $8000-$BFFF 选择…

服务器运行状况监控工具

服务器运行状况监视提供了每个服务器状态和性能的广泛概述,通过监控服务器指标,如 CPU 使用率、内存消耗、I/O、磁盘使用率、进程等,服务器运行状况监控可以避免服务器停机。 服务器性能监控指标 服务器是网络中最重要的组件之一&#xff0…

计算机网络复习6

应用层 文章目录 应用层网络应用模型域名系统DNS文件传输协议FTP电子邮件万维网 网络应用模型 客户/服务器模型 客户/服务器(Client/Server,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求…

Python线程池实现的进阶知识

1.参数 max_workers 的设定 接前文 《Python多线程和线程池的下载实战用法 》中案例,继续分析 concurrent.futures.ThreadPoolExecutor() 是 Python 中的一个线程池实现,用于执行并发的任务。它可以通过参数 max_workers 来设置线程池的最大工作线程数。 在你提供的代码中,…

SLAM学习入门--编程语言

文章目录 编程语言一、C/C++C 与 C++ 的区别(面向对象的特点)C++ 与 Python的区别判断struct的字节数static 作用Const 作用extern "C"的作用多态如何实现多态?虚函数虚函数怎么实现的?析构函数虚析构函数的作用virtual函数能不能用在构造函数中&#

Java集合/泛型篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、ArrayList和linkedList的区别二、HashMap和HashTable的区别三、Collection包结构,与Collections的区别四、泛型常用特点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站…

Spring系列学习四、Spring数据访问

Spring数据访问 一、Spring中的JDBC模板介绍1、新建SpringBoot应用2、引入依赖:3、配置数据库连接,注入dbcTemplate对象,执行查询:4,测试验证: 二、整合MyBatis Plus1,在你的项目中添加MyBatis …

Java 实现自动获取法定节假日

一、背景 在实现业务需求的过程中,遇到了需要计算 x 个工作日后的日期需求。由于工作日是每年国务院发布的,调休和休假都没有规律,所以无法使用算法进行计算。 一般的实现方案是自己维护一个工作日和调休的表,或者去爬取国务院发…

AutoSAR(基础入门篇)4.4-Autosar_BSW的Memory功能

Memory功能 一、Autosar_BSW的Memory 1、Memory 组件图 2、架构与术语解释 3、片内存储 4、片外存储

游戏加速器LSP/DLL导致WSL.EXE无法打开问题修复!

解决办法: https://github.com/microsoft/WSL/issues/4177#issuecomment-597736482 方法一:(管理员身份) netsh winsock reset 方法二: WSCSetApplicationCategory 函数设置LSP加载权限 bool NoLsp(const wchar_t* …

从零开始:使用 BIND 构建和管理您的 DNS 服务器

1 前言 在这篇文章中,我将详细介绍如何使用 BIND(Berkeley Internet Name Domain)软件包中的 named 程序来配置和管理一个基本的 DNS 服务器。 从安装 BIND 开始,到设置 DNS 区域文件,再到运行和测试您的服务器&#x…

Oracle 19c OCP 1z0 082考场真题解析第17题

考试科目:1Z0-082 考试题量:90 通过分数:60% 考试时间:150min 本文为云贝教育郭一军guoyJoe原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。 17. Which three …

通过数字证书对PDF电子文件进行数字签名/盖章

以下代码详细说明如何使用数字证书对PDF电子文件进行数字签名/盖章。PDF文件签署主要传递PDF文件,数字证书信息,签章图片3个信息。代码中需要的文件、数字证书、签章图片可访问开放签电子签章开源系统详细了解系统的实现与效果。也可通过gitee开源社区下…

AQS之ReentrantReadWriteLock

AQS之ReentrantReadWriteLock 一. 归纳总结 ReentrantReadWriteLock适合读多写少的场景。是可重入的读写锁实现类。其中, 写锁是独占的,读锁是共享的。 支持锁降级(持有写锁、获取读锁,最后释放写锁的过程) 锁降级可以帮助我们…

2023-12-30 msys2的python包降级

点击 <C 语言编程核心突破> 快速C语言入门 msys2的python包降级 前言总结 前言 要解决问题: 调大模型, 要用python, 需要numpy安装pip结果是升级了, 对不上当前py版本, 啥都装不了, 需要降级. 想到的思路: https://repo.msys2.org/mingw/clang64/ 下载对应包 使用命令…