(AAAI-2019)STA:用于大规模基于视频的行人重识别的时空注意力

STA:用于大规模基于视频的行人重识别的时空注意力

paper题目:STA: Spatial-Temporal Attention for Large-Scale Video-Based Person Re-Identification

paper是贝克曼研究所发表在AAAI-2019的工作

paper地址:链接

Abstract

这项工作提出了一种新颖的时空注意力 (STA) 方法来解决视频中的大规模行人重识别任务。与大多数现有的方法不同,这些方法简单地使用帧级聚合(例如平均池化)来计算视频剪辑的表示,所提出的 STA 采用了一种更有效的方法来生成鲁棒的剪辑级特征表示。具体来说,STA在空间和时间维度上充分利用了一个目标的那些判别部分,从而通过帧间正则化生成一个二维注意力得分矩阵,以测量不同帧中空间部分的重要性。因此,可以根据挖掘的二维注意力得分矩阵引导的加权求和运算生成更稳健的剪辑级特征表示。STA 可以很好地解决基于视频的行人重识别的具有挑战性的情况,例如姿势变化和部分遮挡。在两个大型基准上进行了广泛的实验,即 MARS 和 DukeMTMCVideoReID。特别是 MARS 上的 mAP 达到了 87.7%,大大超过了 11.6% 以上的最先进技术。

Introduction

行人重识别 (Re-ID) 旨在将一个摄像机中的人的图像与另一台不同摄像机中的该人的图像进行匹配。近年来,图像序列(视频)设置下的person Re-ID在文献中引起了极大的关注,因为它对于智能视频监控和多媒体等应用至关重要。

大多数现有的基于视频的行人 Re-ID 工作专注于小数据集,例如PRID-2010和iLIDS-VID仅包含大约300个人的身份,总共600个轨迹。尽管现有方法在PRID-2010和iLIDS-VID上取得了良好的性能,但它们在MARS数据集和DukeMTMCVideoReID 数据集远不能令人满意。它们的性能在很大程度上受到基于大规模视频的 Re-ID 数据集中相机视角、人体姿势、照明、遮挡和背景杂波的巨大变化的限制。

对于基于视频的 Re-ID 任务,关键是学习一个映射函数,将视频转换为低维特征空间,其中每个视频都可以用单个向量表示。大多数现有方法将视频的一帧表示为特征向量,然后在帧上使用平均或最大池化来获得输入视频的表示。但是,当视频中频繁出现遮挡时,这种方法通常会失败。此外,跨视频帧的最大或平均池化等基本操作无法处理由帧间人体姿势变化引起的空间错位。为了从视频中提取相关信息并削弱噪声样本(例如遮挡)的影响,最近的研究引入了注意力机制并取得了改进的结果。然而,这些现有的基于注意力的方法只为每一帧分配一个注意力权重,因此缺乏发现视频序列中的判别帧或每一帧中的判别身体部位的能力。此外,大多数现有的基于注意力的方法中的注意力机制是参数化的,例如全连接层,要求输入视频序列的长度是固定的。

为了解决上述问题,本文提出了一个有效但易于实现的时空注意力(STA)框架,以解决大规模基于视频的行人重识别问题,如图1所示。STA框架没有简单地通过参数化模型对每一帧进行合并或分配权重来编码一系列图像,而是在不使用任何额外参数的情况下,联合使用了多个新组件,包括帧选择、判别部分挖掘和特征聚合。总之,本文的主要贡献可以总结如下:

  • 提出了一个简单而有效的STA模型,在不使用任何额外参数的情况下为每个空间区域分配注意分数,以实现判别性部分挖掘和帧选择。

  • 引入帧间正则化项来限制不同帧之间的差异并确保每个帧具有相同的身份。

  • 设计了一种新颖的特征融合策略,它结合了来自视频序列的全局信息和判别信息,以实现更好的特征聚合。

    扫描二维码关注公众号,回复: 14217092 查看本文章
  • 进行了广泛的实验和消融研究,以证明每个组件的有效性。最终结果在两个主流大规模数据集上达到了最先进的水平:MARS 和 DukeMTMCVideoReID。

图1

图 1:STA 框架的架构。输入视频 tracklet 首先通过随机采样减少到 N N N帧。 (1) 每个选定的帧都被送入主干网络以转换为特征图。 (2) 然后,将特征图馈送到时空注意力模型,为不同帧的每个空间区域分配注意分数,然后生成二维注意分数矩阵。采用帧间正则化来限制不同帧之间的差异(详见图 2)。 (3) 利用注意力分数,提取所有帧中注意力分数最高的空间区域特征图,并根据分配的注意力分数对空间区域特征图的加权和进行运算。 (4) 然后,采用特征融合策略将来自不同空间区域的空间特征图连接起来,生成两组全身特征图作为全局表示和判别表示。 (5) 最后,使用全局池化层和全连接层将特征图转换为向量以进行行人重识别。在训练期间,结合了三元组损失和 softmax 损失。在测试过程中,选择第一个全连接层之后的特征向量作为输入视频 tracklet 的表示。

