基于重时空注意力的地铁司机动作识别*

2023-12-09 08:50李俊岐黄俊杰张自力何儒汉胡新荣
计算机与数字工程 2023年9期
关键词:时空注意力司机

彭 涛 李俊岐 黄俊杰 张自力 何儒汉 胡新荣

(1.湖北省服装信息化工程技术研究中心 武汉 430200)

(2.纺织服装智能化湖北省工程研究中心 武汉 430200)

(3.武汉纺织大学计算机与人工智能学院 武汉 430200)

1 引言

在地铁行驶过程中需要司机根据列车的运行情况去做出不同的手势,以示意其他工作人员。将动作识别(action recognition)算法应用在地铁系统,可以让司机学习标准的动作,也可用来检测异常行为。现有的网络模型有2D CNN、3D CNN、基于自注意力机制(self-attention mechanism)的网络等。

以上述的几种网络为基础,进而改进出了R(2+1)D、I3D、P3D、TSN、TSM[1~5]等方法和模型,本文过对上述的深度学习方法和模型继续进行改进,以此用来识别地铁司机的行为,其目的是在一定程度上对司机和其他工作人员起到教育和警示作用。

2 相关工作

早期的传统方法有iDT[6~7]等,该类方法的不足在于处理大规模数据集时的效率低,难以应用到实时性要求高的任务中。Karpathy[8]等提出的2D CNN没有将动作的时域信息充分考虑,为了弥补这个缺陷,Feichtenhofer 等[9]提出的双流结构是一个流行扩展和改进,但它的改进依然有限。一个简单的优化方法是将二维卷积运算扩展到三维。这种方法虽然在精度方面很有优势,但需要大规模数据集的预训练参数。Carreira[2]等将2D 权重扩充维度,从而解决了这个问题。Conv3D&Attention[10]引入了注意力机制来更好地考虑时序信息,但却不易并行计算。此外近年还有一些[11~12]基于ViT[13]模型和 Transformer(multi-head self-attention mechanism,MSA)的方法被提出。

本文受DeepViT[14]和时空注意力—Timesformer模型[15]启发,提出一种重时空注意力的动作识别方法,本方法把DeepViT 模型的维度进行扩充,然后利用时空注意力模块来进行提取特征,最后成功应用到地铁司机动作识别任务。实验表明相较于CNN和基础的时空注意力,重时空注意力模型在训练速度和准确率上皆有提升。

3 重时空注意力

为了解决由网络加深带来的注意力崩溃问题,改进了由自注意力计算组成的时空注意力模块,提出了一种基于重时空注意力的地铁司机动作识别模型。整个算法流程如图1所示,其步骤如下。

图1 司机动作识别流程图

3.1 Re-Attention

时空注意力模型加入了时间注意力模块,使得基础ViT 模型既能处理空间信息,也能有效地处理时序信息,其本质是由ViT 改进而来。它的基本模块是Transformer编码器,其内部由多个交互的多头自注意力MLP(Multilayer Perceptron)和LayerNorm(LN,层归一化)层组成。

目前越来越多的学者开始将自注意力机制应用在动作识别领域,其中的代表有Arnab[16]、Zhang[17]、Neimark[18]等。然而zhou[14]的实验发现,自注意力层在堆叠一定数量后,会产生注意力崩溃等问题,此现象在普通的基于时空注意力的地铁司机动作识别模型中也存在。他们提出的Re-attention 机制在图像分类等下游任务中,解决了注意力崩溃带来的问题。基于Re-attention 的特性和沿着上述的设计思路,本文提出了一种新的地铁司机动作识别方法,该方法的核心是Re-attention 机制,具体的实现由式(1)给出:

其中Θ 是一个可学习矩阵,其作用是重组输入的patch序列来缓和和防止注意力崩溃,d表示维度,Q、K、V代表query、key、value矩阵。

3.2 实验原理

