文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

多目标跟踪数据集 :mot16、mot17数据集介绍以及多目标跟踪指标评测

2023-09-06 07:34

关注

文章目录

多目标跟踪数据集 MOT16 、MOT1数据集介绍:

数据集百度网分享:
点击此处
提取码: miao
文件格式:

解压MOT16后在文件夹下面有两个目录:testtrain。分别代表训练集和测试集。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这两个目录分别有7个子目录。 每个子目录下都是一段视频的抽帧图片及标注。由于train里面的内容比较全,train里面的数据比test多了一个ground truth,所以下面以train为例介绍。

** MOT16-02**

在“MOT16\train\MOT16-02”目录下有三个目录和一个文件,三个目录分别是:det、gt和img1。一个文件是seqinfo.ini.

在这里插入图片描述
det文件:

det目录下只有一个det.txt文件,每行一个标注,代表一个检测的物体。
在这里插入图片描述

上面每行数字中的含义是:

<frame>, <id>, <bb_left>, <bb_top>, <bb_width>, <bb_height>, <conf>, <x>, <y>, <z> 

第一个代表第几帧,第二个代表轨迹编号(在这个文件里总是为-1),bb开头的4个数代表物体框的左上角坐标及长宽。conf代表置信度,最后3个是MOT3D用到的内容,2D检测总是为-1.

img1:

这个目录下就是把视频一帧帧抽取出来的图片,总共600张。文件名则是从000001.jpg到000600.jpg。
在这里插入图片描述
gt文件:
在这里插入图片描述
第一个代表第几帧,第二个值为目标运动轨迹的ID号,第3个到第六个数代表物体框的左上角坐标及长宽,第7个值为目标轨迹是否进入考虑范围内的标志,0表示忽略,1表示active。第八个值为该轨迹对应的目标种类(种类见下面的表格中的label-ID对应情况),第九个值为box的visibility ratio,表示目标运动时被其他目标box包含/覆盖或者目标之间box边缘裁剪情况。
在这里插入图片描述

seqinfo.ini文件
在这里插入图片描述
主要介绍视频的帧率、分辨率等基本信息。

百度网盘链接:点击此处
提取码:miao

下载后,解压如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在“MOT17\train\MOT17-02”目录下有三个目录和一个文件,三个目录分别是:det、gt和img1。一个文件是seqinfo.ini.

在这里插入图片描述
内容跟16相同

3.1 基础评测指标

1、ID Switches (ID Sw.): 被跟踪目标身份发生错误地更改时被称为身份跳变。在对视频序列的跟踪过程当中,ID Sw.表示所有跟踪目标身份交换的次数。

2、Frames Per Second (FPS): 多目标跟踪器的跟踪速度。

3、False Positives (FP): 在视频序列中不能与 真实轨迹的边界框 相匹配的 假设边界框 被称为假阳性;即本来是假的,预测认为是真的。FP 表示整个视频序列中假阳性的数量。

4、False Negatives (FN): 在视频序列中不能与 假设边界框 相匹配的 真实轨迹的边界框 被称为假阴性;即本来是真的,预测认为是假的。FN 表示整个视频序列中假阴性的数量。

Mostly Tracked tracklets (MT):在跟踪过程中各个目标至少有 80%的视频帧都能被正确地跟踪的跟踪轨迹数量。

Mostly Lost tracklets (ML):在跟踪过程中各个目标至多有 20%的视频帧能被正确地跟踪的跟踪轨迹数量。

Fragments (Frag):真实跟踪轨迹由于某种原因发生中断并在后来又继续被准确跟踪上被称为跟踪碎片。Frag 表示整个视频序列中碎片的总数。

以上 7 种评测指标主要度量多目标跟踪器的基础性能,其中加粗的比较常用;为了进一步评判多目标跟踪器的综合性能,出现了其他指标。

3.2 MOTA和MOTP

CLEAR MOT 指标提出了 多目标跟踪精度MOTA 和 多目标跟踪准确度MOTP 两个综合性的指标,这两个指标能够衡量多目标跟踪器在整体上的性能好坏。

MOTA(Multiple Object Tracking Accuracy) :MOTA主要考虑的是tracking中所有对象匹配错误,给出的是非常直观的衡量跟踪其在检测物体和保持轨迹时的性能,与目标检测精度无关,MOTA取值小于100,但是当跟踪器产生的错误超过了场景中的物体,MOTA可以变为负数。

