Files
ieemoo-ai-detecttracking/dataset/multi-trajs.py
2025-04-18 14:41:53 +08:00

72 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
"""
Created on Mon Mar 10 09:33:35 2025
基准数据集筛选选取tracking输出多个轨迹的事件
@author: ym
"""
import os
import numpy as np
import sys
sys.path.append(r"D:\DetectTracking")
from tracking.utils.read_data import extract_data, read_tracking_output_realtime
def get_multitraj_file(spath, pattern):
multi_traj_events = []
n = 0
for evtname in os.listdir(spath):
name, ext = os.path.splitext(evtname)
eventpath = os.path.join(spath, evtname)
evt = name.split('_')
condt = len(evt)>=2 and evt[-1].isdigit() and len(evt[-1])>=8
if not condt: continue
if not os.path.isdir(eventpath): continue
trackingboxes = []
for dataname in os.listdir(eventpath):
if os.path.splitext(dataname)[-1] in [".jpg", ".png"]:
continue
datapath = os.path.join(eventpath, dataname)
if not os.path.isfile(datapath): continue
CamerType = dataname.split('_')[0]
if pattern=="realtime" and dataname.find("_tracking_output.data")>0:
trackingboxes, trackingfeats, tracking_outboxes, tracking_outfeats = read_tracking_output_realtime(datapath)
if pattern=="evtsplit" and dataname.find("_track.data")>0:
bboxes, ffeats, trackerboxes, trackerfeats, trackingboxes, trackingfeats = extract_data(datapath)
if len(trackingboxes)>=2:
multi_traj_events.append(evtname)
n += 1
print(f"{n}: {evtname}")
break
multi_traj_file = os.path.join(spath, "multi_traj_file.txt")
with open(multi_traj_file, "w") as file:
for item in multi_traj_events:
file.write(item + "\n")
def main():
spaths = [r"\\192.168.1.28\share\测试视频数据以及日志\各模块测试记录\比对测试\1212",
r"\\192.168.1.28\share\测试视频数据以及日志\各模块测试记录\比对测试\1216",
r"\\192.168.1.28\share\测试视频数据以及日志\各模块测试记录\比对测试\1218",
r"\\192.168.1.28\share\测试视频数据以及日志\各模块测试记录\比对测试\202412"
]
pattern = "evtsplit" # realtime # 全实时版、事件切分版数据读取方式
for spath in spaths:
get_multitraj_file(spath, pattern)
if __name__ == '__main__':
main()