视频类评价指标介绍

视频类任务分为视频分类单标签、视频检测、目标追踪共3类,每类使用不同的评价指标。 下面会根据不同类别,对评估任务中的评价指标进行介绍。

视频分类单标签

精确率(Precision)

作用:

用来衡量算法的误检情况的评价指标。

定义:

分类器预测为正类别的样本中,真实为正类别的样本所占的比例。

计算过程:
\[\text{Precision} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}}\]

其中,True Positives(真正例)表示分类器正确预测为正类别的样本数,False Positives(假正例)表示分类器错误预测为正类别的样本数。

召回率(Recall)

作用:

用来衡量算法的漏检情况的评价指标。

定义:

所有真实正类别样本中,被分类器正确预测为正类别的样本所占的比例。

计算过程:
\[\text{Recall} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}}\]

其中,True Positives(真正例)表示分类器正确预测为正类别的样本数,False Negatives(假反例)表示分类器错误预测为负类别的样本数。

F1-score

作用:

用于综合衡量算法漏检和误检情况的评价指标。

定义:

Precision 和 Recall 的调和平均值。

计算过程:
\[F1 = \frac{2 \cdot \text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}\]

混淆矩阵(Confusion Matrix)

作用:

方便地看出机器是否将两个不同的类混淆了。

定义:

矩阵的每一列表示分类器预测的类别,而每一行表示样本真实的类别。

视频检测

mAP(mean Average Precision)

作用:

用来衡量目标检测算法检测精度的评价指标,值越高通常算法检测效果越好。

定义:

所有类别在不同召回率下的平均精确率的平均值。

评估任务中的mAP计算方式采用 COCO 中的算法,即使用插值平均法计算平均精确率,mAP 为 IoU=0.5:0.05:0.95 下的平均值。

计算过程:
  1. 计算预测矩形框与真值矩形框的交并比(Intersection over Union, 简称 IoU),对于 IoU 大于阈值且预测 label 与真实 label 相符的记为 True Positives, 否则记为 False Positives 。

  2. 根据预测矩形框的置信度计算得出不同 Recall 下的 Precision, 使用插值平均法计算平均精确率。

  3. 计算不同 IoU 阈值下的平均精确率,求平均得到单类的 AP(Average Precision)。

  4. 对不同类别的 AP 求取平均值的到最终的 mAP 。

子评价指标:
  • mAP@50: 只计算 IoU=0.50 下的 mAP

  • mAP@75:只计算 IoU=0.75 下的 mAP

  • mAP_small: 只计算小物体(面积小于 32*32)的 mAP

  • mAP_medium:只计算中物体(面积大于 32*32 且小于 96*96)的 mAP

  • mAP_large:只计算大物体(面积大于 96*96)的 mAP

P-R曲线(Precision-Recall Curve)

作用:

用来观察精确率随召回率的变化趋势。

定义:

横轴为召回率,纵轴为精确率的曲线图。

评估任务支持比较不同类别物体的 P-R 曲线,可以通过下拉菜单来选择 P-R 曲线的 IoU 阈值和要展示的类别。

目标追踪

参考多目标追踪挑战(Multiple Object Tracking Challenge)中评价指标。

计算

