import motmetrics as mm import pandas as pd # 读取ground truth和结果文件 gt = pd.read_csv('/home/suml/docker/su/Yolov5-Deepsort/gt.txt', header=None) res = pd.read_csv('/home/suml/docker/su/Yolov5-Deepsort/gt.txt', header=None) # 创建一个accumulator对象 acc = mm.MOTAccumulator(auto_id=True) # 假设文件格式为:, , , , , , , , for frame in gt[0].unique(): gt_frame = gt[gt[0] == frame] res_frame = res[res[0] == frame] # 提取ID和位置 gt_ids = gt_frame[1].values gt_positions = gt_frame[[2, 3, 4, 5]].values res_ids = res_frame[1].values res_positions = res_frame[[2, 3, 4, 5]].values # 更新accumulator acc.update( gt_ids, res_ids, mm.distances.iou_matrix(gt_positions, res_positions, max_iou=0.5) ) # 计算指标 mh = mm.metrics.create() summary = mh.compute(acc, metrics=['idf1', 'mota', 'motp'], name='DeepSORT') print(summary)