[保姆式教程]使用labelimg2软件标注定向目标检测数据和格式转换

        定向目标检测是一种在图像或视频中识别和定位对象的同时,还估计它们方向的技术。这种技术特别适用于处理有一定旋转或方向变化的对象,例如汽车、飞机或文本。定向目标检测器的输出是一组旋转的边界框,这些框精确地包围了图像中的对象,并且每个框都带有类别标签和置信度分数。

        LabelImg2是LabelImg的一个改进版本,它不仅支持传统的轴对齐矩形边界框标注,还支持旋转边界框(即定向边界框)的标注。这对于需要精确捕捉物体方向的目标检测任务非常有用。以下是关于如何安装和使用LabelImg2进行定向目标检测数据集标注的详细介绍:

1.LabelImg2环境配置

        为了能够在Windows操作系统下顺利使用LabelImg2,需要先安装Anaconda来管理Python环境。下面是详细的步骤:

(1)安装Anaconda:访问Anaconda官网下载适合你系统的版本并安装。安装过程中,建议勾选“Add Anaconda to my PATH environment variable”选项,以便将Anaconda添加到系统环境变量中。

(2)创建虚拟环境:打开Anaconda Prompt,创建一个名为`label`的新环境,并指定Python版本为3.6(指定Python版本为3.6的原因后面会细说)。命令如下:

conda create --name label python=3.6

(3)激活虚拟环境:通过以下命令激活刚刚创建的虚拟环境:

conda activate label

(4)安装依赖库:在激活的环境中安装LabelImg运行所需的依赖库,包括sip、PyQt5和 lxml。推荐使用清华镜像源加快下载速度。

pip install sip PyQt5 lxml

(5)下载LabelImg2:从GitHub或其他可信来源下载LabelImg2源码,解压后进入该目录。

(6)编译资源文件:如果直接使用源码安装,可能需要编译资源文件。在LabelImg2目录下执行以下命令:

pyrcc5 -o resources.py resources.qrc

(7)启动LabelImg2:最后,通过以下命令启动LabelImg2界面:

python labelImg.py

         (在Anaconda Prompt中CD进入LabelImg2文件夹,输入上面的命令即可)

2.使用LabelImg2进行定向目标检测数据集标注

(1)选择标注格式:在LabelImg2界面中,可以通过菜单栏选择YOLO格式或者PASCAL VOC格式。对于定向目标检测,我们通常选择YOLO格式,因为它能够更好地支持旋转边界框。

(2)加载图片:点击“Open Dir”按钮,选择包含待标注图片的文件夹。同样设置保存标注文件的目录。

 (3)创建预定义类:可以在界面右上角添加你的项目中所有需要标注的类别名称。这样可以在标注时快速选择类别。

         点击标记1的地方即可添加类别名称,点击标记2的地方即可选择自己的类别作为旋转框标注的类别

(4)绘制旋转边界框:使用鼠标左键在图片上绘制边界框,然后输入相应的类别名。对于LabelImg2,你可以通过鼠标右键拖动边界框的角点来调整其旋转角度,以适应物体的方向。

         标记1的地方是水平框标注,标记2的地方是旋转框标注

(5)保存标注结果:完成标注后,记得保存标注信息。如果你选择了自动保存模式,则切换到下一张图片时会自动保存当前图片的标注信息。

3.注意事项

        在标注过程中,确保你的图片文件名不包含中文字符,否则可能会导致无法正确读取或保存。
        如果遇到任何问题,比如软件崩溃或无法启动,检查是否有遗漏的依赖项未被安装,或者尝试重新配置环境。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

go结构体匿名“继承“方法冲突时继承优先顺序

在 Go 语言中,匿名字段(也称为嵌入字段)可以用来实现继承的效果。当你在一个结构体中匿名嵌入另一个结构体时,嵌入结构体的方法会被提升到外部结构体中。这意味着你可以直接通过外部结构体调用嵌入结构体的方法。 如果多个嵌入结…

八、利用CSS制作导航栏菜单

8.1 水平顶部导航栏 水平菜单导航栏是网站设计中应用范围最广的导航设计,一般放置在页面的顶部。水平导航适用性强,几乎所有类型的网站都可以使用。 如果导航过于普通,无法容纳复杂的信息结构,就需要在内容模块较多的情况…

rustdesk 自建服务

RustDesk 部署RustDesk sudo docker image pull rustdesk/rustdesk-server sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v pwd:/root -td --nethost rustdesk/rustdesk-server hbbs sudo docker run --name hbbr -p 2111…

景联文科技:高质量数据采集标注服务引领AI革新

在当今这个数字化时代,数据已经成为推动社会进步和产业升级的关键资源。特别是在人工智能领域,高质量的数据是训练出高效、精准的AI模型的基础。景联文科技是一家专业的数据采集与标注公司,致力于为客户提供高质量的数据处理服务,…

Git上传本地项目到远程仓库(gitee/github)