Related Work

基于图像的行人重识别在文献中得到了广泛的探索,现有的研究通常可以分为两类:判别学习和度量学习。Hermans等人提出了一种三元组损失的变体来执行端到端深度度量学习,他们的模型大大优于许多其他已发表的方法。Zheng等人使用孪生网络并结合验证损失和分类损失来同时学习判别嵌入和相似性度量。

基于视频的行人重识别是基于图像的行人重识别的扩展,最近得到了广泛的研究。例如,McLaughlin等人采用循环神经网络 (RNN) 来传递从卷积网络网络 (CNN) 中提取的每一帧的消息。 Liu等人专注于从相邻帧中学习远程运动上下文特征,以进行更稳健的识别。

行人重识别中的注意力模型。由于Xu等人提出了注意力机制,它已被应用于大量行人重识别工作。Liu等人提出了一种自动估计每帧质量得分并削弱噪声样本影响的方法。Xu等人引入了联合空间和时间注意池化网络,该网络可以从探针和图库视频中提取判别帧,并根据其他序列的特征获得一个序列的时间注意力权重。Li等人使用多个空间注意力模型和时间注意力模型来学习每个人不同身体部位的潜在表示。与这些现有的注意力模型相比,本文提出的 STA 模型有两个主要区别,进一步提高了person ReID性能:首先,简单而有效的 STA 模型没有额外的参数,这意味着输入序列的长度不必是固定的。其次,STA模型可以学习到不同帧中每个区域的注意力分数,可以共同实现判别区域挖掘和帧选择。

Proposed Method

给定一个行人序列的tracklet,本文提出了STA框架(图 1),以通过具有帧间正则化的时空注意力模型更好地处理基于视频的行人重识别问题。首先从输入视频查询中随机选择恒定数量的帧,并将它们馈送到主干网络以从每个帧中提取特征。然后,将获得的特征图馈送到STA模型中,以生成一个 2D 注意力得分矩阵,该矩阵为每帧的每个空间区域分配一个注意力权重。为了限制单个视频轨迹中帧之间的差异,提出了帧间正则化来估计帧间相似度。接下来,使用每一帧中对应权重最大的空间区域,以及所有注意力权重之间的加权和,得到两组全身特征图。最后,将它们连接在一起作为全局表示和判别表示,并采用全局平均池化,然后是一个全连接层来表示视频查询。对于目标函数,结合了 softmax 损失和批量hard三元组损失。

Spatial-Temporal Attention (STA) Framework Backbone Network.


各种网络架构,如VGG、Resnet和Google Inception,都可以用作骨干网络来提取每个帧的特征图。选择ResNet50作为骨干网络,之前的大多数工作都采用了它。特别的,ResNet50有一个卷积块 conv1,后面跟着四个残差块,分别命名为conv2、3、4、5。对原来的 ResNet50 进一步做了两处修改:1)第一个残差块 conv5 的步幅设置为 1; 2)去除平均池化层和全连接层。输入视频首先通过随机采样减少到 N N N帧,然后将每个选定的帧馈送到主干网络。因此,每个视频 V = { I 1 , … , I n , … , I N } V=\left\{I_{1}, \ldots, I_{n}, \ldots, I_{N}\right\} V={ I1,,In,,IN}由一组 16 × 8 16 \times 8 16×8个特征图 { f n } { n = 1 : N } \left\{f_{n}\right\}_{\{n=1: N\}} { fn}{ n=1:N}表示,每个特征图有 D = 2048 D=2048 D=2048个通道。

Spatial-Temporal Attention Model.


本文提出了时空注意力模型,以自动从每个图像帧中学习可用于重识别的判别区域。以前基于视频的行人重识别方法将每一帧视为一个完整的图像,并为每一帧分配一个权重。然而,人体的不同区域应该对重识别任务有不同的影响。因此,本文的方法旨在为每一帧发现这些区域的判别表示。Li等人还采用了时空注意力模型,其中他们使用不同的卷积层来提取人体的显著区域,并采用传统的时间注意力模型进行帧选择。这种方法存在三个主要缺点。首先,由于更多的卷积层,它涉及更多的计算,并且由于时间注意力模型,它的输入序列长度必须固定。其次,在他们的方法中使用的多个空间注意力模型是相互独立的,没有利用人体部位之间存在的空间关系。结果,提取的空间注意力可能是分散的,不能反映前景中的完整人体。第三,空间注意力信息和时间注意力信息是通过两种不同的模型获得的,这会导致误差累积。与现有方法不同,本文的时空注意力自动为不同帧中的每个空间区域分配包含空间注意力信息和时间注意力信息的注意力权重,而无需任何额外的参数。表 4 中的实验证明了本文的方法与Li等人相比的优势。本文的模型是第一个基于视频的person Re-ID模型,可以发现判别部分但保留空间关系,同时实现帧选择。

