python实用脚本(二):删除xml标签下的指定类别
介绍
在目标检测中,有些时候会遇到标注好的类别不想要了的情况,这时我们可以运行下面的代码来批量删除不需要的类别节省时间。
代码实现:
import argparseimport xml.etree.ElementTree as ET
import osclasses = ['thin_smoke']def GetImgNameByEveryDir(file_dir, videoProperty):FileNameWithPath, FileName, FileDir = [], [], []for root, dirs, files in os.walk(file_dir):for file in files:if os.path.splitext(file)[1] in videoProperty:FileNameWithPath.append(os.path.join(root, file)) # 保存图片路径FileName.append(file) # 保存图片名称FileDir.append(root[len(file_dir):]) # 保存图片所在文件夹return FileName, FileNameWithPath, FileDirdef GetBoxInfo(xmlfile):try:tree = ET.parse(xmlfile)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)except:return False, 0else:tree = ET.parse(xmlfile)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)for obj in root.findall('object'):print(xmlfile, obj.find('name').text, obj)if obj.find('name').text == 'fulll':obj.find('name').text = "full"print('-' * 66)tree.write(xmlfile)return 1def Process(ProcessDir):xmlDirs = ProcessDir # + 'Labels/'FileName1, FileNameWithPath1, FileDir1 = GetImgNameByEveryDir(xmlDirs, '.xml')for k in range(len(FileName1)):annfile = xmlDirs + FileName1[k][:-4] + '.xml'result = GetBoxInfo(annfile)if __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('--ProcessDir', type=str, default='/home/build/smoke_ori/VOCdevkit/VOC2007/Annotations/')args = parser.parse_args()ProcessDir = args.ProcessDirProcess(ProcessDir)
相关文章:
python实用脚本(二):删除xml标签下的指定类别
介绍 在目标检测中,有些时候会遇到标注好的类别不想要了的情况,这时我们可以运行下面的代码来批量删除不需要的类别节省时间。 代码实现: import argparseimport xml.etree.ElementTree as ET import osclasses [thin_smoke]def GetImgNam…...
vue3 父子组件调用
vue3 父子组件调用 父组件调用子组件方法 子组件使用defineExpose将方法抛出 父组件定义 function,子组件通过 defineExpose 暴露方法,父组件通过 ref 获取子组件实例,然后通过 ref 获取子组件方法。 // 父组件 <template><div>…...
线性模型到神经网络
🚀 在初始神经网络那一节(链接如下:初始神经网络)的最后,我们通过加大考虑的天数使得我们最后得到的模型Loss最终停留在了0.32k,当我们在想让模型更加准确的时候,是做不到的,因为我们…...
【架构】前台、中台、后台
文章目录 前台、中台、后台1. 前台(Frontend)特点:技术栈: 2. 中台(Middleware)特点:技术栈: 3. 后台(Backend)特点:技术栈: 示例场景…...
Stable Diffusion 蒙版:填充、原图、潜空间噪声(潜变量噪声)、潜空间数值零(潜变量数值零)
在Stable Diffusion中,蒙版是一个重要工具,它允许用户对图像的特定部分进行编辑或重绘。关于蒙版蒙住的内容处理选项,包括填充、原图、潜空间噪声(潜变量噪声)、浅空间数值零(潜变量数值零)&…...
ffmpeg录制视频功能
本文目录 1.环境配置2.ffmpeg编解码的主要逻辑:3. 捕获屏幕帧与写入输出文件4. 释放资源 在录制结束时,释放所有分配的资源。5.自定义I/O上下文6.对于ACC编码器注意事项 1.环境配置 下载并安装FFmpeg库 在Windows上 从FFmpeg官方网站下载预编译的FFmpeg…...
【LeetCode】每日一题 2024_10_1 最低票价(记忆化搜索/DP)
前言 每天和你一起刷 LeetCode 每日一题~ 大家国庆节快乐呀~ LeetCode 启动! 题目:最低票价 代码与解题思路 今天这道题是经典动态规划,我们定义 dfs(i) 表示从第 1 天到 第 i 天的最小花费,然后使用祖传的:从记忆…...
[C++] 小游戏 征伐 SLG DNF 0.0.1 版本 zty出品
目录 先赞后看 养成习惯 War and Expedition SLG DNF 0.0.1 version 讲人话就是 图标解释: 绿色代表空地,可通过,对应数值 0 蓝色“~ ”为水,不可通过,对应数值 1 棕色“”为桥梁,可通过࿰…...
黑马头条day7-app端文章搜索
今天的内容也只是跑了一下 对于具体的实现掌握的很差 仔细看 es 在微服务学的es使用基本忘光了 这里用起来一点都熟悉 重学!!! kafka异步 文章自动构建索引的时候用到了‘’ mongoDB 用来存储用户的搜索记录 遗忘(拦截器 j…...
嵌入式必懂微控制器选型:STM32、ESP32、AVR与PIC的比较分析
目录 1 微控制器基础概述 1.1 微控制器基本概念 1.2 工作原理及架构 1.3 STM32、ESP32、AVR和PIC简介 2 微控制器性能比较分析 2.1 性能比较 2.2 功耗比较 2.3 功耗分析 2.4 外设接口对比 3 应用场景与选择策略 3.1 物联网应用场景 3.2 工业控制场景 3.3 智能家居场…...
Python selenium库学习使用实操二
系列文章目录 Python selenium库学习使用实操 文章目录 系列文章目录前言一、模拟登录二、表单录入 前言 在上一篇文章中,我们完成Selenium环境的搭建,和简单的自动化。今天继续深入学习。今天的目标是完成模拟登录,和表单录入。 一、模拟登…...
基于Hive和Hadoop的电信流量分析系统
本项目是一个基于大数据技术的电信流量分析系统,旨在为用户提供全面的通信数据和深入的流量使用分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark…...
访问docker容器中服务的接口,报错提示net::ERR_CONNECTION_REFUSED
背景 使用httpclient和前端调用docker容器中部署的springboot服务接口,一直连接不上。 报错信息 AxiosError {message: Network Error, name: AxiosError, code: ERR_NETWORK, config: {…}, request: XMLHttpRequest, …} sys.ts:28 POST http://172.33.28.179:8181/sy…...
【mysql相关总结】
mysql相关总结 数据库小的表,全表扫描效率更高,不用建索引。 索引的类型 1.普通索引:基本的索引,没有任何约束限制 2.唯一索引:类似普通索引,有唯一约束性 3.主键索引:特殊的唯一索引,不允许有空值 4.组合索引…...
uniapp 微信小程序 微信支付
本章的内容我尽量描述的细致一些,哪里看不懂给我评论就可以,我看到进行回复 微信支付大致分为4步,具体看后端设计 1. 获取code 2. 根据code获取openid 3. 根据openid,以及部分订单相关数据,生成prepayId (预支付交易会…...
CSS 效果:实现动态展示双箭头
最近写了一段 CSS 样式,虽然不难,但实现过程比较繁琐。这个效果结合了两个箭头,一个突出,一个内缩,非常适合用于步骤导航或选项卡切换等场景。样式不仅仅是静态的,还可以通过点击 click 或者 hover 事件&am…...
Linux 创建开发用的账户
在Linux系统中,创建一个用于开发的用户账户通常涉及到添加用户、设置密码以及配置适当的权限和环境。这里将详细介绍如何在Linux系统中创建一个新的开发用户账户,包括为其配置sudo权限,使其能够执行需要管理员权限的命令。 步骤 1: 创建用户…...
检查一个CentOS服务器的配置的常用命令
在CentOS系统中,查看服务器配置的常用命令非常丰富,这些命令可以帮助用户快速了解服务器的硬件信息、系统状态以及网络配置等。以下是一些常用的命令及其简要说明: 1. 查看CPU信息 (1) cat /proc/cpuinfo:显示CPU的详细信息&…...
Redis 简单的消息队列
使用redis 进行简单的队列很容易,不需要使用较为复杂的MQ队列,直接使用redis 进行,不过唯一不足的需要自己构造生产者消费者,这里使用while True的方法进行消费者操作 目录 介绍数据类型StringHash 重要命令消息队列 介绍 key-v…...
C++:继承和多态,自定义封装栈,队列
1.栈: stack.cpp #include "stack.h"Stack::Stack():top(nullptr),len(0){} //析构函数 Stack::~Stack() {while(!empty()){pop();} }bool Stack::empty() //判断栈是否为空 {return topnullptr; }int Stack::size()//获取栈的大小 {return len; } //压…...
Python多个set中的交集
Python多个set中的交集 在 Python 中,集合(set)是一种非常有用的数据结构,它可以存储唯一的元素,并提供了高效的数学集合操作,包括求交集、并集和差集等。本文将重点介绍如何通过多重集合求交集࿰…...
百度百科 X-Bk-Token 算法还原
声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 文章目录 声明案例地址参数分析X-Bk-Token算法追踪X-Bk-Token后缀算法还原c 值跟踪与算法还原往期逆向文章推荐最近太忙了,博客摆烂了好…...
RUST语言的初印象-从一个模拟登陆谈起-slint+reqwest+aes
本文就一个做了三四天的小程序讲第一次学用RUST的感受,内附代码。 了角语言 从一些渠道听说了R,这个字母挺魔性,那个文章说C和R的团体已经上升到了宗教崇拜的高度,然后,我觉得必 有过人之处,大约10年没碰…...
HBase批量写入优化
HBase批量写入性能优化 对于HBase的批量写入性能优化,可以考虑以下几点: 1.批量写入操作:使用HBasef的批量写入操作可以显著提高性能。将多个写入操作放在一个批次中一起提交。这样可以减少网络通信开销和减少多次写入操作的开销。方法不限。…...
江协科技STM32学习- P19 TIM编码器接口
🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝…...
文件上传、重定向、Gin路由
文件上传 单个文件上传 index.html 文件上传前端页面代码: <!DOCTYPE html> <html lang"zh-CN"> <head><title>index</title> </head> <body> <form action"/upload" method"post"…...
躺平成长:微信小程序运营日记第二天
在进行属于生活的开源之后,自己更加感受到自己存在的渺茫,同时更加开始深刻领会,开源的重要性,在开源,开放,创造,再创新的思维模式下,不发布八部金刚功相关的训练视频,自…...
三分钟速览:Node.js 版本差异与关键特性解析
Node.js 是一个广泛使用的 JavaScript 运行时环境,允许开发者在服务器端运行 JavaScript 代码。随着技术的发展,Node.js 不断推出新版本,引入新特性和改进。了解不同版本之间的差异对于开发者来说至关重要。以下是一个快速指南,帮…...
git创建新分支
git创建新分支 1.先在gitLab上New branch. 2.本地右键git小乌 - /切换/检出-创建新分支,分支名称和上一步创建的一样。 最后记得改个文件提交下,看看gitLab上是否提交成功。...
Chip-seq数据分析处理流程
一、处理过程 要处理 SRR14879780 的 ChIP-seq 数据并进行基序分析(包括比对到参考基因组 hg38.fasta 和峰值调用),你可以按照以下步骤操作,并使用相应的代码。每个步骤会涉及一些常用的生物信息学工具,如 FastQC、Tr…...
嘉兴网站制作软件/白嫖永久服务器
桓峰基因的教程不但教您怎么使用,还会定期分析一些相关的文章,学会教程只是基础,但是如果把分析结果整合到文章里面才是目的,觉得我们这些教程还不错,并且您按照我们的教程分析出来不错的结果发了文章记得告知我们&…...
网站开发支付功能怎么做/百度网盘客户端
我是一名影像科医生,经常需要在家或出差时浏览医院患者影像资料及书写报告,由于医院没有安装影像PACS云储存,造成离开医院就无法远程办公,为了解决这个问题,本着花小钱办大事的原则,经过多方咨询相关专业人…...
苏州比较好的建筑公司/网站优化设计的基础是网站基本要素及每个细节的优化
1. 描述在MySQL中,当我们需要获取某张表中的总行数时,一般会选择使用下面的语句select count(*) from table;其实count函数中除了*还可以放其他参数,比如常数、主键id、字段,那么它们有什么区别?各自效率如何ÿ…...
郴州市地图/百度搜索关键词优化
近年来,越来越多的人加入了测试大军中,很多人也想通过自学来学习软件测试技术加入这个行业,但是现在软件测试的书籍越来越多,也良莠不齐,而且软件测试涉及的技术也越来越多。鉴于此情况,为了回馈大家&#…...
国外网站建设软件有哪些/东莞网络推广托管
在进行Linux 操作的时候,我们常常需要反选操作,下面以删除文件的场景,去示例如何在Linux 命令中使用反选操作反选操作的几种思路1.利用 grep -v 反选操作 (推荐,支持正则表达式)2.shopt -s extglob (打开extglob模式)&#…...
网站制作 长沙/网站开发公司排行榜
XAMPP Apache 无法启动原因1(缺少VC运行库): 这个就是我遇到的问题原因,下载安装的XAMPP版本是xampp-win32-1.7.7-VC9,而现有的Windows XP系统又没有安装VC9运行库,所以无法继续运行相关服务,这…...