新的时空注意力模块和模型由线形投影层和Transformer编码器经过堆叠和残差连接组成,每个注意力层在相邻的patch 中实现Re-attention 注意力计算,特征经由模块进行计算后经过MLP,最后得到输出,模型的结构如图2 所示,其框架主要包含四部分。

图2 时空注意力模型结构

第一部分是输入,如图预处理完成的帧序列在进行编码后,先后输入到空、时间注意力模块。它们的计算公式由式(2)和式(3)给出:

其中l=1,2…,L是注意力模块的层数,a=1,2…,A表示注意力的头数也称个数,Dh表示注意力头的维度。p表示N帧图像中的第几个patch,t表示当前的patch 来自哪F帧图像,SM 表示SoftMax函数。

第二部分和第三部分是重空、时间注意力模块,其主要作用是提取帧序列的空间和时间特征,它的内部是由归一化、Re-attention 层经过堆叠和残差连接而成。

第四部分MLP,它将第二、三部分的输出进行加权合并,其计算公式如下:

其中z′表示与value经过加权运算后的所有注意力头的输出,LN 表示层归一化运算。上述模型的优点是可以在最小改变模型的范围内,最大程度上提升准确率,使得模型不易在准确率还未达到理想效果时就已经饱和。

4 实验结果与分析

4.1 实验数据集

实验数据取自地铁驾室内的监控视频,并进行预处理:将所要识别的5 类动作截取成1s~5s 不等的小片段,然后利用脚本代码将每个小片段按照8帧/s 的速度截取成帧序列。另外为了防止过拟合,进行了图像增强操作,数据集由训练集、验证集和测试集组成。每个集合里有若干个文件夹,里面有若干视频帧组成的序列,数据集具体信息由表1给出。

表1 数据集详情

表2 模型指标

其中这些动作类别分别代表:未做任何动作(Null)、指向开车信号屏(Car)、指向窗外(Out)、指向仪表屏(Signal)、既指向开车信号屏也指向仪表屏(Double,这是一个连贯动作)。图3(a)~(e)展示了这五种动作的样例,它们从左到右由上到下依次表示Null、Car、Double、Out、Signal。

图3 地铁司机行为样例

4.2 实验分析

实验在一张Tesla v-100 GPU 上进行训练,为了保证最好的训练效果,实验在配置环境不变的情况下进行。实验将batch_size 设置为2,learning_rate 设置为0.00001。将改进的模块和整体模型在几种流行网络上进行对比实验,表1~表3展示了对比的各项指标。表3 说明了在同样的网络深度下,Self-attention 和Re-attention 模块的性能对比,可以看到随着网络的加深,基于Self-attention模块的时空注意力网络的表达能力提升缓慢且逐渐饱和,而基于Re-attention 模块的网络在微调时空注意力模型的基础上将准确率提升了约6%,证明了其可行性。图4 将重时空注意力模型在两个常用且公开的数据集上进行测试,在UCF101 和HDMB51数据集上,重时空注意力模型相较于其他几种模型在准确率上皆有所提升。

表3 Self-attention与Re-attention对比

图4 公开数据集效果对比

实验说明了重时空注意力模型能很好地提取时序信息,在准确率等指标上也有一定的优势也解决了注意力崩溃的问题。表2 也表明了时间注意力模块的重要,同时改进的模型也能最大程度提高模型的表达上限。综上所述,相较于CNN 等方法,重时空注意力模型在推理速度、参数量、准确率上都具有相当的可竞争性。

5 结语

本文在标准ViT 和前人的基础上进行研究,将Re-attention 机制进行改进,并成功应用,解决了传统模型在地铁司机动作识别任务中出现的注意力崩溃问题,但是在模型复杂度方面仍有不足:相较于标准ViT 并没有降低和优化模型的参数量。同时本方法只是在一定程度上提升了准确率,如果应用在需要准确率更高的任务中,本方法仍需改进。

猜你喜欢
时空注意力司机
跨越时空的相遇
让注意力“飞”回来
画与理
镜中的时空穿梭
老司机
老司机
玩一次时空大“穿越”
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
时空之门