当前位置: 首页 > news >正文

DarkLabel2.4版本导入MOT17数据集

目录

    • 背景
    • 导入效果
    • MOT17数据集说明
    • DarkLabel
    • 导入视频
    • 导入gt文件

背景

做目标追踪,目前找了一圈开源工具,发现DarkLabel还是很好用的,提供自动目标跟踪,标注很方便。
由于目标追踪我用的是bytetrack,官网是用mot17数据集训练的,我想看下官方数据集,以便于自己打标

导入效果

在这里插入图片描述

MOT17数据集说明

MOT官方地址https://motchallenge.net/data/MOT17/
用于目录跟踪的数据集
mot17 gt数据集介绍
在这里插入图片描述
gt:包含检测物体的标注信息,图片对应帧数、对象id、接下来4个代表Bounding box、目标轨迹是否进入考虑范围内的标志、分类类型、可见程度

DarkLabel

https://github.com/darkpgmr/DarkLabel 官网地址
修改darklable.yml,用来符合MOT17数据集的格式

format2:    # MOT (predefined format]fixed_filetype: 1                 # if specified as true, save setting isn't changeable in GUIdata_fmt: [fn, id, x1, y1, w, h, c=-1, c=-1, c=-1, c=-1]gt_file_ext: "txt"                 # if not specified, default setting is usedgt_merged: 1                    # if not specified, default setting is usedclasses_set: "coco_classes"     # if not specified, default setting is usedname: "MOT"       

data_fmt 和上述MOT17数据集的说明一致,由于我的是bytetrack,所以我的格式为 [fn, id, x1, y1, w, h, c=-1, c=-1, c=-1, c=-1] ,后面4个训练用不到,填写-1

导入视频

由于官网提供的视频尺寸是不对的,所以我用代码通过图片目录生成视频
代码如:

import cv2
import os# 设置图片目录和视频输出文件名
image_folder = 'E://code//ByteTrack-main//datasets//mot//train//MOT17-02-DPM//img1'  # 替换为你的图片目录
video_output = 'output_video.mp4'# 获取目录下的所有图片文件,并按帧顺序排序
images = [img for img in os.listdir(image_folder) if img.endswith(".png") or img.endswith(".jpg")]
images.sort()  # 确保按顺序排序# 设置视频参数
frame_width = 1920
frame_height = 1080
fps = 30# 创建视频写入对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # 使用 mp4 编码
video = cv2.VideoWriter(video_output, fourcc, fps, (frame_width, frame_height))# 逐帧读取图片并写入视频
for image in images:img_path = os.path.join(image_folder, image)frame = cv2.imread(img_path)# 调整图片大小frame = cv2.resize(frame, (frame_width, frame_height))# 写入视频文件video.write(frame)# 释放视频写入对象
video.release()
cv2.destroyAllWindows()print(f'视频已生成: {video_output}')

导入gt文件

从https://motchallenge.net/ 官网下载好训练数据后,通过DarkLabel导入gt文件
在这里插入图片描述

最后就可以实现导入mot17的数据集了

相关文章:

  • 如何解决跨境电商税务管理难题
  • Android常用C++特性之lambda表达式
  • 2-107 基于matlab的hsv空间双边滤波去雾图像增强算法
  • Linux 简易shell编写
  • ResNet18果蔬图像识别分类
  • Git提示信息 Pulling is not possible because you have unmerged files.
  • 线段树查询区间回文+区间字母右移
  • Python NumPy 标准数据生成:高效创建与操作数组
  • SQL Server实现limit用法
  • 初识chatgpt
  • cnn机器学习时python版本不兼容报错
  • Android 10.0 Launcher3禁止改变density等系统密度导致布局变化hotseat靠右边显示功能实现
  • 查询最近正在执行的sql(DM8 : 达梦数据库)
  • Electron 隐藏顶部菜单
  • Docker的安装和使用
  • 【技术性】Search知识
  • Laravel Telescope:优雅的应用调试工具
  • laravel with 查询列表限制条数
  • Material Design
  • Promise面试题,控制异步流程
  • 大型网站性能监测、分析与优化常见问题QA
  • 复杂数据处理
  • 基于web的全景—— Pannellum小试
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 跨域
  • 实现菜单下拉伸展折叠效果demo
  • 网络应用优化——时延与带宽
  • 移动端唤起键盘时取消position:fixed定位
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​queue --- 一个同步的队列类​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #pragma data_seg 共享数据区(转)
  • (7)摄像机和云台
  • (javaweb)Http协议
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (笔试题)分解质因式
  • (二)pulsar安装在独立的docker中,python测试
  • (六)c52学习之旅-独立按键
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (四)事件系统
  • (五)关系数据库标准语言SQL
  • (转) ns2/nam与nam实现相关的文件
  • (轉)JSON.stringify 语法实例讲解
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .Net Redis的秒杀Dome和异步执行
  • .net Signalr 使用笔记
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • @Import注解详解
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [ 数据结构 - C++] AVL树原理及实现
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