视觉目标检测标注xml格式文件解析可视化 - python 实现

视觉目标检测任务,通常用 labelimage标注,对应的标注文件为xml。

该示例来源于开源项目:https://gitcode.com/DataBall/DataBall-detections-100s/overview

读取 xml 标注文件,并进行可视化示例如下:

#-*-coding:utf-8-*-
# date:2024-09
# Author: DataBall - Xian
# function: show yolo data of voc format anno

import cv2
import os
import numpy as np
import xml.etree.cElementTree as et
import supervision as sv

if __name__ == "__main__":

    path_data='D:/dataset/img_list/bike/'

    idx = 0
    box_annotator = sv.BoxAnnotator()

    for file in os.listdir(path_data):
        if ".jpg" in file or ".png" in file:
            print(" ->[{}] {}".format(idx,file))
            path_img = path_data + file
            path_label = path_img.replace(".jpg",".xml").replace(".png",".xml")
            if not os.access(path_label,os.F_OK): # 判断标注文件是否存在
                continue
            img = cv2.imread(path_img) # 读取图片

            tree=et.parse(path_label)
            root=tree.getroot()
            for Object in root.findall('object'):
                name=Object.find('name').text # 获取类别名字
                # 获取坐标 xyxy
                bndbox=Object.find('bndbox')
                x1= np.float32((bndbox.find('xmin').text))
                y1= np.float32((bndbox.find('ymin').text))
                x2= np.float32((bndbox.find('xmax').text))
                y2= np.float32((bndbox.find('ymax').text))

                # opencv 方式可视化
                # cv2.rectangle(img, (int(x1),int(y1)), (int(x2),int(y2)), (255,100,100), 2)
                # cv2.putText(img, "{}".format(name), (int(x1),int(y1)),\
                # cv2.FONT_HERSHEY_PLAIN, 2.5, (0, 55, 255), 6)
                # cv2.putText(img, "{}".format(name), (int(x1),int(y1)),\
                # cv2.FONT_HERSHEY_PLAIN, 2.5, (0, 255, 0), 2)

                # sv.BoxAnnotator() 方式可视化
                box_ = np.array([int(x1),int(y1), int(x2),int(y2)]).reshape(-1,4)
                det_ = sv.Detections(xyxy=box_)
                img = box_annotator.annotate(scene=img, detections=det_, labels=[name])

            cv2.namedWindow('image',0)
            cv2.imshow('image',img)
            if cv2.waitKey(30) == 27:
                break
    cv2.destroyAllWindows()

助力快速掌握数据集的信息和使用方式。

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

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

相关文章

金和OA-C6 ApproveRemindSetExec.aspx XXE漏洞复现(CNVD-2024-40568)

0x01 产品描述: 金和C6协同管理平台是以"精确管理思想"为灵魂,围绕“企业协同四层次理论”模型,并紧紧抓住现代企业管理的六个核心要素:文化 Culture、 沟通Communication 、 协作Collaboration 、创新 Creation、 控制…

ETL集成工具丨如何运用ETLCloud单步调试断点功能

在现代数据处理领域,ETLCloud 的单步调试断点功能正成为数据管理的重要工具。ETLCloud 是一个强大的云端数据处理平台,它提供了灵活的单步调试功能,使得用户能够逐步跟踪和分析数据处理流程。本文将探讨如何运用 ETLCloud 的单步调试断点功能…

GB/T 28046.2-2019 道路车辆 电气及电子设备的环境条件和试验 第2部分:电气负荷(3)

写在前面 本系列文章主要讲解道路车辆电气及电子设备的环境条件和试验GB/T 28046标准的相关知识,希望能帮助更多的同学认识和了解GB/T 28046标准。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 第2部分:电气负荷 4.9 抛负载…

开源陪玩系统平台源码-支持游戏线上陪玩家政线下预约等多场景应用支持H5+小程序+APP

陪玩平台的流行可以归因于多个因素,包括现代生活的快节奏和压力、电竞行业的带动、孤独经济的兴起,以及技术的进步等。这些因素共同推动了陪玩平台的发展,使其成为人们寻求社交互动和休闲娱乐的重要途径。 现代生活的快节奏和压力 现代生活…

1:基本电路专题:R(电阻)的介绍

