MOT16数据集做目标检测的预处理(类别合并与清理)

计划使用MOT16数据集做基于ConvLSTM的目标检测,其标注数据在gt.txt中,第8列为分类,有以下12类

  1. Pedestrian(行人)------主要目标,要跟踪

  2. Person on vehicle(车上的人)

  3. Car(轿车)

  4. Bicycle(自行车)

  5. Motorbike(摩托车)

  6. Non motorized vehicle(非机动车)

  7. Static person(静止的人)

  8. Distractor(干扰物)

  9. Occluder(遮挡物)

  10. Occluder on the ground(地面遮挡物)

  11. Occluder full(完全遮挡)

  12. Reflection(倒影)

下面代码把1/2/7合并为1类,把3作为2类,把4/5合并为3类,其他的全部不要,生成new_gt.txt

python 复制代码
import os
import numpy as np

mot16_root = "MOT16/train"
seqs = [d for d in os.listdir(mot16_root) if os.path.isdir(os.path.join(mot16_root, d))]

for seq in seqs:
    gt_path = os.path.join(mot16_root, seq, "gt/gt.txt")
    out_path = os.path.join(mot16_root, seq, "gt/new_gt.txt")
    
    if not os.path.exists(gt_path):
        continue
    
    data = np.loadtxt(gt_path, delimiter=',')
    new_data = []
    
    for row in data:
        cls = int(row[7])
        
        if cls in [1, 2, 7]:
            row[7] = 1
            new_data.append(row)
        elif cls == 3:
            row[7] = 2
            new_data.append(row)
        elif cls in [4, 5]:
            row[7] = 3
            new_data.append(row)
    
    if new_data:
        np.savetxt(out_path, np.array(new_data), fmt='%.6g', delimiter=',')
        print(f"Saved: {out_path}")
相关推荐
飞哥数智坊21 分钟前
一只虾到多只虾:先聊聊我为什么要“拆虾”
人工智能
飞哥数智坊28 分钟前
架构图 SKILL 封装好了,顺便做了虾的适配
人工智能
冬奇Lab34 分钟前
Code Agent 解剖(16):AgentTeams——为什么一个 agent 不够用?
人工智能
东风破_42 分钟前
聊天记录越来越长怎么办?从消息数量截断到 Token 截断
人工智能
冬奇Lab43 分钟前
开源项目第204期:LoopX — 长周期 Agent 控制平面,跑在 Codex/Claude Code 之上的状态管理层
人工智能·开源
ZGIAI1 小时前
旧模型下线前,客服 Agent 怎么迁移
人工智能·架构
东风破_1 小时前
程序重启后,AI 为什么把你忘了?从 InMemory 到持久化 Memory
人工智能
ZGIAI1 小时前
客服知识库更新后,怎么批量验收
人工智能·架构
Asize2 小时前
AI 协作开发新范式:我用 SDD 做了个排版 npm 包
前端·人工智能
IT_陈寒4 小时前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端