表 4:STA 模型与 MARS 数据集上最新技术的比较。在这里,展示了序列长度为 4 且空间区域数为 4 的测试结果。

表4

时空注意力模型的示意图如图 2 所示。给定输入视频 { f n } { n = 1 : N } \left\{f_{n}\right\}_{\{n=1: N\}} { fn}{ n=1:N}的特征图,首先通过深度通道的平方和进行 ℓ 2 \ell_{2} 2归一化操作来生成相应的注意力图 g n g_{n} gn。具体来说,
g n ( h , w ) = ∥ ∑ d = 1 d = D f n ( h , w , d ) 2 ∥ 2 ∑ h , w H , W ∥ ∑ d = 1 d = D f n ( h , w , d ) 2 ∥ 2 ( 1 ) g_{n}(h, w)=\frac{\left\|\sum_{d=1}^{d=D} f_{n}(h, w, d)^{2}\right\|_{2}}{\sum_{h, w}^{H, W}\left\|\sum_{d=1}^{d=D} f_{n}(h, w, d)^{2}\right\|_{2}} \quad(1) gn(h,w)=h,wH,Wd=1d=Dfn(h,w,d)22d=1d=Dfn(h,w,d)22(1)
其中 H , W H, W H,W是特征图的高度和宽度。因此,每一帧都有一个对应的注意力图。然后将 N N N帧的特征图和注意力图都水平划分为 K K K个块:
{ g n = [ g n , 1 , … , g n , k , … , g n , K ] f n = [ f n , 1 , … , f n , k , … , f n , K ] \left\{\begin{array}{l} g_{n}=\left[g_{n, 1}, \ldots, g_{n, k}, \ldots, g_{n, K}\right] \\ f_{n}=\left[f_{n, 1}, \ldots, f_{n, k}, \ldots, f_{n, K}\right] \end{array}\right. { gn=[gn,1,,gn,k,,gn,K]fn=[fn,1,,fn,k,,fn,K]
这里, g n , k g_{n, k} gn,k表示第 n n n帧的第 k k k个区域上的空间注意力图。之后,对每个块中的所有值使用 ℓ 1 \ell_{1} 1归一化,以获得该区域的一个空间注意力分数。
s n , k = ∑ i , j ∥ g n , k ( i , j ) ∥ 1 s_{n, k}=\sum_{i, j}\left\|g_{n, k}(i, j)\right\|_{1} sn,k=i,jgn,k(i,j)1
由于特征图是在 ReLU 激活之后并且所有值都大于或等于零,因此注意力图的响应越高,意味着对重识别任务的行人的表示越好。对输入视频的所有选定帧执行相同的过程,以获得空间注意力分数的 N × K N \times K N×K矩阵 S S S

图2

图 2:具有帧间正则化的时空注意力模型的详细信息。给定输入视频的一组特征图,为每一帧生成相应的注意力图。帧间正则化用于限制同一视频轨迹中帧之间的差异。然后,将注意力图水平分成四个相等的空间区域,并使用来自相同空间区域但不同帧的空间区域来计算二维注意力得分矩阵

没有使用多个卷积层来制定时间注意力模型,而是直接比较来自不同帧但在相同空间区域上的注意力分数,并计算每个注意力在它们之间进行 ℓ 1 \ell_{1} 1归一化以获得归一化的时空注意力分数。具体来说,
S ( n , k ) = s n , k ∑ n ∥ s n , k ∥ 1 S(n, k)=\frac{s_{n, k}}{\sum_{n}\left\|s_{n, k}\right\|_{1}} S(n,k)=nsn,k1sn,k
结果,来自不同帧的每个空间区域都根据时空注意信息分配了特定的注意力分数。

Inter-Frame Regularization


对于基于视频的person Re-ID,来自一个人的同一视频tracklet的图像应该代表同一个人的外观。本文的方法进一步利用这些信息作为帧间正则化来限制帧之间学习的注意力图的差异。这种帧间正则化有助于避免每个空间区域的学习注意力分数集中在一个特定帧上而在很大程度上忽略其他帧的情况。

具体来说,由于每一帧都有对应的特征图 f n f_{n} fn,用于在训练时对行人识别进行分类。一种可能的方法是向所有帧添加分类损失,以确保它们共享相同的标识。但是,可能存在一些难以分类的噪声样本,从而使训练处理不稳定。另一种解决方案是使用 Kullback-Leibler (KL) 散度来评估每一帧的相似性,但注意力图中存在许多接近于零的元素。当在 KL 散度中使用对数运算时,这些元素会急剧下降,并且也会使训练处理变得不稳定。因此,为了鼓励时空注意模型保持相似性,同时避免关注一帧,设计了帧间正则化来测量输入图像帧之间的差异。为方便起见,将 G G G定义为从输入图像帧生成的注意力图的集合,
G = [ g 1 , … , g N ] G=\left[g_{1}, \ldots, g_{N}\right] G=[g1,,gN]

假设 g i , g j g_{i}, g_{j} gi,gj是由 Eqn (1) 计算的两帧 i i i j j j的注意力图。使用 g i g_{i} gi g j g_{j} gj之间差异的平方Frobenius范数(Meyer 2000)。具体来说,
Reg ⁡ = ∥ g i − g j ∥ F = ∑ h = 1 H ∑ w = 1 W ∣ g i ( h , w ) − g j ( h , w ) ∣ 2 \begin{aligned} \operatorname{Reg} &=\left\|g_{i}-g_{j}\right\|_{F} \\ &=\sqrt{\sum_{h=1}^{H} \sum_{w=1}^{W}\left|g_{i}(h, w)-g_{j}(h, w)\right|^{2}} \end{aligned} Reg=gigjF=h=1Hw=1Wgi(h,w)gj(h,w)2
注意,从每个视频的 N N N帧中随机选择两个帧 i i i j j j用于这个正则化项。为了限制两帧之间的差异,最小化这个正则化项 R e g R e g Reg,方法是在乘以系数 λ \lambda λ后将其添加到 Eqn (11) 中定义的原始目标函数 L total  L_{\text {total }} Ltotal 

Feature Fusion Strategy


在具有帧间正则化的 STA 模型之后,获得了一个 N × K N \times K N×K矩阵 S S S,它为每个空间区域和每个帧的特征图 f n , k f_{n, k} fn,k分配了一个注意力分数 s n , k s_{n, k} sn,k。本文提出了一种特征融合策略,方法是结合算法 1 中描述的每个 tracklet 的全局和判别信息。

给定注意力分数矩阵和一组特征图,首先将特征图划分为几个空间区域,就像在注意力图上操作一样,并选择与其他帧相比具有最高相应分数的空间区域。然后,对每个空间区域重复此操作,并将这些区域连接在一起以获得包含输入帧中最具判别力的区域的特征图。接下来,使用每个注意力分数作为权重,并在每个分割特征图上使用元素乘法来生成另一个具有输入帧全局信息的特征图。最后,将这两个特征图连接在一起,并使用全局平均池化和全连接层来生成Re-ID任务的表示向量 X X X
X = [ x 1 , x 2 , … , x n ] X=\left[x_{1}, x 2, \ldots, x_{n}\right] X=[x1,x2,,xn]

Loss Function


在本文中,利用batch-hard三元组损失和 softmax 损失,通过度量学习和判别学习的结合来训练 STA 模型。

为每个 mini-batch 随机抽取 P P P个身份和 K K K个 tracklets,以满足批量hard的三元组损失的要求。通常,损失函数公式如下:

其中 x a ( i ) , x p ( i ) , x n ( i ) x_{a}^{(i)}, x_{p}^{(i)}, x_{n}^{(i)} xa(i),xp(i),xn(i)分别是从锚点、正样本和负样本中提取的特征, α \alpha α是边缘超参数,用于控制内部和内部距离的差异。这里,正样本和负样本是指与锚点具有相同或不同身份的人。

除了batch-hard三元组损失之外,还使用softmax交叉熵损失进行判别学习。原始的softmax交叉熵损失可以表述如下:
L softmax  = − ∑ i = 1 P ∑ a = 1 K log ⁡ e W y a , i T x a , i ∑ k = 1 C e W k T x a , i L_{\text {softmax }}=-\sum_{i=1}^{P} \sum_{a=1}^{K} \log \frac{e^{W_{y_{a, i}}^{T} x_{a, i}}}{\sum_{k=1}^{C} e^{W_{k}^{T} x_{a, i}}} Lsoftmax =i=1Pa=1Klogk=1CeWkTxa,ieWya,iTxa,i
其中 y i , a y_{i, a} yi,a是样本 { a , i } \{a, i\} { a,i}的真实身份, C C C是类数。优化损失函数是softmax损失和batch-hard三元组损失的组合,如下所示:
L total  = L softmax  + L triplet  ( 11 ) L_{\text {total }}=L_{\text {softmax }}+L_{\text {triplet }} \quad(11) Ltotal =Lsoftmax +Ltriplet (11)

算法1

猜你喜欢

转载自blog.csdn.net/wl1780852311/article/details/124613563