说实话这个其实我不想写的,因为这个是初中的知识,并没有很难,但是为了保持整齐性,我还是写了一下关于这个的知识点。是电子学中三大基本无源元件之一。(R(电阻),L(电感),…

解决注册Kaggle出现的“Captcha must be filled out”问题

首先,出现这个问题后,就搜索了一下别的博主的方法。 使用header editor 插件 首先,下载扩建: 然后进行重定向: 管理之后,输入下面的地址,然后下载-保存: 但是,这条显然…

大模型面试题持续更新_Moe(2024-10-30)

扫一扫下方,获取更多面试真题的集合 Moe和集成学习方法有什么异同? MoE和集成学习的思想异曲同工,都是集成了多个模型的方法,Moe主要是将预测任务分为多个子任务,然后通过路由网络的形式决定对于当前的数据该使用哪个…

Vue-$el属性

原博客地址:深入 Vue.js 的心脏:全面剖析 $el 属性_vue $el-CSDN博客 目录 1 $el是什么 1.1 $el本质 1.2 访问$el时机 1.3 $el与模板的关系 2 $el使用场景 2.1 集成第三方库 2.2 操作DOM元素样式 2.3 处理焦点和事件 2.4 实现自定义指令 3 $e…

小满OKKICRM与钉钉数据集成方案解析

小满-宜搭产品同步:小满OKKICRM数据集成到钉钉的技术实现 在企业信息化建设中,系统间的数据集成是提升业务效率和数据一致性的关键环节。本文将聚焦于“小满-宜搭产品同步”方案,详细探讨如何将小满OKKICRM的数据高效、可靠地集成到钉钉平台…

【prefect】Prefect二:python任务调度工具 Prefect 基础使用教程 | work pool | Deployment | flow

一、Work Pool 1、什么是 Work Pool 白话解释:集中管理部署脚本的开关 Work pools allow you to switch between different types of infrastructure and to create a template for deployments. Data platform teams find work pools especially useful for mana…

蓝海创意云入选中国夏衍电影学会工业与科技影视专业委员会成员单位

党的二十届三中全会指出,科技自立自强是中国式现代化的有力保障。科技兴则民族兴,科技强则国家强。为深入的贯彻落实这一重要部署,推动工业与科技领域的融合发展充分发挥电影艺术在传播科技创新精神、展现工业发展成就方面的独特作用&#xf…

基于SpringBoot的“CSGO赛事管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“CSGO赛事管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 赛事信息界面图 赛事通知界面…

WPF+MVVM案例实战(十三)- 封装一个自定义消息弹窗控件(上)

文章目录 1、案例效果2、功能实现1、创建文件2、资源文件获取3、枚举实现3、弹窗实现1、界面样式实现2、功能代码实现4、总结1、案例效果 2、功能实现 1、创建文件 打开 Wpf_Examples 项目,我们在用户控件类库中创建一个窗体文件 SMessageBox.xaml,同时创建枚举文件夹 Enum…

室内障碍物射线追踪算法matlab模拟仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 增加发射点 加入室内墙壁: 同时增加发射点和室内墙壁: 2.算法运行软件版本 matlab2022a 3.部分…

荒野大镖客:救赎 PC版整合包

游戏名称:荒野大镖客:救赎 英文名称:Red Dead Redemption 游戏类型:动作冒险类(ACT)游戏 游戏制作:Rockstar Games/Double Eleven 游戏发行:Rockstar Games 游戏平台:PC 发售时间:20…

ubuntu双屏只显示一个屏幕另一个黑屏

简洁的结论: 系统环境 ubuntu22.04 nvidia-535解决方案 删除/etc/X11/xorg.conf 文件 记录一下折腾大半天的问题。 ubuntu系统是22.04,之前使用的时候更新驱动导致桌面崩溃,重新安装桌面安装不上,请IT帮忙,IT一番操作过后也表示…

Linux 练习三

1、建立用户组 shengcan,其id 为 2000 [rootlocalhost 桌面]# groupadd -g 2000 shengchan 2、建立用户组 caiwu,其id 为 2001 [rootlocalhost 桌面]# groupadd -g 2001 caiwu 3、建立用户组 jishu,其 id 为 2002 [rootlocalhost 桌面]#…

深度学习数学基础之梯度

深度学习数学基础之梯度 方向余弦 方向导数 梯度(向量) 变化率最大的方向或者说方向导数最大的方向就是梯度向量的方向指向方向导数变化最大的方向

Unity XR Interaction Toolkit 开发教程(1):OpenXR 与 XRI 概述【3.0 以上版本】

文章目录 📕Unity XR 开发架构🔍底层插件(对接硬件)🔍高层 SDK(面向应用交互层) 📕OpenXR📕XR Interaction Toolkit🔍特点🔍XRI 能够实现的交互类…

2024-10-29 商业分析-盗取他人游戏MOD牟利-记录

摘要: 2024-10-29 商业分析-盗取他人游戏MOD牟利-记录 事件: 【实锤】《真英雄》盗用本人《风林火山》mod地图售卖牟利!_ryan_knight_12吧_百度贴吧 真英雄??我从未见过如此厚颜无耻之人【ryan_knight_12吧】_百度贴吧…