目标追踪任务的评价指标的计算分为检测框之间的匹配、轨迹之间的匹配、检测框和轨迹之间的关联三部分。故有以下计算过程:

  1. 通过目标检测模型得到视频中每帧图片的检测框;

  2. 通过行人重定向(Re-identification,简称 ReID)将相邻两帧中特征相似度最高的检测框(行人)连接起来,得到追踪轨迹;

  3. 对于同一个视频里面的每帧图片,计算其标注框(Ground Truth,简称GT)框与检测框之间的距离:设置距离阈值(distance threshold,简称 distth),计算框之间的交并比(Intersection over Union, 简称 IoU),得到距离矩阵,大于 distth 的记为 nan;

  4. 对于每帧图片的 object ids(GT 框的 track_id,即目标追踪每个对象的标注 ID,简记为oids)和 hypothesis ids(ReID 得到追踪轨迹中对应检测框的 track_id,即 ReID 后每个追踪对象的 ID,简记为hids),利用上一步中得到的距离矩阵(维度为 len(oids) x len(hids)),通过线性指派方法(参考 匈牙利算法 )最小化距离和函数,得到 oids 中每个对象与 hids 中对象的对应关系及其对应标签(记为 event_type):

    • 初始均记为 RAW (主要用于记录 oids 和 hids);

    • 对于第一帧图片(或 oid 在之前帧中没有出现过),则

      • 若最小化结果对应的距离不是 nan(求最短距离也可能出现 nan ),则 event_type 为 MATCH (记为匹配成功,将对应的 oid 添加到列表 match 中,hid 添加到列表res_match 中),否则,直接考虑下一步;

      • 对于其余 oids 和 hids,没有 hid 对应的 oid 记为 MISS (漏检),没有 oid 对应的 hid 记为 FP (误检)。

    • 对于每一帧图片,逐步考虑以下过程:

      • 若 oid 在列表 match 中,且之前对应的 hid(记为 hprev)在当前帧中出现,且 oid 与 hprev 对应的框之间的距离不是 nan 时,event_type 记为 MATCH ,否则直接考虑下一步;

      • 计算当前帧 GT 框与检测框之间的最小距离和,以及对应的 oids 和 hids,除去距离为 nan 的部分;

      • 若 oid 在列表 match 中,且对应的 hid 是 hprev,则 event_type 为 MATCH ,若 hid 不是 hprev,则记为 SWITCH

      • 若 hid 在列表 res_match 中,且对应的 oid 不是之前帧对应的 oid 时,event_type 为 TRANSFER

      • 注意: SWITCHTRANSFER 可能同时出现。

  5. 统计 oids (hids)中每个 oid (hid)在整个视频中出现的帧数,以及 oid、hid 之间距离不为 nan 时 (“oid”, “hid”) 匹配对出现的次数,通过特殊的矩阵设计,得到矩阵 fnmatrix、fpmatrix、cost,维度均为 (len(oids) + len(hids)) x (len(oids) + len(hids)),以下是简单含义介绍:

    • fnmatrix 表示 oid 出现帧数,(oid, hid) 处需减去同时出现次数;

    • fpmatrix 表示 hid 出现帧数,(oid, hid) 处需减去同时出现次数;

    • cost (cost = fnmatrix + fpmatrix)的最小化距离和函数代表了最小化全局 id 匹配:rids,cids。

  6. 用最小化距离和函数求解矩阵 cost,得到最小 ID 损失匹配(尽可能多地同时出现),得到以下值:

    • idfp 为 fpmatrix 中取 [rids, cids] 对应位置值的和,对应表示 id 匹配后,视频序列总的误检数;

    • idfn 为 fnmatrix 中取 [rids, cids] 对应位置值的和,表示 id 匹配后,视频序列总的漏检数。

统计指标

  • num_misses 是 event_type 为 MISS 的总个数;

  • num_switches 是 event_type 为 SWITCH 的总个数;

  • num_false_positives 是 event_type 为 FP 的总个数;

  • num_detections 是 event_type 为 MATCHSWITCH 的总个数;

  • num_objects 为标注集中有 track_id (每个人出现的次数总和)的样本总数。

以下根据计算过程简单介绍具体评价指标的含义:

GT(Ground Truth Trajectories)

定义:

整个数据集中追踪目标的总数目,即真实标注的轨迹数,也常称作 unique objects number。

MT(Mostly Tracked Targets)

作用:

评估有效追踪轨迹占真实标注轨迹的比例。

定义:

追踪器预测的追踪轨迹中与真实轨迹至少有 80% 匹配成功的轨迹称为有效追踪轨迹。

注意:不考虑轨迹上 ID 的变化。

计算过程:
\[\text{MT} = \frac{\text{有效追踪轨迹}}{\text{真实轨迹}}\]

ML(Mostly Lost Targets)

作用:

评估无效追踪轨迹占真实标注轨迹的比例。

定义:

追踪器预测的追踪轨迹中与真实轨迹至多有 20% 匹配成功的轨迹称为无效追踪轨迹。

注意:不考虑轨迹上 ID 的变化。

计算过程:
\[\text{ML} = \frac{\text{无效追踪轨迹}}{\text{真实轨迹}}\]

Frag(Fragmentation Number)

作用:

轨迹被打断的总次数。

定义:

同一个 oid,前一帧的 event_type 不是 MISS ,后一帧的 event_type 变成 MISS ,则记为一次 fragmentation。

Frag 为 fragmentation 的总次数。

FP(False Positive)

作用:

主要考虑检测框的总误检数。

定义:

整个数据集中,所有视频计算结果里 event_type 为 FP 的总次数。

FN(False Negative)

作用:

主要考虑检测框的总漏检数。

定义:

整个数据集中,所有视频计算结果里 event_type 为 MISS 的总次数。

Rcll(Recall)