目录 序言一、创建git本地版本库二、连接远程仓库(以gitee为例)三、将项目提交到git(本地)版本库1.由工作区添加到暂存区2.由暂存区添加到版本库 四、将代码由本地仓库上传到 gitee远程仓库1.获取远程库与本地同步2.把当前分支 ma…

RabbitMQ 消息确认机制

RabbitMQ 消息确认机制 本文总结了RabbitMQ消息发送过程中的一些代码片段,详细分析了回调函数和发布确认机制的实现,以提高消息传递的可靠性。 返回回调机制的代码分析 主要用途 这个代码主要用于设置RabbitMQ消息发送过程中的回调函数,即…

租辆酷车小程序开发(二)—— 接入微服务GRPC

vscode中golang的配置 设置依赖管理 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct GO111MODULEauto 在$GOPATH/src 外面且根目录有go.mod 文件时,开启模块支持 GO111MODULEoff 无模块支持,go会从GOPATH 和 vendor 文件夹寻找包…

Qt6.8安卓Android开发环境配置

时隔多年,重拾QtCreator下Android开发。发现Qt6下安卓开发环境配置变简单不少!只需三步即可在QtCreator下进行Android开发: 一、使用Qt Mantenance Tool进行Android模块的安装: 如果感觉安装网速较慢,可以查看本人另外…

Java篇——Java通过JNA调用c++库时传参含有结构体时数据错乱的解决办法

Java通过JNA调用c库时传参含有结构体时,只继承Structure是不够的,还需要实现Structure.ByValue,或者强制指定结构体字节对齐。示例如下: 1、c库中的结构体定义: 2、java中结构体定义: 3、java中调用 如果没…

websocket前后端长连接之java部分

一共有4个类,第一个WebSocketConfig 配置类 Configuration EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer {Autowiredprivate WebSocketHandler webSocketHandler;Autowiredprivate WebSocketInterceptor webSocketInterceptor;Overridepubli…

微软企业邮箱:安全可靠的企业级邮件服务!

微软企业邮箱的设置步骤?如何注册使用烽火域名邮箱? 微软企业邮箱作为一款专为企业设计的邮件服务,不仅提供了高效便捷的通信工具,更在安全性、可靠性和功能性方面树立了行业标杆。烽火将深入探讨微软企业邮箱的多重优势。 微软…

【R安装】VSCODE安装及R语言环境配置

目录 VSCODE下载及安装VSCODE上配置R语言环境参考 Visual Studio Code(简称“VSCode” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器&…

3D技术如何应用到汽车营销中?

3D线上展示技术在汽车营销中的应用,为传统汽车销售模式带来了革命性的变化。以下详细阐述这一技术如何被应用于汽车营销中: 一、提供沉浸式体验 3D全景看车:通过高清晰度的图像和全景展示,3D技术能够创造出身临其境的沉浸感&…

【小白学机器学习38】用np.random 生成各种随机数,随机数数组/序列

目录 0 总结 np.random() 的一些点 1 用np.random.random() 生成[0,1) 区间内的随机数 2 生成指定范围内的随机整数/数组 np.random.randint() 3 用np.random.choice()生成指定数组范围内的随机数 3.1 np.random.choice(array6) 3.2 np.random.choice(array6) &#xff0…

本地局域 基于ip地址生成证书

将这个脚本直接执行,然后输入需要绑定的ip和输入证书年限就可以了,然后配置nginx。 脚本:sslzhegnhsu.sh #! /bin/bashecho "请输入服务器IP地址" read ip echo "请输入证书年限" read yearyear$(expr $year 0)days…

影响因子和期刊质量之间有什么关系?

影响因子与期刊质量之间存在一定的联系,但这种关系并非绝对。以下是对两者关系的详细分析: 影响因子的定义:影响因子(Impact Factor,简称IF)是汤森路透出品的期刊引证报告(Journal Citation Rep…

Js-对象-04-Array

重点关注:Array String JSON BOM DOM Array Array对象时用来定义数组的。常用语法格式有如下2种: 方式1: var 变量名 new Array(元素列表); 例如: var arr new Array(1,2,3,4); //1,2,3,4 是存储在数组中的数据&#xff0…

《Unity Shader 入门精要》高级纹理

立方体纹理 图形学中,立方体纹理(Cubemap)是环境映射(Environment Mapping)的一种实现方法。环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以看起来像镀了层金属一样反射出周围的环境。 对立…

算法编程题-合并石头的最低成本

算法编程题-合并石头的最低成本 原题描述方法一、动态规划思路简述代码实现复杂度分析 方法二、动态规划(状态优化)思路简述代码实现复杂度分析 参考 摘要:本文将对LeetCode原题合并石头的最低成本进行介绍,思路基于动态规划&…

VirtualBox中设置共享文件夹(ubuntu系统)

一、在自己的电脑(宿主机)上新建一个文件夹 文件夹名字任意(我的文件夹的名称为vgateshare),建完之后记住自己建的文件夹的路径,后续需要使用 二、在 VirtualBox进行设置 打开对应虚拟机界面&#xff0c…