概述

视频中动作执行的标注示例
在计算机视觉领域,始终存在大量待解决的有趣问题。不过,近来许多核心任务(如物体检测、图像分割)似乎已逐步成熟——相关文献资料丰富,且已有能高精度完成任务的模型。但有一个领域仍处于解决方案的探索阶段,那就是视频处理。
视频处理虽已有二十年发展历程,但直到近年才取得重大突破,这很大程度上得益于深度学习的诸多进步。其复杂性远超常规图像处理:视频并非静态,除图像固有的空间维度外,还需考虑时间维度(即“时间轴”)。这意味着我们需从处理单帧图像转向分析随时间变化的图像序列,由此带来新的挑战——例如,如何在时间步长中保留上下文与语义信息,确保模型输出的准确性。显然,构建视频处理模型比处理单张图像需要考量更多因素。
作为一个广泛领域,视频处理需借助专门的计算机视觉模型从视频中提取信息,涵盖物体检测、活动分类等多种任务。其中,动作识别是最有趣且重要的应用之一,也是本文的核心议题——它让模型能够对视频中人类的动作进行分类与深度分析。这类技术的价值在于,能在多种场景下自动化那些传统上耗时费力的人工任务。例如,高精度动作识别可让安防监控系统自动检测异常行为,或让自动驾驶车辆通过分析行人与其他车辆的动作做出实时反应。
三维卷积神经网络(3DCNN)的局限与突破方向
近年来,三维卷积神经网络(3DCNN) 是处理动作识别任务的主流模型之一。它借鉴了卷积神经网络(CNN)的思想,并扩展到时间维度,将视频视为随时间推移的静态图像帧序列。若你对CNN不够熟悉,可参考以下简要说明:
CNN是专为计算机视觉设计的神经网络,由多层构成。每一层通过在图像上滑动“滤波器”提取特定特征(如垂直边缘),且各层学习的特征各有侧重:浅层捕捉低级局部元素(边缘、纹理),深层则学习高级模式(形状、人脸)。总体而言,输入图像经模型处理后会转化为更易提取特定信息的新表示,常用于分类任务(如识别图像中的物体类型)。
3DCNN在此基础上扩展至视频输入,将视频视为连续的图像帧序列。其核心思路是使用三维滤波器,同时作用于视频的多个帧块,以捕捉小区域内的空间特征与连续帧间的时间特征。

3×3×3滤波器(宽×高×深)作用于输入图像(左侧蓝色部分),产生单一输出(右侧绿色方块)
尽管3DCNN在动作识别中表现出一定有效性,但仍存在明显局限,其中最突出的是难以学习长程依赖关系。以视频中持续时间较长的动作(如行走、抓取)为例,3DCNN的滤波器深度(即一次可处理的帧数量)受限于模型性能,无法捕捉长时间范围内的模式。此外,网络深层感受野(当前层能“看到”的视频帧范围)的扩大,可能导致帧中许多重要模式被忽略。这些问题使得动作识别模型仍有较大改进空间,人们期待能出现更精准的视频动作分类与识别方案。
Vision Transformer(视觉Transformer)的崛起
这正是Vision Transformer(ViT,视觉Transformer) 发挥作用的地方!如今,即使是机器学习爱好者也对Transformer模型有所耳闻,而ViT便是将这种架构应用于计算机视觉任务的典范。
ViT的核心原理
Transformer是近年来最流行的神经网络架构之一。若你对其不够了解,NVIDIA的博客对其工作原理有精彩的高层次解读。简而言之,Transformer擅长将输入序列(如句子)分解为更小的部分,并理解这些部分间的关联,从而学习输入序列中的重要关系,为特定任务生成正确输出——输出可以是新的数据序列(如翻译句子)或与输入相关的分类(如分析句子情感)。
本节将详细介绍Vision Transformer的内部工作机制。