作用:

主要用来衡量目标检测算法的漏检情况。

定义:

所有要追踪样本中,被追踪器正确追踪的样本所占比例。

计算过程:
\[\text{Rcll} = \frac{\text{num}\_\text{detections}}{\text{num}\_\text{objects}}\]

Prcn(Precision)

作用:

主要用来衡量目标检测算法的误检情况。

定义:

所有要追踪样本中,被追踪器正确追踪的样本所占比例。

计算过程:
\[\text{Prcn} = \frac{\text{num}\_\text{detections}}{\text{num}\_\text{false}\_\text{positives} + \text{num}\_\text{objects}}\]

ID Sw.(Number of Identity Switches)

作用:

匹配轨迹 ID 发生变化的总次数。

定义:

整个数据集中,所有视频计算结果里 event_type 为 SWITCH 的总次数。

IDP(ID Precision)

作用:

根据跟踪某个目标的时间长短(帧数),考察跟踪的连续性和重识别的准确性,主要用于衡量 ReID 算法的误检情况。

计算过程:
\[\text{IDP} = \frac{\text{idtp}}{\text{idtp} + \text{idfp}}\]

其中, idtp = num_objects - idfn 表示正确匹配的 id 数。

IDR(ID Recall)

作用:

根据跟踪某个目标的时间长短(帧数),考察跟踪的连续性和重识别的准确性,主要用于衡量 ReID 算法的漏检情况。

计算过程:
\[\text{IDR} = \frac{\text{idtp}}{\text{idtp} + \text{idfn}}\]

IDF1(ID F1 Score)

作用:

跟踪某个目标的时间长短(帧数),考察跟踪的连续性和重识别的准确性,主要用于综合衡量 ReID 算法漏检和误检情况。

定义:

IDP 和 IDR 的调和平均值

计算过程:
\[\text{IDF1} = \frac{2 \cdot \text{IDP} \cdot \text{IDR}}{\text{IDP} + \text{IDR}}\]

MOTA(Multi-Object Tracking Accuracy)

作用:

评价追踪检测整体准确度,比较依赖目标检测的性能。

定义:

计算所有帧的漏检、误检、匹配 ID 发生变化等情况。

计算过程:
\[\text{MOTA} = 1 - \frac{\text{num}\_\text{misses} + \text{num}\_\text{switches} + \text{num}\_\text{false}\_\text{positives}}{\text{num}\_\text{objects}}\]

MOTP(Multi-Object Tracking Precision)

作用:

评价追踪检测整体精确度,主要用于评估位置误差。

定义:

GT 框与检测框之间距离的平均值。

计算过程:
\[\text{MOTP} = \frac{\sum_{o,h} d_{oh}}{\text{num}\_\text{detections}}\]

其中,\(d_{oh}\) 表示 oid 与 hid 之间的距离。

HOTA(Higher Order Tracking Accuracy)

作用:

评价高阶追踪准确性。

定义:

均衡考虑检测准确率、匹配准确率,定位准确率的单一指标。

计算过程:
\[\text{HOTA} = \int_{0}^{1} \text{HOTA}_{\alpha} d\alpha \approx \frac{1}{19} \sum_{\alpha\in \left\{0.05, 0.1, ..., 0.9, 0,95\right\}} \text{HOTA}_{\alpha}\]
\[\text{HOTA}_{\alpha} = \sqrt{\frac{\sum_{c\in \left\{\text{TPA}\right\}}\mathcal{A}(c)}{ \text{num}\_\text{detections} + \text{num}\_\text{misses} + \text{num}\_\text{false}\_\text{positives}}}\]
\[\mathcal{A}(c) = \frac{\left| \text{TPA}(c)\right|}{\left| \text{TPA}(c)\right| + \left| \text{FNA}(c) \right| + \left| \text{FPA}(c) \right|}\]

其中,\(\alpha\) 为超参数,是定位阈值,需 GT 框与检测框的 IOU 不低于 \(\alpha\) ,从 0.05 依次递增 0.05 直到 0.95 ,即可得到 19 个不同超参情况下的 HOTA 指标,取其平均近似最终的 HOTA 指标;TPA(True Positive Associations)为保存每个视频 TP (GT 框与检测框成功配对)的集合,用 c 表示该 TP 对应的 GT 框的 track_id 和检测框对应的 track_id,即同一个集合中 GT 框之间对应的 track_id 相同,检测框之间对应的 track_id 相同。其余符号含义以此类推。 |集合| 表示集合中元素的个数。