Spindle Net
Spindle Net
论文:Spindle Net:Person Re-Identification with Human Body Region Guide Feature Decomposition and Fusion,cvpr,2017
论文地址:链接
代码:SpindleNet
摘要
背景:由检测算和姿势变化引起的行人身体不对准的问题会为不同图像间的特征匹配造成严重的影响。
贡献:本文提出了一种基于人体区域引导的多阶段特征分解和树形结构的竞争特征融合的新型卷积神经网络-SpindleNet,首次在ReID 中考虑人体结构信息,帮助对齐不同图像中的人体区域特征,增强局部细节信息的表示能力。SpindleNet 包括两个步骤:(1)不同语义层次的特征在不同阶段进行提取。(2)合并不同语义层的特征。还提出了一个ReID 数据集—SenseReID.
引言
在匹配过程中,存在行人的不同图像语义信息不对齐,局部遮挡等现象,如下图:
网络结构
1、Body Region Proposal Network(RPN)
RPN用于提取行人的区域,分为七个部分:肩膀上、上半身、下半身、左右手、左右脚,如下图示:
Step1:定位输入图片的14个关键节点
借鉴了CPM(一种姿态估计网络),利用Sequential framework 以由粗到细的方式来生成响应图,全卷积网络——> 14个response map(14个关节heatmap)
-
在每个阶段,CNN提取特征并结合上一个阶段的响应图来refine关键点估计的位置
对CPM进行修改来降低其复杂度:
- 共享前几层的卷积参数
- 用s=2的卷积代替池化层
- 减小了输入大小、阶段数、卷积层的通道数
-
14个关节点可以通过最大化特征图上的值得到:
P i = [ x i , y i ] = a r g max x ∈ [ 1 , X ] , y ∈ [ 1 , Y ] F i ( x , y ) P_i = [x_i, y_i] = arg \max \limits_{x\in[1,X],y\in[1,Y]} F_i (x,y) Pi=[xi,yi]=argx∈[1,X],y∈[1,Y]maxFi(x,y)
Step2:产生7个身体区域:
- 根据14个关节点生成3个宏观区域(头-肩,上体、下体)、4个微观区域(双腿、双臂),具体可参考上图
2、Body Region Guided Spindle Net
两个主要部分
- the Feature Extraction Network(FEN):输入为行人图片和候选区域,计算全局特征和子区域特征
- the Feature Fusion Network(FFN):合并不同区域的特征向量
2.1 Feature Extraction Network(FEN)
FEN 由三个卷积层(FEN-C1,FEN-C2,FEN-C3)、两个roi pooling stages(FEN-P1,FEN-P2)
- 1个全图+7个身体子部分,每个部分产生256-dim 向量
- sub-region 的特征从全图的特征上在不同阶段crop到
- 在FEN-C3后通过一个全局池化层和一个内积层将输出转换为256-dim向量
下图表示区域特征有效性:
- b)、(e)为经过FEN-C1的全局特征,由该特征计算非对准的相同人的距离将远,相似人两个人距离较近
- (c )、(f)为FEN-P1后的特征,利用该特征计算相似性对于非对准的相同人距离减小,相似人的距离增大
2.2 Feature Fusion Network(FFN)
A tree-structured fusion strategy:根据子区域的不同语义层次与关系在不同的阶段将特征向量进行合并,双腿、双臂 ——>双腿 + 下半身 、双臂+上半身 ——>上半身结果+下半身结果+头-肩部 ——>合并图像+全局图像特征进行拼接,并转换为256-dim 向量。
特征融合单元包含两个步骤:① 特征的计算和选择,采用元素最大策略(理解是三个区域的特征向量每个元素都选值最大的那个,如下图所示);② 特征的转换,采用内积计算(理解是对全局、区域特征融合时候采用了内积,将两个256维向量融合为一个256维向量)。
2.3 训练细节
- progressive strategy:先训练FEN、再训练FFN;权重全部随机初始化
- FEN训练步骤:
- 先训练输入为全图
- 固定FEN-C1参数,训练三个宏观分支
- 固定FEN-C1、FEN-C2,训练四个微观分支
- FFN由FEN产生的特征向量进行训练,Softmax,在训练过程中只用了分类损失,没有用到Triplet loss 损失函数
Experiments
1、实验数据集以及划分策略如下表:
2、比较结果
Investigations
1、Investigations on FEN
- ROI pooling得到宏观区域以及微观区域的最佳位置
-
由上图可以看到:
- Marco最佳为FEN-C1:macro包含更复杂的身份信息,应该更早的pool out来得到更多独立的学习参数
- Micro最佳为FEN-C2
-
全图特征与在不同阶段提取宏观及微观特征的组合实验
2、Investigations on FFN
- 测试每种特征的效果:全图 > 宏观 > 微观
- 树型融合策略与其他融合策略的对比:
Conclusion
- 本文提出的Spindle Net:
- a multi-stage ROI pooling network:分开提取不同身体区域特征
- tree-structured fusion network:合并不同身体区域特征
- 不同层次的身体特征有助于对齐不同行人图片的身体区域
- 通过实验验证了feature competition and fusion network的有效性
提取不同身体区域特征- tree-structured fusion network:合并不同身体区域特征
- 不同层次的身体特征有助于对齐不同行人图片的身体区域
- 通过实验验证了feature competition and fusion network的有效性
- 本文的方法在多个数据集上取得了SOTA的方法