MOTP(Multiple Object Tracking Precision) : 是使用bonding box的overlap rate来进行度量(在这里MOTP是越大越好,但对于使用欧氏距离进行度量的就是MOTP越小越好,这主要取决于度量距离d的定义方式) MOTP主要量化检测器的定位精度,几乎不包含与跟踪器实际性能相关的信息。

MOTA&MOTP是计算所有帧相关指标后再进行平均的

3.3 IDP、IDR、IDF

IDP : 识别精确度

整体评价跟踪器的好坏,识别精确度 IDP 的分数如下进行计算:
在这里插入图片描述
IDR:识别召回率

它是当IDF1-score最高时正确预测的目标数与真实目标数之比,识别召回率 IDR 的分数如下进行计算:
在这里插入图片描述
IDF1:平均数比率

IDF1是指正确的目标检测数与真实数和计算检测数和的平均数比率,这里, IDF1的分数如下进行计算:
IDF1= I D T P I D T P + 0.5 I D F P + 0.5 I D F N IDF1=\frac{I D T P}{I D T P+0.5 I D F P+0.5 I D F N} IDF1=IDTP+0.5IDFP+0.5IDFNIDTP

上述公式中,IDTP 可以看作是在整个视频中检测目标被正确分配的数量,IDFN 在整个视频中检测目标被漏分配的数量,IDFP 在整个视频中检测目标被错误分配的数量。

以MOT16数据集 评测 Deepsort为例,计算MOTA、 MOTP 、IDSwitch 、IDP 、IDR、IDF1、

  1. 首先准备数据集 上面博客中已经给出数据集下载地址,然后搭建自己的Deepsort跟踪模型,然后以 MOT16数据集中的 下文件为例进行计算:

在这里插入图片描述
因为官网的MOT16-02视频分辨率和数据集中的不同,因此,写一段代码将数据集中的图像帧合并成视频。

600张图片如下:

在这里插入图片描述

代码:

import osimport cv2video_writer = cv2.VideoWriter("result.mp4", cv2.VideoWriter_fourcc(*"mp4v"), 30, (1920, 1080))images_path = "img1"images_list = os.listdir(images_path)images_list.sort()for image_name in images_list:    image = cv2.imread(os.path.join(images_path, image_name))    video_writer.write(image)    show = cv2.resize(image, (1280, 720))    cv2.imshow("test", show)    if cv2.waitKey(10) != ord('q'):        pass

结果为:

MOT16-02

然后使用此视频,用Deepsort代码进行跟踪,会生成一个txt文件和一个跟踪结果视频的文件。
在这里插入图片描述
在这里插入图片描述

然后使用这个txt 文件,并将此数据集重命名为deep_ts.txt 将其和数据集中的 gt.txt 使用下面代码进行评估。

import osimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport motmetrics as mm# 用于正常显示中文plt.rcParams['font.sans-serif'] = ['SimHei']# 用来正常显示符号plt.rcParams['axes.unicode_minus'] = Falsemm.lap.default_solver = 'lap'gt_file = "./gt.txt"deep_ts_file = "./deep_ts.txt"gt = mm.io.loadtxt(gt_file, fmt="mot16", min_confidence=1)deep_ts = mm.io.loadtxt(deep_ts_file, fmt="mot16")deep_ts = deep_ts.sort_values(by=["Id", "FrameId"])deep_acc = mm.utils.compare_to_groundtruth(gt, deep_ts, 'iou', distth=0.5)mh = mm.metrics.create()metrics = ['num_frames', 'num_switches', 'idp', 'idr', 'idf1', 'mota', 'motp', 'precision', 'recall']deep_summary = mh.compute(deep_acc, metrics=metrics, name='deepsort')summary = pd.concat([deep_summary], axis=0, join='outer', ignore_index=False)if os.path.exists("result.csv"):    os.remove("result.csv")summary.to_csv("result.csv")

会得到Deepsort的MOTA、 MOTP 、IDSwitch 、IDP 、IDR、IDF1指标。

来源地址:https://blog.csdn.net/weixin_55775980/article/details/124369512

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