labelimg使用以及xml和txt转化

一、使用

win+r——输入cmd

激活已有的环境

conda activate torch1.2.0

下载lebelme

pip install labelme==3.16.7 

再输入labelme打开软件就可 

可以设置自动保存,View——auto save mode打上勾

 二、注意

1.自己类的定义名称,在txt中是0,1,2表示,在xml中用写的比如dog等

2.原始图像需要是jpg24位深格式(具体参考本人另一篇这个格式调整问题)

labelme制作自己数据集以及图片格式问题_labelme数据格式_彩色面团儿的博客-CSDN博客

3.注意要求是voc的xml格式,还是txt格式,默认xml格式,如果标记完了发现要txt,后面会分享代码一键修改

三、xml转txt

xml内容

对应转成txt样式

#需要修改类别名和XML路径和输出的txt文件路径import xml.etree.ElementTree as ET
import os
# 类别
CLASSES=["dog", "cat", "leaf"]
# xml文件路径
xml_input="D:/2_label/label/"
def convert(size,box):# 将bbox的左上角点,右下角点坐标的格式,转换为bbox中心点+bbox的W,H的格式,并进行归一化dw=1./size[0]dh=1./size[1]x=(box[0]+box[1])/2.0y=(box[2]+box[3])/2.0w=box[1]-box[0]h=box[3]-box[2]x=x*dww=w*dwy=y*dhh=h*dhreturn (x,y,w,h)
def convert_annotation(image_id):# 把图像image_id的xml文件转换为目标检测的label文件(txt)# 其中包含物体的类别cls,bbox的中心点坐标,以及bbox的W,H# 并将四个物理量归一化in_file=open(xml_input+image_id,'r',encoding='utf-8')image_id=image_id.split(".")[0]print(image_id)out_file=open("D:/2_label/label_txt/%s.txt"%(image_id),"w")#print(in_file)tree = ET.parse(in_file)root = tree.getroot()size = root.find("size")w = int(size.find("width").text)h = int(size.find("height").text)for obj in root.iter("object"):#difficult = obj.find("difficult").textdifficult = 0;#print(difficult)obj_cls=obj.find("name").textif obj_cls not in CLASSES or int(difficult)==1:continuecls_id=CLASSES.index(obj_cls)xmlbox=obj.find("bndbox")points=(float(xmlbox.find("xmin").text),float(xmlbox.find("xmax").text),float(xmlbox.find("ymin").text),float(xmlbox.find("ymax").text))bb=convert((w,h),points)out_file.write(str(cls_id)+" "+" ".join([str(a) for a in bb])+"\n")
def make_label_txt():# labels文件夹下创建image_id.txt# 对应每个image_id.xml提取出的bbox信息filenames = os.listdir(xml_input)#print(filenames)for file in filenames:# print(file)convert_annotation(file)if __name__=="__main__":# 开始提取和转换make_label_txt()

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

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

相关文章

java: 警告: 源发行版 8 需要目标发行版 1.8;(可我的项目是其他版本啊?)

我的项目是1.7 可运行时却要求是1.8 情况1 提示需要1.8 而你刚好项目就是1.8 那么就是配置问题 这里就不描述怎么解决了 方案很多。 情况2 项目用的不是XX版本却提示需要XX版本 在你的Maven目录的conf文件夹下settings.xml中下面 不知道maven目录在哪从这里看 如果这里指…

H指数----题解报告

