【目标跟踪】MOT数据集GroundTruth可视化

news2024/11/20 14:18:42

MOT数据集格式简介

MOT15数据集下载:https://pan.baidu.com/s/1foGrBXvsanW8BI4eybqfWg?pwd=8888

以下为一行gt示例:

1,1,1367,393,73,225,1,-1,-1,-1

各列数据对应含义如下

<frame>,<id>,<bb_left>,<bb_top>,<bb_width>,<bb_height>,<conf>,<x>,<y>,<z>
  • frame:图片帧id
  • id:目标id
  • bb_left:bbox左上角坐标x
  • bb_top:bbox左上角坐标y
  • bb_width:bbox的宽度
  • bb_height:bbox的高度
  • conf:置信度
  • x:三维坐标系x值,对于二维任务填充为-1
  • y:三维坐标系y值,对于二维任务填充为-1
  • z:三维坐标系z值,对于二维任务填充为-1

gt可视化

由于是跟踪任务,因此在可视化检测框的同时进一步添加箭头,用来标识目标的运动轨迹。

处理思路是读取一张图片后,同时读取两张图片的gt,若两张图片同时包含同一个目标,则用箭头连接前一帧bbox的中心点和后一帧bbox的中心点。

具体代码如下:

import cv2


def match_obj(obj_list, obj_id):
    try:
        index = obj_list.index(obj_id)
    except:
        index = -1
    return index


def main(i):
    img = cv2.imread("img/" + "0000{:0>2d}.jpg".format(i))
    img2 = img
    with open('gt/gt.txt', 'r') as f:
        lines = f.readlines()
        object_list = []
        center_list = []
        for line in lines:
            img_id = line.split(',')[0]
            if img_id == str(i):
                object_id = line.split(',')[1]
                object_list.append(object_id)
                x, y, w, h = int(line.split(',')[2]), int(line.split(',')[3]), int(line.split(',')[4]), int(
                    line.split(',')[5])
                center1 = (int(int(x) + int(w) / 2), int(int(y) + int(h) / 2))
                center_list.append(center1)
            if img_id == str(int(i) + 1):
                object_id = line.split(',')[1]
                index = match_obj(object_list, object_id)
                x, y, w, h = int(line.split(',')[2]), int(line.split(',')[3]), int(line.split(',')[4]), int(
                    line.split(',')[5])
                center2 = (int(int(x) + int(w) / 2), int(int(y) + int(h) / 2))
                if index != -1:
                    img2 = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255))
                    img2 = cv2.arrowedLine(img2, center_list[index], center2, (0, 255, 255), 1, 8, 0, 0.5)

    cv2.imwrite("result/" + "0000{:0>2d}.jpg".format(i), img2)


if __name__ == '__main__':
    for i in range(1, 52):
        main(i)

可视化效果如图所示:

在这里插入图片描述

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

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

相关文章

autocut

在讲 OpenAI Whisper 前先做了一个剪视频小工具【论文精读44】_哔哩哔哩_bilibili更多论文&#xff1a;https://github.com/mli/paper-reading, 视频播放量 58633、弹幕量 233、点赞数 2732、投硬币枚数 1630、收藏人数 1465、转发人数 604, 视频作者 跟李沐学AI, 作者简介 &am…

什么是python,一篇带你详细了解Python

Python是一种跨平台的计算机程序设计语言&#xff0c;是ABC语言的替代品&#xff0c;属于面向对象的动态类型语言&#xff0c;最初被设计用于编写自动化脚本&#xff0c;随着版本的不断更新和语言新功能的添加&#xff0c;越来越多被用于独立的、大型项目的开发。 python前景…

挖掘用户真实需求 避坑5大技巧

1、用户总是“说一套 做一套” 在进行需求市场调研时&#xff0c;我们问1000个用户&#xff0c;是否想要黄金&#xff0c;几乎所有的用户都是肯定的回答。如果我们以此认定&#xff0c;黄金是用户的真实需求会过于草率。 我们需继续追问用户&#xff1a;买黄金做什么&#xff1…

【微信小程序开发】第 7 课 - 小程序的组件

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、小程序中组件的分类 3、常用的视图容器类组件 3.1、view 组件 3.2、scroll - view 组件 3.3、swiper 和 swiper…

【youcans动手学模型】Xception 模型-CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】Xception 模型-CIFAR10图像分类 1. Xception 神经网络模型1.1 模型简介1.2 论文介绍1.3 分析与讨论 2. 在 PyTorch 中定义 Xception 模型类2.1 深度可分离卷积2.2 带残差连接的…

【九章斩题录】从尾到头打印链表(JZ6)

精品题解 &#x1f525; 《九章斩题录》 &#x1f448; 猛戳订阅 目录 JZ6 - 从尾到头打印链表 「 法一 」链表元素存入数组后再反转 「 法二 」递归大法 「 法三 」栈 JZ6 - 从尾到头打印链表 &#x1f4da; 题目&#xff1a;输入一个链表的头节点&#xff0c;按链表从…

苹果iOS 17新功能:重置密码 72 小时内可使用旧密码再次重置

一些用户可能会遇到&#xff0c;在修改了 iPhone 密码之后&#xff0c;突然忘记新密码的情况。现在苹果在 iOS 17 中加入了新的解决方案&#xff1a;在重置密码的 72 小时之内&#xff0c;如果用户不小心忘记了新设置的密码&#xff0c;仍然可以使用旧密码进行再次重置。 在重…

