Re-ID阅读笔记(一):《Deeply-Learned Part-Aligned Representations for Person Re-Identification》
水平有限,疏漏之处在所难免,欢迎大家批评指正
论文作者: 浙江大学赵黎明博士 等
博客作者:LJW
论文链接: ICCV2017《Deeply-Learned Part-Aligned Representations for Person Re-Identification》
Github代码:here
摘要:
针对行人重识别中人体错位的问题,本文提出一种人体区域对齐的方法,训练好的深度网络将人体分解成几个有区分力的区域(这些区域不是手动分割的,而是模型觉得比较有区分力的区域),然后计算各个区域的特征向量,再将各个区域的向量连接,得到整个人的特征向量表示。两张图片可得到两个特征向量,再计算它们的欧氏距离,得到相似性,即可分辨这两个人是否是同一个人。损失函数为Facenet中提出的Triplet损失。与大多数现有的深度学习算法学习Global Feature或空间分区学习Local Feature表示不同,作者的方法进行人体区域分割,因此更具鲁棒性,可以适应各种人体空间分布。
简介:
早期的深度学习方法用local feature去做Re-id,就是用整图得到一个特征向量进行图像检索,而不考虑人体的姿态变化。后来大家逐渐发现全局特征遇到了瓶颈,于是开始渐渐研究起局部的local feature。常用的提取局部特征的思路主要有图像切块、利用骨架关键点定位以及姿态矫正等等。
(1)Global Feature:
(2)水平分割提取Local Feature:
(3)网格分割提取Local Feature:
虽然空间分割的方法提高了准确率,但是缺也存在一些缺点,作者贴了张图说明问题。a、b是同一个人,但是基于空间分割得到的①②的特征表示显然不一样;而b、c不是同一个人,⑤⑥的特征表示应该是相近的。
由此可看出两个问题:
- 行人姿势多变,人体空间分布不鲁棒;
- 空间分割的可靠性建立在人体空间分布大致相同的假设下,但这种假设很难保证所有情况,如下图d,虽然也有基于特征点的匹配方法,但是过于复杂。
作者方法:![]()
(1)损失函数:
传统的Triplet损失,其中 I 为图片提取的特征向量
(2)Part-Aligned Representation:
对一张裁剪好的行人图片,用FCN提取一个三维的tensor,这里的FCN是将GoogleNet的FC变成CNN。然后输入K个通道中,每个通道的part map detector是一个卷积层+sigmoid。卷积层可以看成权重图,不同通道对不同人体部位的响应不同,经过训练之后可以可视化得到下图。part map detector之后再进行池化和降维得到局部位置的feature vector,然后再将K个通道的feature vector连接成一个vector,L2归一化后得到行人的feature embedding,即Triplet里的 I 。局部响应的可视化:
值得注意的是,这些人体部位响应是模型通过训练得到的具有区分力的位置,而不是人为添加部位label。
试验:
(1)K值的选择:8通道性能最好
(2)在market-1501等数据集上的表现:state-of-the-art results