题目:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 由题目可知,我们要寻找的是一个最大的H值。 首先先对引用次数排序,然后再寻找在规定内的最大H值 public int hIndex(int[] citations) {Arrays.sort(citatio…

git初学者使用教程(包含Android studio中git使用)

文章目录 1、登录 / 注册git账号2、创建git仓库3、设置git的用户名和邮箱4、创建git仓库5、已有仓库推送代码到远程仓库6、进阶使用,命令行和Android studio软件使用1. 克隆(Clone)源码仓库2. 查看仓库状态(Status)3. …

【已解决】Word文档的“打开密码”在哪里设置?

我们知道,Word文档可以设置“打开密码”,保护文件不被随意打开,只有输入正确的密码才能打开文档。那这个“打开密码”要在哪里设置呢?不清楚的小伙伴往下看就知道啦。 在Word文档里,有两个路径可以设置“打开密码”。…

扩散模型学习——代码学习

文章目录 引言正文UNet网络结构训练方法DDPM采样方法讲解Context上下文信息添加DDIM的方法详解 总结参考 引言 这是第一次接触扩散模型,为了学习,这里好好分析一下他的代码 正文 UNet网络结构 这部分主要是定义一下网络结构,以及相关的网…

递归方法实现字符串反转函数

递归函数是一种在函数内部调用自身的函数。它通过将复杂的问题分解成更小的子问题来解决。递归函数通常包含两部分&#xff1a;基本情况和递归调用。请使用递归方法实现字符串反转的C语言函数。 #include <stdio.h>void reverseString(char* str) {///Begin///// 递归基…

极智嘉(Geek+)柔性货箱到人拣选方案,助力Starlinks实现高效运营

近些年&#xff0c;电商业务席卷全球&#xff0c;一众企业蓬勃发展。比如沙特阿拉伯先进的物流与供应链解决方案供应商Starlinks的电子商务的销售额从6%增长到了23%。为满足日益增长的国际电商业务需求&#xff0c;以及订单交付时效性更高的要求&#xff0c;Starlinks与全球仓储…

领先一步,效率翻倍:PieCloudDB Database 预聚集特性让查询速度飞起来!

在大数据时代&#xff0c;如何有效地管理和处理海量数据成为了企业面临的核心挑战。为此&#xff0c;拓数派推出了首款数据计算引擎 PieCloudDB Database&#xff0c;作为一款全新的云原生虚拟数仓&#xff0c;旨在提供更高效、更灵活的数据处理解决方案。 PieCloudDB 的设计理…

Linux入门攻坚——4、shell编程初步、grep及正则表达式

bash的基础特性&#xff08;续&#xff09;&#xff1a; 1、提供了编程环境&#xff1a; 编程风格&#xff1a;过程式&#xff1a;以指令为中心&#xff0c;数据服务于执行&#xff1b;对象式&#xff1a;以数据为中心&#xff0c;指令服务于数据 shell编程&#xff0c;编译执…

智能井盖传感器详细使用效果是什么?

随着每一个城市基础设施在不断完善&#xff0c;城市建设过程之中&#xff0c;井盖的数量也在处于不断增加阶段&#xff0c;在大街小巷之中随处可见形式各类&#xff0c;大小不一的井盖。看似结实牢固的井盖&#xff0c;但是可能由于时间问题&#xff0c;导致年久失修&#xff0…

Spring Boot集成SpringFox 3.0与Pageable参数处理

Springfox 3.0有多个模块&#xff0c;提供了spring boot starter&#xff0c;与Spring Boot集成时仅需引入springfox-boot-starter&#xff0c;如下&#xff1a; <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter<…

经典卷积神经网络 - LeNet

该模型用于手写的数字识别。 LeNet模型包含了多个卷积层和池化层&#xff0c;以及最后的全连接层用于分类。其中&#xff0c;每个卷积层都包含了一个卷积操作和一个非线性激活函数&#xff0c;用于提取输入图像的特征。池化层则用于缩小特征图的尺寸&#xff0c;减少模型参数和…

免费领取!TikTok Shop “全托管”黑五大促官方备战指南来啦!

黑五网一大促即将来袭&#xff0c;自“全托管”模式上线以来&#xff0c;TikTok for Business在沙特阿拉伯和英国市场开展了古尔邦节大促、夏季大促、返校季大促等活动&#xff0c;今年更是会借着黑五网一大促之际&#xff0c;首次覆盖美国市场&#xff0c;为全托管商家带来全球…

如何在Potplayer中使用公网访问群晖WebDav?

文章目录 1 使用环境要求&#xff1a;2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透&#xff0c;映射至公网5 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内容让人一言难尽&#xff0c;就算是购买了国外的优秀作品&#xff0c;也总是在关键剧情上删删…

系统性认知网络安全

前言&#xff1a;本文旨在介绍网络安全相关基础知识体系和框架 目录 一.信息安全概述 信息安全研究内容及关系 信息安全的基本要求 保密性Confidentiality&#xff1a; 完整性Integrity&#xff1a; 可用性Availability&#xff1a; 二.信息安全的发展 20世纪60年代&…

学生成绩管理神器

老师们是否还在为繁琐的成绩查询而烦恼&#xff1f;是否希望有一个简便易用的成绩查询系统&#xff0c;让同学们可以自助查询成绩&#xff1f;那么&#xff0c;这篇文章就是你的救星&#xff01; 让我们一起来认识一下这个成绩查询系统。它是一个基于网页或微信小程序的应用程序…

Spring底层原理(一)

Spring底层原理&#xff08;一&#xff09; ApplitionContext与BeanFactory BeanFactory是ApplicationContext的父接口BeanFactory才是Spring的核心容器,ApplicationContext对其功能进行了组合 类图 内部方法调用 BeanFactory的功能 获取bean检查是否包含bean获取bean别名 …

220V降压5V用什么方案比较好?

对于将220V降压到5V的方案&#xff0c;根据输出电流大小&#xff0c;有两种选择&#xff1a;AH8652和AH8699B。 AH8652是一个sot23-3封装的芯片&#xff0c;固定输出5V&#xff0c;峰值电流为200mA&#xff0c;并内置了MOS管。这个芯片适合需要固定输出电压的应用场景&#xf…

设计模式:模板模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

简介&#xff1a; 模板模式&#xff0c;它是一种行为型设计模式&#xff0c;它定义了一个操作中的算法的框架&#xff0c;将一些步骤延迟到子类中实现&#xff0c;使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 通俗地说&#xff0c;模板模式就是将某一行…

✔ ★【备战实习(面经+项目+算法)】 10.22学习时间表(算法刷题:4道)

✔ ★【备战实习&#xff08;面经项目算法&#xff09;】 坚持完成每天必做如何找到好工作1. 科学的学习方法&#xff08;专注&#xff01;效率&#xff01;记忆&#xff01;心流&#xff01;&#xff09;2. 每天认真完成必做项&#xff0c;踏实学习技术 认真完成每天必做&…