Track Any Anomalous Object: A Granular Video Anomaly Detection Pipeline
论文摘要
Video anomaly detection (VAD) is crucial in scenarios such as surveillance and autonomous driving, where timely detection of unexpected activities is essential. Although existing methods have primarily focused on detecting anomalous objects in videos -- either by identifying anomalous frames or objects -- they often neglect finer-grained analysis, such as anomalous pixels, which limits their ability to capture a broader range of anomalies. To address this challenge, we propose a new framework called Track Any Anomalous Object (TAO), which introduces a granular video anomaly detection pipeline that, for the first time, integrates the detection of multiple fine-grained anomalous objects into a unified framework. Unlike methods that assign anomaly scores to every pixel, our approach transforms the problem into pixel-level tracking of anomalous objects. By linking anomaly scores to downstream tasks such as segmentation and tracking, our method removes the need for threshold tuning and achieves more precise anomaly localization in long and complex video sequences. Experiments demonstrate that TAO sets new benchmarks in accuracy and robustness. Project page available online.
AI解读
好的,我来详细分析这篇论文,重点关注其方法和技术细节,并结合你的要求进行结构化阐述。
1. 核心方法与创新点
* 核心方法论:
这篇论文提出了一种名为 "Track Any Anomalous Object (TAO)" 的新型视频异常检测 (VAD) 框架。核心思想是将传统的异常检测问题,从识别异常帧或异常对象,提升到对视频中细粒度的异常对象进行像素级的追踪。TAO 框架整合了对象级别的异常检测和像素级别的分割能力,提供了一种更全面和精确的异常定位方法。
* 主要创新点:
* 细粒度异常检测框架: TAO 是首个将多个细粒度异常对象(像素级别)的检测整合到一个统一的框架中。
* 像素级异常对象追踪: 将异常检测问题转化为像素级别的异常对象追踪问题,而不是简单的像素级异常评分。
* 消除阈值依赖: 通过将异常评分与图像分割和视频跟踪等下游任务联系起来,消除了传统方法中对阈值调整的依赖,提高了鲁棒性。
* 新的评估标准: 提出了一个新的测试标准,统一了像素级别和对象级别的评估,更适合评估复杂场景下的异常检测性能。
* 集成视觉基础模型: TAO 框架巧妙地利用了像 SAM2 这样的预训练分割模型,无需针对特定异常数据集进行微调,实现了精确的像素级追踪。
2. 算法细节与流程
TAO 框架包含四个主要步骤:
1. 边界框提取(Bounding Boxes Extraction):
* 首先,使用预训练的对象检测算法(D)来识别视频帧 (f) 中的潜在对象。
* 对于给定的输入帧 f,对象检测模型 D 输出 m 个边界框 b1, b2, ..., bm,每个边界框都与一个类别标签 y1, y2, ..., ym 相关联。
* 公式表达:$$\{(b_1, y_1), (b_2, y_2), ..., (b_m, y_m)\} = D(f)$$
2. 异常框提取(Anomalous Boxes Extraction):
* 使用对象中心 VAD 算法为每个边界框计算一个异常分数 si,评估每个对象是否异常。
* 异常分数是基于对象的一些特征比如姿态,速度和深度信息计算而来的。
* 用A表示对象中心视频异常检测算法,公式表达:$$s_i = A(b_i)$$
* 然后,设定阈值 τ,过滤掉异常分数低于该阈值的边界框,只保留潜在的异常对象。
* 公式表达:$$B_{anomaly} = \{b_i | s_i > \tau\}$$
3. 鲁棒性过滤(Robust Filtering):
* 这个步骤旨在消除由于正常和异常框的重叠特性而导致的许多误报。该步骤对提取的异常框进行过滤,保留跟踪一致的异常框。
* 原理: 真实异常对象的边界框通常在视频帧中保持时间一致性,而误报则具有随机性。
* 步骤: 该鲁棒性过滤算法由三个关键步骤组成,即继承步骤、分配步骤和保存步骤。
* 继承步骤: 计算当前帧fi中的每个边界框bj与先前k帧中的边界框bp之间的相似度。如果交并比(IoU)超过阈值h至少m帧,则bj继承先前帧的标签Lp,确保先前识别的异常的一致跟踪。
* 分配步骤: 通过将未成功继承标签的边界框与后续k帧中的边界框进行比较来解决这些问题。如果IoU超过h至少m帧,则分配新的标签Lj=F(bj),从而有效地标记新出现的异常。
* 保存步骤: 在每个l帧处,保存边界框及其标签,系统地捕获所有识别的异常。
* 鲁棒性过滤的算法伪代码如下:
```
Algorithm 1 Boxes Robustness Filtering
1:Input: A set of anomalous bounding boxes Banomaly =
{bi|si> τ}for each frame fi∈ {f1, f2, . . . , f n},
where siis the anomaly score and τis the threshold;
parameters k(tracking window size), h(overlap thresh-
old),l(save interval), and m(frame match threshold)
2:Output: Filtered bounding boxes Bfiltered with their cor-
responding object labels Lj
3:Initialize the list Bito store the filtered bounding boxes
from frame fi
4:foreach frame fi∈ {f1, . . . , f n}do
5: Step 1: Inherit Existing Anomalous Boxes
6: foreach bounding box bj∈ B anomaly andbpfrom
frame fi−ktofi−1do
7: ifi−1P
p=i−kI(IoU(bj, bp)> h)≥mthen
8: Assign Lj=Lp
9: Remove bjfromBi
10: end if
11: end for
12: Step 2: Assign New Anomalous Boxes
13: foreach remaining bj∈ B anomaly andbpfrom frame
fi+1tofi+kdo
14: ifi+kP
p=i+1I(IoU(bj, bp)> h)≥mthen
15: Assign a new object label Lj=F(bj)
16: Save the tuple Tbox= (fi, bj,Lj)
17: end if
18: end for
19: Step 3: Save Boxes Every lFrames
20: ifimod l== 0 then
21: Save all bounding box tuples Tbox= (fi, bj,Lj)
in the current frame
22: end if
23:end for
```
4. 分割模型推理(Segmentation Model Inference):
* 使用过滤后的边界框作为提示,输入到预训练的分割模型 SAM2 中。
* SAM2 根据这些提示,生成异常对象的像素级分割掩码。
* 对Sec.3.2中获得的元组Tbox=(fi, bj, Lj),提取每个边界框bj的中心点。具体地,给定框bj= [x1, y1, x2, y2]的坐标,中心点计算如下:
$$c_j = (\frac{x_1 + x_2}{2}, \frac{y_1 + y_2}{2})$$
* 公式表达:$$S = M(I) = \{S_1, S_2, ..., S_{N_f}\}$$
* 其中 S 表示整个视频的分割结果集合,Si 表示帧 fi 的分割结果,pj 表示帧 fi 中的像素点。
算法优势与创新之处:
* 精确性: 结合了对象检测和像素分割,提供了更精确的异常定位。
* 鲁棒性: 通过鲁棒性过滤,减少了误报,提高了算法的可靠性。
* 效率: 利用预训练模型,避免了从头开始训练分割模型的需求,提高了效率。
* 通用性: 可以与不同的对象检测和 VAD 算法结合,具有较强的通用性。
* 无需微调的分割能力: 充分利用了SAM2 强大的zero-shot分割能力,无需额外的微调。
3. 详细解读论文第三部分
论文第三部分详细介绍了TAO框架中的三个主要组件:异常框提取、鲁棒性过滤和分割模型推理。
3.1. 异常框提取 (Anomalous Boxes Extraction)
这一部分描述了如何从视频帧中提取出潜在的异常对象。它分为两个子步骤:
* 边界框提取 (Bounding Boxes Extraction):
* 使用预训练的目标检测模型D来识别视频帧中的对象。
* 目标检测模型D接收一帧图像f作为输入,并生成m个边界框$b_1, b_2, ..., b_m$,以及相应的类别标签$y_1, y_2, ..., y_m$。
* 这一过程可以用公式表示为:$$\{(b_1, y_1), (b_2, y_2), ..., (b_m, y_m)\} = D(f)$$
* 其中,$b_i$代表第i个边界框,$y_i$代表与该边界框关联的类别标签。
* 异常评分 (Anomaly Scoring):
* 提取边界框后,使用对象中心视频异常检测算法来计算每个边界框内的对象的异常分数$s_i$。
* 异常分数是基于对象的某些特征,如姿态、速度和深度信息计算得出的。
* 这一过程可以用公式表示为:$$s_i = A(b_i)$$
* 其中,$A$代表对象中心视频异常检测算法,$b_i$代表第i个边界框。
* 异常对象过滤 (Anomaly Filtering):
* 为了隔离异常对象,作者们根据异常分数阈值过滤边界框。具体而言,仅保留异常分数超过预定义阈值$\tau$的边界框。
* 过滤过程可以用公式表示为:$$B_{anomaly} = \{b_i | s_i > \tau\}$$
* 其中,$B_{anomaly}$代表异常边界框集合,$\tau$代表异常分数阈值。
3.2. 鲁棒性过滤 (Robust Filtering of Anomalous Boxes)
这一部分讨论了如何减少误报,提高异常检测的鲁棒性。
* 问题:
* 作者指出,第3.1节中提取的异常框包含许多误报,这是由于正常和异常框的特征重叠造成的。
* 这些冗余框可能会通过生成不准确的结果并压倒模型的跟踪能力,从而显著降低分割性能,并可能导致在后续帧中丢失异常目标。
* 解决方案:
* 作者提出了一种边界框鲁棒性过滤算法,该算法利用真实异常框的时间一致性。
* 与随机出现的冗余框不同,真实的异常框保持对同一目标的一致跟踪。
* 该算法通过三个关键步骤运行:继承步骤、分配步骤和保存步骤。
* 继承步骤 (Inheritance Step):
* 继承步骤计算当前帧fi中的每个边界框bj与先前k帧中的边界框bp之间的相似度。
* 如果交并比(IoU)超过阈值h至少m帧,则bj继承先前帧的标签Lp,确保先前识别的异常的一致跟踪。
* 分配步骤 (Assignment Step):
* 分配步骤解决未能继承标签的边界框的问题。
* 该步骤将这些边界框与后续k帧中的边界框进行比较。
* 如果IoU超过h至少m帧,则分配新的标签Lj=F(bj),从而有效地标记新出现的异常。
* 保存步骤 (Saving Step):
* 在每个l帧处,保存边界框及其标签,系统地捕获所有识别的异常。
3.3. 分割模型推理 (Inference of the Segmentation Model)
这一部分解释了如何使用分割模型SAM2进行像素级异常分割。
* 提示生成 (Prompt Generation):
* 首先,从Sec.3.2获得的元组Tbox=(fi, bj, Lj)中,提取每个边界框bj的中心点。
* 给定框bj= [x1, y1, x2, y2]的坐标,中心点计算如下:$$c_j = (\frac{x_1 + x_2}{2}, \frac{y_1 + y_2}{2})$$
* 作者们没有保存每个帧的提示,而是在规则间隔处收集这些提示(具体地,每隔l帧)。这可以确保高效的存储和处理,同时仍然捕获准确分割所需的必要信息。
* 提示聚合 (Prompt Aggregation):
* 对于每个选定的帧,中心点cj和边界框bj都存储为提示。
* 作者们没有单独处理每个帧,而是聚合来自所有保存帧的提示{f1, f1+l, f1+2l, . . . , f Nf},其中l代表保存间隔。
* 聚合的提示可以表示为:$$I = \{(c_j, b_j, f_i) | i = 1, 1+l, 1+2l, ..., N_f\}$$
* 其中,$I$代表提示集合,包括中心点,$b_j$边界框坐标,以及$f_i$所选帧的原始图像。
* 分割 (Segmentation):
* 通过将此在规则间隔处保存的提示信息$I$输入到SAM2(作为基于提示的分割模型M),作者们可以利用其特征传播能力来有效地生成整个视频的像素级分割结果。
* SAM2将分割结果从提示帧传播到剩余帧,从而产生整个视频的像素级分割。
* 这一过程可以用公式表示为:$$S = M(I) = \{S_1, S_2, ..., S_{N_f}\}$$
* 其中,$S_i = [p_1, p_2, ..., p_M]$代表帧fi的分割结果,$p_j$代表像素是“正常”还是“异常”。
4. 实现细节与注意事项
* 预训练模型: TAO 框架严重依赖预训练模型,如对象检测器和 SAM2。选择合适的预训练模型对性能至关重要。
* 阈值调整: 虽然 TAO 旨在减少对阈值的依赖,但异常分数阈值 τ 仍然需要根据具体数据集进行调整。
* 鲁棒性过滤参数: 鲁棒性过滤算法中的参数 (k, h, m, l) 需要根据视频的帧率、对象运动速度等因素进行调整。
* SAM2 的使用: SAM2 的计算量较大,在资源有限的情况下,需要考虑优化推理速度。可以考虑降低输入图像的分辨率,或者使用更轻量级的 SAM2 模型。
* 后处理: 对 SAM2 的输出进行后处理,如去除小面积的异常区域,可以进一步提高精度。
实现难点与解决方案:
* 误报的抑制: 如何有效地抑制误报,是 TAO 框架面临的一个重要挑战。鲁棒性过滤算法可以减少误报,但仍然需要仔细调整参数。
* 计算资源: SAM2 的计算量较大,可能需要使用 GPU 加速。
* 数据集偏差: 预训练模型可能存在数据集偏差,需要根据具体应用场景进行调整。
优化建议与最佳实践:
* 数据增强: 使用数据增强技术,可以提高模型的泛化能力。
* 集成学习: 可以将 TAO 框架与其他的异常检测算法结合,提高检测性能。
* 在线学习: 在实际应用中,可以使用在线学习技术,不断更新模型,适应新的场景。
希望这个详细的分析对你有所帮助!
返回论文列表