静态图像处理的ViT原始设计(来源:https://arxiv.org/abs/2010.11929)
纯Vision Transformer以单张图像的图块(patches)作为输入,这类似于自然语言处理中Transformer对输入的“分词”(tokenizing)过程。无论是简单的句子还是复杂的高分辨率视频,Transformer都需将输入转化为称为“词元”(tokens)的更小部分,以确定各词元与序列中其他词元的关系。对于ViT而言,其目标是明确给定图像图块与其他图块之间的关联重点。
常规Transformer模型多采用编码器-解码器架构,ViT中也可见到这种设计,但更常见的是仅包含编码器组件,下文将聚焦这种仅编码器架构进行解释。
编码器是将输入图像编码为新表示的神经网络,其编码结果需能捕捉不同小图块间的关系。编码器的输入是由单张图像所有图块拼接而成的向量,每个向量不仅包含图像信息,还包含位置编码——这些编码帮助编码器保留所有图块在图像中的空间组合信息。
向量化的输入会通过多个堆叠层,其中最关键的是包含自注意力(Self-Attention) 机制的层。这些特殊层为输入计算“注意力值”,从数学角度表示图像每个图块对其他图块的重要性。这些层通常被称为“多头注意力层”,因为会对同一输入多次执行注意力计算,以学习输入的多种新表示——每个“头”可能生成略有不同的注意力值,代表图块间独特的关系。
尽管注意力概念初看复杂,但核心要点是编码器正在学习图像各部分间广泛的上下文关系。这种注意力机制帮助ViT理解图像内的细粒度特征及其在整体画面中的作用,从而有望生成更准确的最终输出。
按Enter键或单击以查看完整尺寸的图片

植物分类的ViT架构示例
编码器的输出通常会输入多层感知器(MLP)头,这是一组带激活函数的全连接层,最后通常包含Softmax激活函数。MLP头负责接收编码后的输入并生成输出,其中Softmax激活函数至关重要——它在可能的输出上创建概率分布。例如,在使用ViT进行图像分类时,MLP头的输出是模型已知的所有类别(如“猫”“狗”)的概率分数,使我们能每次选择最可能的类别。

回到视频处理的话题,若将视频视为随时间变化的帧集合,ViT在视频上的应用便清晰明了:如上图所示,若将单张图像转换为维度为W×H的图块,我们可对视频中的每一帧重复此过程T次,得到维度为W×H×T的数据矩阵输入编码器。尽管ViT还有其他架构,但这种方式流行且易于理解。
ViT在视频处理中的优势
视频处理任务能从ViT中获得诸多益处。如前所述,3DCNN的关键问题是难以学习输入数据的长程依赖关系,而这在视频处理中至关重要——对于动作识别,模型需捕捉视频中随时间持续的动作及其演变过程。
借助Transformer架构的注意力机制,ViT能轻松实现这一点:它内置了“聚焦”输入其他部分的机制,可关注视频中先前或后续时间步的帧。这种机制允许模型根据需要聚焦尽可能多的相邻帧或图像内图块,从而捕捉比3DCNN长得多的时间序列关系。
此外,经验证明,在图像受到不同类型篡改时,ViT在动作识别和图像分类上的准确性显著更高。例如,当视频帧突然出现遮挡时,ViT凭借对上下文的保留,仍能做出正确预测,而3DCNN则难以应对。这些优势使ViT在与3DCNN的对比中表现更出色。
当然,ViT并非完美无缺,其潜在问题包括计算成本高(注意力计算需要大量浮点运算,即FLOPs),且通常需要在大规模数据集上训练才能展现出比CNN等传统模型更高的准确性。但需注意,ViT相对较新,目前已有大量研究致力于解决这些局限性。
按Enter键或单击以查看完整尺寸的图片

*下文将解释的SAIS模型架构图 *
ViT:如手术般精准的动作识别能力
2023年,Kiyasseh等人开展了一项有趣的研究,探索ViT在动作识别中的应用——从手术视频中解码外科医生的活动。其必要性显而易见:对手术过程中外科医生的活动进行分类,有助于自动化标记和分析手术阶段与手势。这些标记后的视频可用于教学,帮助学生学习手术操作,也能为外科医生自身提供改进参考,最终提升患者治疗效果。
研究人员构建了名为SAIS(外科活动智能系统)的模型,输入南加州大学凯克医院的组织解剖和缝合术中视频。具体而言,模型并行接收视频帧序列与光流图序列,分别输入两组独立的预训练ViT。光流图反映视频中物体及其他视觉元素随时间的移动模式,能帮助ViT更好地理解视频的时间动态。
该网络首先提取手术视频帧和光流图的空间特征,通过注意力机制捕捉每种数据类型帧间的关系。对于这项研究,模型需精准捕捉精细的单个手术手势(如解剖过程中的“钩”“夹”“剪”)与更广泛的手术动作阶段(如缝合过程中的“穿针”),而这两者都得益于ViT的注意力机制。
在每种输入模态(图像和光流)内单独学习并提取空间与时间动态后,这些新的表示会被融合,形成手术视频内容的最终表示,同时理解视频中动作随时间的进展。聚合后的输出再通过SAIS模型中的其他层(详情可参考原文),最终产生以下三种分类输出:
- 识别手术中的子阶段(如缝合过程中的“穿针”)
- 分类手术手势(精细动作,如解剖子阶段中的“剪”)
- 评估技能水平(将手术动作的技能水平分为“低”或“高”)

*研究中的三种分类类型 *
这项研究的非凡之处在于,同一架构可适用于所有分类任务(只需微调确保模型在各任务中表现良好)。结果表明,SAIS模型能可靠地解码上述所有输出类型,不仅在数据集中的不同视频上具有泛化能力,还能跨医院适用(如在南加州大学以外的医院手术视频上测试)。
这一进步意义重大:不仅因为其出色的性能,还因为它明显优于为这类任务改编的历史模型(如I3D——膨胀3D卷积网络,一种前文提到的3DCNN)。

手术子阶段预测的AUC图,包括对不同医院视频的泛化能力
这一成果的应用前景广阔。尽管SAIS架构专为手术动作识别定制,但其设计思路可为其他领域的动作识别提供启发。无论是在安防领域用于自动检测犯罪活动,还是在体育领域帮助运动员通过视频分析对手战术,这类架构都将催生众多令人惊叹的应用!
2240

被折叠的 条评论
为什么被折叠?



