【注意力模型】Harmonious Attention Network for Person Re-Identification
文章目录
- Abstract
- 1 Introduction
- 2 Related Work
- 3 Harmonious Attention Network
- 3.1 Harmonious Attention Learning
- 4 Experiment
- 4.1 与现有方法对比
- 4.2 进一步分析讨论
Abstract
现存re-id方法要么假定了输入的行人图像是充分对齐的,要么依赖于注意力选择机制来标定未对齐的图像。因此当行人图像中存在较大的姿势变化,或者标定时存在检测错误时,这类方法将表现不佳。
本文提出(1)注意力选择(attention selection)和特征表达(feature representation)联合学习的方法,最大化不同层面的视觉注意力之间的互补信息。(2)Harmonious Attention模型联合学习soft pixel attention和hard regional attention,同时优化特征表达。
1 Introduction
为了解决由于视角不同、遮挡问题等带来的图像不对齐问题,attention selection变得非常有必要。一个普遍的策略是局部区域标定和显著性加权,但这类方法依赖于手工特征,很少有深度学习的方法。并且为数不多的深度学习方法隐性的假定了大量标签训练数据集的存在,采用的网络模型复杂度较高。此外,它们只粗略考虑了region-level,而忽略了细颗粒度pixel-level的显著性。当训练集中只有少量标注数据,且行人图像不对齐程度较大背景较杂乱时,这类方法不够有效。
本文主要贡献:
(1)多颗粒度注意力选择机制和特征表达联合学习用于优化行人重识别 (first attempt of jointly deep learning multiple complementary attention)
(2)提出HA-CNN联合学习hard region level和soft pixel-level attention,同时优化特征表达
(3)提出cross-attention交互学习机制进一步增强注意力选择和特征表达之间的兼容性
2 Related Work
3 Harmonious Attention Network
- hard attention & soft attention
- global feature & local feature
——最大化互补信息,增强判别性,简化cnn模型
HA-CNN模型包活两个分支:
(1)local branch(包括T个具有相同的结构的stream):每个stream分别用于学习T个局部图像区域中最显著的视觉特征
(2)global branch:用于学习整个行人图像的最优全局特征
对于每个分支,选择Inception-A/B单元作为基础的building blocks。
特征提取
全局分支包括3个Inception-A和3个Inception-B,局部分支的每个stream包含3个Inception-B,每个Inception的宽度(通道数)用d1d_1d1、d2d_2d2、d3d_3d3表示。全局网络最后通过全局平均池化层和全连接层之后输出一个512维的向量。局部网络也同样采用一个512维的全连接特征层来将所有stream的输出融合到一起。
注意力选择
考虑harmonious attention learning,学习两个互补的注意力maps,一个hard attention用于局部分支,一个soft attention用于全局分支。
最后采用跨注意力交互学习机制(cross-attention interaction learning scheme),同时优化每个分支的判别性特征表达。
3.1 Harmonious Attention Learning
HA采用一种学习策略可以用少量的参数同时学习三种不同类型的注意力:软空间注意力、软通道注意力和硬区域注意力。
HA模块的输入是一个三维张量 Xl∈Rh×w×c\boldsymbol{X}^l\in\mathcal{R^{h \times w \times c}}Xl∈Rh×w×c,h,w,ch,w,ch,w,c表示高度宽度通道数,lll表示该模块在整个网络中的层数(网络中存在很多个这样的模块)。
(I)(\bold{I})(I)软空间通道注意力
学习一个与X\boldsymbol{X}X相同大小的显著性权重映射Al∈Rh×w×c\boldsymbol{A}^l\in\mathcal{R^{h \times w \times c}}Al∈Rh×w×c,考虑到空间注意力和通道注意力之间的独立性,可以在学习时将其进行如下分解:
Al=Sl×Cl\boldsymbol{A}^l=\boldsymbol{S}^l \times \boldsymbol{C}^lAl=Sl×Cl
- 空间注意力
上图绿色框所示,输入h×w×ch \times w \times ch×w×c的图像,先经过通道的平均池化(0个参数):
由于所有通道享有同样的空间注意力map,所以该池化是合理的。同时这种设计压缩了输入的size,可以减少下一步卷积所需参数个数。
再经过卷积核为3×33\times33×3步长2的卷积层(9个参数),通过双线性差值恢复原大小h×wh \times wh×w(0个参数),最后经过1×11\times11×1步长1的卷积(1个参数)用于自动学习一个fusion scale使空间注意力和后面学习的通道注意力进行最优的结合。
- 通道注意力
如上图黄色框所示,输入h×w×ch \times w \times ch×w×c的图像,先经过一个池化层(0个参数)将空间分布的特征信息整合成通道特征(1×1×c1 \times 1 \times c1×1×c):
再通过cr\dfrac{c}{r}rc个1×11\times11×1步长为1的卷积得到1×1×cr1 \times 1 \times \dfrac{c}{r}1×1×rc的特征,(c2r\dfrac{c^2}{r}rc2个参数),最后通过ccc个1×11\times11×1步长为1的卷积得到1×1×c1\times1\times c1×1×c的特征(c2r\dfrac{c^2}{r}rc2个参数)。
如果直接用c个1×11\times11×1的卷积核进行卷积,需要c2c^2c2个参数,而本文设计两层卷积只用2c2r\dfrac{2c^2}{r}r2c2个参数。
最后,将空间注意力分支得到的h×w×1h\times w\times 1h×w×1h和通道注意力分支得到的1×1×c1\times1\times c1×1×c相乘之后,再经过ccc个1×11\times11×1的卷积核,得到最终的软注意力采用sigmod操作将其正则化到0.5-1之间。这是因为空间和通道注意力并不是完全互斥的,它们之间也存在一定的互补关系。
(II)(\bold{II})(II)硬区域注意力
通过学习如下转换矩阵来定位T个潜在的显著性区域:
通过变换两个尺度参数(sh,sws_h,s_wsh,sw)和空间位置(tx,tyt_x,t_ytx,ty)来对图像进行裁剪,平移和缩放变换。为了减小模型复杂度,事先固定区域大小即sh,sws_h,s_wsh,sw的值,因此学习的模型只用输出T对tx,tyt_x,t_ytx,ty的值。
如上图3d所示,硬注意力学习时采用两层的网络结构,第一层是全连接层,我们将通道注意力第一层的输出(1×c1\times c1×c)作为全连接层的输入,然后输出一个2T维的向量,即全连接层共2×T×c2\times T\times c2×T×c个参数。第二层采用tanh缩放,将2T个位置缩放到[−1,1][-1,1][−1,1]的范围中(表示在图片中的百分比位置)。取到负值时适用于显著性区域超出了图像边界,即行人只有部分位置被拍摄到的情况。
(III)(\bold{III})(III)跨注意力交叉学习
对于第lll个level,采用第k个区域的全局特征XG(l,k)\boldsymbol{X}^{(l,k)}_GXG(l,k)和其相应位置的局部特征XL(l,k)\boldsymbol{X}^{(l,k)}_LXL(l,k)相结合:
其中XG(l,k)\boldsymbol{X}^{(l,k)}_GXG(l,k)是由l+1l+1l+1层得到的硬注意力区域输入回来的对应到lll层的相应位置的全局特征。
(例如第一层HA模块输出的全局特征为40×16×d140\times16\times d_140×16×d1,经过两个Inception后将大小为20×8×d220\times8\times d_220×8×d2的特征输入给第二层HA模块,学到一个同样大小为20×8×d220\times8\times d_220×8×d2的软注意力权重和T个大小为12×1412\times1412×14硬注意力区域的位置坐标,并输出第二层的全局特征20×8×d220\times8\times d_220×8×d2,第一层的局部特征由InceptionB输出的12×14×d112\times14\times d_112×14×d1以及第一层全局特征40×16×d140\times16\times d_140×16×d1对应第二层输回来的硬注意力区域位置的特征相加得到。)
这种交叉学习的方法相当于把global branch学到的知识分给了local branch,那么在学习local feature时可以适当简化local branch网络。
反向传播训练时,由于global的参数对local部分也有影响,所以计算梯度时也要加上局部损失对它的梯度。
4 Experiment
4.1 与现有方法对比
- Market 1501
- DukeMTMC
- CUHK03
4.2 进一步分析讨论
- 不同attention的影响
结果表明,加上不同attention各自都能取得好的效果,将其联合应用效果更好。 - cross-attention interaction learning的作用
- 局部和全局特征相结合的作用
- 可视化
- 网络复杂度
【注意力模型】Harmonious Attention Network for Person Re-Identification相关推荐
- DeepLearning | 图注意力网络Graph Attention Network(GAT)论文、模型、代码解析
本篇博客是对论文 Velikovi, Petar, Cucurull, Guillem, Casanova, Arantxa,et al. Graph Attention Networks, 2018 ...
- Harmonious Attention Network for Person Re-Identification
Harmonious Attention Network for Person Re-Identification 1.介绍 2.作者的方法 3.实验细节 4.实验结果 1.介绍 现有的行人重识别算法 ...
- 【ReID】Harmonious Attention Network for Person Re-Identification
[ReID]Harmonious Attention Network for Person Re-Identification 模型 实验 写作 问题 参考文献 阅读了Harmonious Atten ...
- 图注意力网络(Graph Attention Network, GAT) 模型解读与代码实现(tensorflow2.0)
前面的文章,我们讲解了图神经网络三剑客GCN.GraphSAGE.GAT中的两个: 图卷积神经网络(GCN)理解与tensorflow2.0代码实现 GraphSAGE 模型解读与tensorflow ...
- 从网络出发讲透Harmonious Attention Network for Person Re-Identification你不懂的细节
目录 HA-CNN 1.总布局 2.HA模块 3.HA-CNN网络总分析 4.Cross-Attention Interaction 实验分析 启发 说明:网络上关于论文的描述是挺多的,但是只从论文表 ...
- VALSE学习(四):注意力机制-Attention Network
VALSE2019 会议论文 一.精细化图像理解与多媒体内容创作 Trilinear Attention Sampling Network 近年来,精细化图像识别任务通常采用具有"注意力&q ...
- 【NLP】Attention Model(注意力模型)学习总结
最近一直在研究深度语义匹配算法,搭建了个模型,跑起来效果并不是很理想,在分析原因的过程中,发现注意力模型在解决这个问题上还是很有帮助的,所以花了两天研究了一下. 此文大部分参考深度学习中的注意力机制( ...
- 深度学习: 注意力模型 (Attention Model)
Introduction 注意力模型,Attention Model . 是根据人对画面 关注度权重 的 分布不均,而设计的一种新的深度学习模型. 注意力焦点 由下图可看出,人们会把注意力更多投入到人 ...
- 2018-CVPR-Harmonious Attention Network for Person Re-Identification
论文地址 代码实现[Pytorch] Motivation 对于大幅度的姿势变化以及错检带来的行人框对准问题,现有方法采用constrained attention selection mechani ...
最新文章
- java thread 无法执行_哪位大神帮我讲一下这段代码,为什么线程不能继续执行
- 处理过拟合问题-Regularization
- 解决Eclipse中文乱码
- oracle之 SYSAUX表空间维护
- Linux内核的l2tp实现,Linux Kernel gdth实现内核内存破坏漏洞
- JavaScript实现fisherYates洗牌算法(附完整源码)
- 转收藏:Git常用命令速查表
- 信息学奥赛一本通(1135:配对碱基链)
- Select网络模型下的简单CS实例
- OpenCV算子速查表(持续更新)
- 注册app短信验证平台_怎样挑选网站验证码短信平台?
- Angularjs中设置cookies的过期时间
- python中symbol_理解和使用ES6中的Symbol
- MFC功能扩展控件BCGSuite for MFC入门指南
- MongoDB和Compass安装教程
- ICO 图标快速制作
- C语言基础入门:C-Free5设置支持C99标准
- 本地打印后台处理程序服务没有运行
- python操作selenium
- 解决cpu和内存占用率高的问题
热门文章
- 【疑难杂症】Oculus Quest2 手机配对时找不到5-digit-code
- 文字生成图片html,根据文字生成图片
- 【matlab小笔记】
- 电脑连不上ishanghai_i-Shanghai免费上网将不限时 详解如何上网不掉线
- 蓝旭前端预习5之DOM(文档对象模型)
- [M1]Daily Scum 9.28
- jetson nano运行darknet_ros的环境配置
- 2021年9月PMP考试新鲜出炉,如何查询成绩?
- 动手实践丨使用华为云IoT边缘体验“边云协同”
- 哪个相机可以拍gif动图_魅族手机如何拍摄Gif图片 魅族手机拍摄Gif动图的方法图解...