交通视频描述与分析近年来受到了广泛关注,这是因为对高效可靠的城市监控系统需求日益增长。大多数现有方法仅关注于定位交通事件片段,严重缺乏与事件中所有感兴趣主体的行为和上下文相关的描述性细节。
密集视频字幕模型最近的进展,这种模型能够精确地对连续视频流中的事件进行定位和描述,为该领域带来了新的机遇和挑战。这种能力在复杂的城市环境中尤为关键,因为行人与车辆及其他元素之间的动态交互可能导致事故发生。随着城市区域的不断发展,交通变得更加密集,自动且准确地从多角度识别和描述事故场景的能力变得至关重要。这不仅有助于紧急响应工作,也促进了更安全、更智能的交通解决方案的发展。
大多数针对这一特定领域的传统深度学习系统实际上采用了监督训练方法来预测帧或定位事件片段[21, 47, 50]。尽管这类模型可能捕捉到交通交互的细微差别,但它们缺乏解释其预测的能力,这使得分析原因、预测结果和制定预防措施变得困难。为了应对这一挑战,第8届AI城市挑战赛[34]推出了交通安全描述与分析任务,该任务涉及对来自多个固定高空摄像头或移动车辆自我摄像头的视频进行详细的交通安全场景视频字幕描述,包括车辆和行人的情况。
在这项工作中,作者介绍了TrafficVLM,它利用了多模态密集视频字幕模型的进展,特别适用于交通领域。TrafficVLM从车辆摄像头帧中提取不同层次的视觉特征,以定位交通事件的不同阶段,然后为不同的目标提供详细描述。作者的贡献可以总结如下:
作者将多阶段的交通安全描述和分析任务重新定义为时间定位和密集视频字幕任务,以单个序列作为输出,并引入了TrafficVLM,这是一个特别适应于此任务和领域的视频语言模型。
根据作者新的微调目标,作者提出了一种在不同层次上建模视频特征的方法,使作者的模型能够有效地捕捉到空间和时间上的细粒度视觉细节。
作者利用数据集中不同目标带有标题的可获取性,设计了一个多任务微调范式,这使得TrafficVLM能够有效地学习所有阶段视频特征与文本特征之间的对齐。
作者在AI City Challenge 2024 Track 2的盲测集上取得了第三名的好成绩,这表明了作者解决方案的竞争力。
交通事故检测旨在识别驾驶过程中的意外交通事件,例如车辆和物体之间的碰撞以及失控等情况。这个任务早期的方法[50]涉及使用手动特征提取过程,并简单地利用贝叶斯模型来检测交通事故,这缺乏泛化能力并且对提取的特征敏感。在深度神经网络领域的进一步进展使得研究行人能够采用深度学习方法来重建和预测视频帧中的错误以检测交通事故[4, 8, 21]。近年来,为了解决混乱背景的问题,研究行人应用了两阶段过程。最初,例如姚等人[47]使用的诸如Mask-RCNN[9],FlowNet[12],DeepSort[38]或ORBSLAM[22]等架构,分别提取边界框、光流、跟踪id和自运动等视觉特征。然后,对这些特征应用检测过程进行最终的分类。
另一方面,深度学习的最新应用围绕着多模态模型的强大功能。例如,Liang等人[19]利用语言特征,这些特征已经通过与CLIP[25]的广泛训练与视觉特征对齐,作为监督信号,在捕捉驾驶场景在高时间域中的动态变化时使用。还有少数方法甚至从生成式视角来处理问题,比如TRIVIA[24],它将交通领域知识注入到一个大型视频-语言模型中,以提升源自多模态预训练的联合能力。
与图像-文本预训练模型的进步并行,近期的研究正在向视频-文本预训练发展,其中一些代表性工作包括。与图像-文本预训练类似,尽管这些模型在捕捉视频的全局语义理解方面表现出色,但它们仍然在时间定位上存在困难,并且不适合现成地在生成方式中使用。
密集视频字幕生成在理解视频中的事件上又向前迈进了一步,因为它使用了时间戳信息。这个任务的解决方案通常有兴趣捕捉视频中的所有细节,这些细节描述了其中发生的主要事件。密集视频字幕生成的一般流程包括三个步骤:(1)视频特征提取,(2)时间事件定位,和(3)密集字幕生成。视频特征提取通常使用上述提到的强大的视频视觉语言模型,而传统的时间事件定位方法可以分为两类:基于 Proposal 的和无 Proposal 方法。基于 Proposal 的技术先生成候选 Proposal ,然后根据相关性进行排序。相比之下,无 Proposal 方法直接预测目标时刻的开始和结束边界。早期的方法通常通过添加专用的 Transformer 模型来完成密集字幕生成任务,而近年来在这个领域的方法已经见证了向字幕生成和定位模块联合训练的转变。例如,Vid2Seq 通过结合特定时间标记来增强语言模型,使模型能够在统一的输出序列中生成事件边界和文本描述。
此外,VTimeLLM 利用大型语言模型的强大功能,实现了与人类的自然语言交互,同时在视频理解和事件定位方面表现出优秀的泛化能力。
交通安全描述与分析是一项具有挑战性的任务,它涉及对不同交通安全场景连续阶段的长时间细粒度描述,针对多个目标,在给定摄像头视频、每个阶段的时间戳和若干帧的目标边界框信息的情况下。具体来说,对于每个阶段,目标是要详细描述行人及车辆的环境背景、注意力、位置和行为。在本节中,作者介绍了TrafficVLM,这是一个视频语言模型,涉及对时间转换编码器和大语言模型的解码器进行微调。
遵循Vid2Seq 的方法,作者将此任务重新制定为一个时间定位和密集视频描述的任务,其中模型学习将事件边界和目标的描述作为一个 Token 序列进行预测。在3.2节中,作者引入了一个可控组件,允许TrafficVLM为不同的目标生成多个描述。作者还展示了如何在3.3节中使用不同的目标描述来增强作者的微调范式。
问题公式化。给定一个车辆摄像头视频,包含帧,事件边界序列,包含个阶段,以及n<tb=\{(x_{i}^{st},x_{i}^{ed},y_{i}^{st},y_{i}^{ed})\}_{i=1}^{n},目标是生成两个序列\tilde{v}=\{\tilde{v}_{i}\}_{i=1}^{l^{v}}用于_车辆_和\tilde{p}=\{\tilde{p}_{i}\}_{i=1}^{l^{p}}用于_行人_,这两个序列包含所有p个阶段的时间和文本描述。最终可以从\tilde{v}和\tilde{p}直接解码和提取两个目标的最后p个标题,v=\{v_{i}\}_{i=1}^{p}和p=\{p_{i}\}_{i=1}^{p}。< p=""></t帧的行人边界框列表b=\{(x_{i}^{st},x_{i}^{ed},y_{i}^{st},y_{i}^{ed})\}_{i=1}^{n},目标是生成两个序列\tilde{v}=\{\tilde{v}_{i}\}_{i=1}^{l^{v}}用于_车辆_和\tilde{p}=\{\tilde{p}_{i}\}_{i=1}^{l^{p}}用于_行人_,这两个序列包含所有p个阶段的时间和文本描述。最终可以从\tilde{v}和\tilde{p}直接解码和提取两个目标的最后p个标题,v=\{v_{i}\}_{i=1}^{p}和p=\{p_{i}\}_{i=1}^{p}
主要特征。 为了去除冗余信息,作者在子全局层面上通过将每一帧等比例裁剪到一个目标片段来提取主要视频特征,该目标片段包含了跨
帧的所有局部行人特征。明确地说,作者从边界框信息
中选择一个片段
并将较短的维度延伸到长度……。
为了使选定的片段变成正方形。作者将所有
帧裁剪到这个区域,这会导致
。作者的视觉特征提取器,表示为
,是一个冻结的CLIP ViT-L/14 [25],以
像素的分辨率进行处理。作者将每个裁剪的帧调整到目标分辨率,并独立编码它以获得整个视频的视觉嵌入:
表示嵌入的维度。
作者继续使用事件边界序列
将视频特征裁剪至与交通事件相关的片段。为了使训练过程中的片段时长和相位时间戳多样化,作者以视频提取帧率随机选择两个偏移时长
和
,范围在0秒到5秒之间,并相应地改变片段的起始和结束帧以增加时长。具体来说,视频特征
被裁剪至:
图1:作者的方法概述。首先从车辆摄像头视频中提取子全局和局部帧序列。根据事件段中边界框的可用性,某些局部帧可能会缺失。然后,将视觉特征提取器
应用于二者以获得两个视觉嵌入
和部分
。子全局嵌入被修剪到事件段并下采样以创建子全局特征
。可学习的局部张量
中的特征向量被添加到局部嵌入中,作为缺失阶段的嵌入。然后,将位置嵌入应用于两个视觉特征,接着是时间编码器
。最终的嵌入
和
与条件嵌入
(针对 _车辆_)或
(针对 _行人_)连接起来,以控制生成输出。文本解码器
接收连接的嵌入作为输入,并自回归地生成输出序列。对于微调,最终损失是通过结合生成 车辆 和 行人 输出序列的损失来计算的。
作者对修剪后的特征进行下采样到一个较低的帧率,然后继续对其进行下采样或零填充到
帧。最终的特征
被用作训练的主要视频特征。
局部特征。 对于每个阶段
,作者随机选择一个行人边界框
来构建作者的局部特征。类似于作者处理主要特征的方式,作者将每个对应于边界框
的帧进行平方裁剪,以接近边界框的段落,并将其调整到
像素,表示为
。然后,裁剪的段落分别用作者的视觉提取器进行编码,得到:
如图1所示,可能会有几种情况,其中与阶段
相关的边界框
不存在。为了解决这个问题,作者添加了一个可学习的张量
,并将对应阶段缺失的视觉特征
用可学习的嵌入
来代替。所有阶段的视觉特征都被聚合起来形成最终的局部嵌入
。
在实际操作中,作者在训练前提取所有原始的CLIP特征
和
以节省计算时间和资源。关于特征选择的具体细节将在第4.2节中解释。
时间视觉编码器。 作者使用两个可学习的位置嵌入
和
,以及一个视觉 Transformer [5]
,来对子全局特征
和局部特征
的帧进行时间动态建模,从而得到最终视觉嵌入
和
:
生成输出控制。 作者利用了 Transformer 解码器如何使用多头注意力层来关注编码器的输入,并设计了一种条件模块,使得模型能够学习条件本身。简单来说,对于目标和_车辆_及_行人_,作者添加了额外的可学习条件嵌入
和
,其中
是嵌入的扩展维度。
文本解码器。 为了生成输出序列,作者采用T5-Base [26]作为作者的 Transformer 解码器
。输出序列包含所有阶段的伪时间戳和文本描述:
在这里,
和
分别对应车辆和行人的序列长度。由于主要的视频特征被裁剪到目标场景片段,作者在输入解码器时没有包括时间边界信息,以迫使模型学习每个阶段的视觉特征与相应文本描述的时间对齐。关于输出序列的详细信息将在后续部分给出。
时间标记化。 由于作者选择了T5-Base作为文本解码器,作者也使用了T5分词器,该分词器基于SentencePiece分词器[16],并在HuggingFace库[39]上公开可用。遵循Vid2Seq的方法,作者通过添加
个额外的时间标记扩展了分词器,这些时间标记代表每个视频段中的相对时间戳。
输出序列构建。 这一部分解释了作者如何在训练过程中构建两个输出序列作为基准真值及其格式。首先,作者将事件边界序列
调整到新的开始时间
和结束时间
(如公式(3)所示),以创建新的事件边界序列
:
视频片段的新时长
通过以下方式获得:
在新的事件边界序列
中的每个时间戳随后被重新缩放为一个介于
和
之间的整数,以构建量化的事件边界序列
:
作者将每个量化的时间戳映射到
个时间标记中的一个,结果序列表示为
:
对于_车辆_的文本标记,作者首先对所有的标题序列
的阶段描述进行分词,得到
,其中
是第
阶段的文本标记序列。类似于Vid2Seq,作者通过连接每个阶段
的开始时间标记
,结束时间标记
以及
中的所有文本标记
来构建每个阶段的新序列。作者按照开始时间的递增顺序连接所有这样的序列,并在序列的开始添加一个
标记,在序列的末尾添加一个
标记。结果是最终的输出序列
:
输出序列
是以同样的方式获得的:
阶段标题重建。 在推理过程中,通过使用分词器对
和
进行解码,以及使用正则表达式从组合序列中提取每个标题,来恢复 车辆 和 行人 的
个标题。
为了利用数据集提供的两套不同标题,并让模型更好地学习视频和文本特征之间的空间和时间对齐,作者直接使用“车辆标题生成”和“行人标题生成”作为作者的两个微调任务。对于这两个任务,作者采用了标准的最大似然目标,使用教师强制[37]和交叉熵损失:
\mathcal{L}_{\theta}^{c}(z^{g},z^{l},z^{c},y)=-\mathbb{E}\left[\sum_{i=1}^{L-1 }\log p_{\theta}\left(y_{i+1}\mid z^{g},z^{l},z^{c},y_{<i}\right)\right], \tag{15}
在文中,
代表子全局视频特征,
是局部视频特征,
是条件嵌入,
是目标输出序列,而
是
的长度。
最终的损失是两个任务损失的结合:
数据集。 为了微调和评估,作者使用了WTS数据集[15],该数据集在AI City Challenge 2024中与交通安全描述与分析赛道一同介绍。该数据集包含了155个场景和810个视频,这些视频来自固定的高空摄像头和车载摄像头,如表1所示。此外,该数据集还提供了从BDD100K数据集[48]中提取的3402个车载摄像头视频。每个场景大约有5个阶段,有一个标注文件详细捕捉了车辆和行人的位置、注意力、行为和上下文信息。每个视频中的若干帧都提供了目标行人的边界框,并且对于高空视频也提供了目标车辆的边界框。
由于车辆摄像头视频占据了WTS数据集的大部分,作者的微调数据 Pipeline 主要从车辆视频中提取视觉特征。作者仍然随机加入一些俯视摄像头视频,这部分视频占据数据 Pipeline 的10%,以在微调数据中创造多样性。作者所有的实验都是在WTS验证集的主要子集中进行的评估。作者为WTS测试集中的所有子集生成了车辆和行人的标题,并将它们提交到AI City Challenge门户网站以获取测试结果。
表1:WTS数据集的统计信息。
图2:车辆和俯视摄像头视角的子全局和局部段。
评估指标。 遵循第8届AI城市挑战赛第二轨道的评估设置,作者采用BLEU-4 [23],ROUGE-L [20],METEOR [2]和CIDEr [29]作为作者的主要评估指标。BLEU和ROUGE都是基于n-gram重叠来评估机器翻译系统质量的标准化指标,分别关注精确度和召回率。METEOR通过使用单gram相似性的
度量改进了BLEU分数,并对生成句子中单词位移施加惩罚
。CIDEr通过参考句子和候选句子的TF-IDF [27]权重的余弦相似性来衡量它们之间的相似度。最终用于排名模型的分数是这4个指标的综合计算结果:
其中
,
,
, 和
分别代表 BLEU-4, METEOR, ROUGE-L, 和 CIDEr。
实现细节。 作者初始化时间视觉编码器和文本解码器,使用来自VidChapters [45]的公开可用的预训练权重 _vid2seq_hthmchaptersvitt_。局部时间位置嵌入
通过下采样从VidChapters预训练权重加载的全局位置嵌入
来初始化。所有视频以30 FPS提取,并在裁剪后,主要视频特征被下采样到3 FPS。作者设置
作为子全局特征的最终帧数。文本解码器被截断或填充到
个标记。作者应用Adam优化器 [14],学习率为
,余弦学习率衰减和预热期。作者所有的模型都在NVIDIA RTX-3060 GPU上以批量大小1微调30个周期,大约需要8个小时。作者根据验证指标为每个模型选择最佳预训练权重。
为了研究不同的模块和特征层次对模型性能的影响,作者将它们进行混合和匹配,创造出不同版本的TrafficVLM,其结果展示在表2和表3中。
特征选择。除了在主模型中使用的子全局特征和局部特征之外,作者还进行了一些实验,通过以所有行人边界框为中心裁剪整个摄像机帧的方形区域,提取全局 Level 的特征。在表2中,作者展示了在主WTS验证集的车辆分支上针对交通安全描述和分析任务的消融研究结果。由于作者主要关注的是车辆摄像头视角,作者使用此表中的结果来对模型进行排名。可以看出,使用两个或更多特征的组合显著优于仅使用其中之一。在将子全局特征直接与其全局对应特征进行比较的实验中(第1行与第2行以及第7行与第6行),两者的结果大多数是可比较的。两个最佳模型使用了全局或子全局特征以及具有时间建模的局部特征。在这两个模型中,具有子全局特征的那个(第7行)在8个指标中的6个上超过了其对应模型。不幸的是,任何全局和子全局特征的组合与其他选项相比并没有得到很高的结果。
表2:在WTS主验证集上的TrafficVLM变体消融研究结果,车辆视角。《阶段编码器》表示对局部特征进行时间建模。用于选择模型的最终得分计算方式与第8届AI城市挑战赛轨道2的评价得分相同。
表3:作者对TrafficVLM变体在WTS主验证集上的消融研究结果,俯视图。
在头顶场景的性能表现。 表3展示了作者在主WTS验证集的头顶分支上的实验结果。尽管由于可用性,头顶视频只占作者训练集的10%,与车辆视频相比,但显而易见,作者的模型在这种情境下仍然表现相对较好,因为大部分数字都与表2中的接近。在这种情境下,结合全局或次全局特征以及时间编码的局部特征的两种模型仍然表现最佳。
局部时间建模。 由于大多数场景仅包含大约5个阶段,因此是否对局部特征进行时间建模(在表2和表3中称为_阶段编码器_)是作者设计考虑之一。作者观察到,在这两种场景中,将时间建模添加到局部特征显著提高了模型在大多数指标上的性能(表2中的第5行与第7行,以及表3中的第2行与第6行),这展示了作者设计的效果。
在2024年AI城市挑战赛的轨道2中,作者使用仅包含子全局特征的模型为WTS内部盲测集(包含交通场景和正常场景)生成结果样本。对于外部盲测集,作者采用集成方法,将同一模型与作者的主模型的两个最佳预训练权重结合起来,使用文本解码器的生成置信度得分。
表4展示了第八届AI城市挑战赛轨道2的最终公开排行榜。作者团队(团队名为Lighthouse)以32.3006的最终成绩获得了第三名。作者解决方案的结果仅略低于前两名团队,这表明TrafficVLM在交通安全描述与分析任务上具有竞争力。
在本文中,作者介绍了TrafficVLM,这是一个专门为交通事件进行密集视频字幕生成的视觉语言模型,同时还有一个有效的微调范式,利用了交通安全描述和分析任务的多目标特性。TrafficVLM在AI City Challenge 2024的赛道2中取得了第三名,并取得了令人印象深刻的分数,展示了其在任务中的有效性。除了密集视频字幕生成和时间定位,当前TrafficVLM的实现可以扩展到各种新任务中,包括交通视频问题回答、交通视频摘要和其他视频理解任务。作者相信,未来的工作可以通过探索使用不同的大的语言模型,如Llama2 [28]或Mistral [13],并采用不同的数据增强策略来进一步强化TrafficVLM。通过使用文本编码器对描述生成施加不同条件,可以加强TrafficVLM的可控设计。
[1].TrafficVLM: A Controllable Visual Language Model for Traffic Video Captioning.