TS系列之工具类型Partial、Required、Pick、Record详解,示例

TS系列之工具类型Partial、Required、Pick、Record详解&#xff0c;示例 文章目录 前言一、Partial<Type>二、Required<Type>三、Pick<Type, Keys>四、Record<Keys, Type>总结 前言 本片文章主要利用上一篇所学的keyof做一个延申与扩展的学习。在Type…

OpenGaussDB2.0.1

目录 1. GaussDB版本2. OpenGaussDB介绍3. 单节点安装3.1 环境配置3.2 安装 4. 远程连接设置 1. GaussDB版本 GaussDB的版本&#xff1a; GaussDB 100&#xff1a;目前暂不发布&#xff0c;公司合作伙伴需向华为提交申请&#xff08;GaussDB 100 将在 2020 年被正式命名为 Gaus…

Redis入门 - 3种特殊数据类型

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis入门 - 3种特殊数据类型 | CoderMast编程桅杆https://www.codermast.com/database/redis/three-special-datatype.html 在我们平常的业务中基本只会使用到Redis的基本数据类型&#xff08;String、List、Hash、Set、S…

浅谈.NET语言开发应用领域

.NET语言是一种跨平台的开发框架&#xff0c;适用于各种应用程序的开发。以下是一些常见的.NET语言开发应用领域&#xff1a; 桌面应用程序开发&#xff1a;使用.NET框架开发的桌面应用程序可以在Windows操作系统上运行&#xff0c;包括Windows Forms和WPF。这些应用程序可以用…

CentOS开机报错““error can‘t find command ‘:‘“处理方法

CentOS开机报错"error cant find command :"处理方法 本文为故障描述和问题记录。converterP2V迁移CentOS7到虚拟机&#xff0c;开机报错"error can’t find command ‘:’"的处理方法。 本文为CentOS7的操作记录&#xff0c;其他版本可以参考&#xff0c;…

CASAIM光学彩色三维扫描仪助力文物艺术品三维数字化3D打印

文物艺术品数字化&#xff0c;实际上是一种文物艺术品信息的记录方式&#xff0c;除了运用视频、照片、录音等多媒体形式将某些文物进行记录外&#xff0c;文物艺术品数字化主要是指针对有形文化遗产采用非接触式扫描得到的三维数字化记录&#xff0c;通过实景三维建模&#xf…

GitHub 上传自己的项目

文章目录 前言一、步骤1.GitHub 创建项目2.Git 上传本地项目到 GitHub3.Git 命令整理 总结 前言 不附 Demo 连接的博客不是好博客&#xff0c;所以我们要做个乐于助人&#xff0c;有责任心的人&#xff0c;这篇文章手把手教你如何在 GitHub 上传自己的项目&#xff0c; 一、步…

【OpenMMLab AI实战营二期笔记】第五天 MMPretrain代码课

1.环境安装 conda activate mmpre # 激活创建好的环境,确保安装好pytorch,可以使用gpu git clone https://github.com/open-mmlab/mmpretrain.git # 下载mmpre源码 cd mmpretrain # 进入mmpretrian目录 pip install openmim # 安装管理工具 mim install -e ".[multimodal…

JAVA开发运维(系统上到生产环境准备工作)

一、前言 java项目在开发环境开发完成&#xff0c;在测试环境测试没有问题后&#xff0c;就需要发布到生产环境&#xff0c;如果系统是对公众的&#xff0c;那就需要很多工作了。比如服务器申请&#xff0c;域名申请&#xff0c;渗透测试&#xff0c;漏洞扫描&#xff0c;公网…

第二章(第二节):导数与微分

1.导数与微分 1.导数概念 设曲线 L 的方程 y=f(x),a ≤ x ≤ b,x0 ∈ (a, b),在曲线 L 上的点 M0(x0, y0) 附近任取一点 M(x0 + Δx, y0 + Δy),过 M0 与 M 作曲线的割线M~0~M,的斜率为:当 x→x0 时,点 M 沿着曲线 L 趋向 M0,与此同时,割线 M0M 趋向一个极限位置 M0T…

想要转行的一定要看软件测试发展简史+学习路线

迄今为止&#xff0c;软件测试的发展一共经历了五个重要时期&#xff1a; 调试为主 20世纪50年代&#xff0c;计算机刚诞生不久&#xff0c;只有科学家级别的人才会去编程&#xff0c;需求和程序本身也远远没有现在这么复杂多变&#xff0c;相当于开发人员一人承担需求分析&am…

idea设置注释模板

目录 设置注释文件模板设置模板 设置注释文件模板 Ctrl Alt S 打开设置&#xff0c;Editor - File and Code Templates 选择class、interface、enum根据自己需要选择需要添加注释的文件&#xff0c;依次添加如下配置内容 /**1. ClassName ${NAME}2. Description TODO3. Aut…

BUUCTF Unencode 1

题目描述&#xff1a; 密文&#xff1a; 89FQA9WMD<V1A<V1S83DY.#<W3$Q,2TM]解题思路&#xff1a; 1、观察密文&#xff0c;尝试Base85、Base91等编码&#xff0c;均失败。 2、结合题目&#xff0c;联想到UUencode编码&#xff0c;尝试后成功&#xff0c;得到flag。 …