Re-ID阅读笔记(一):《Deeply-Learned Part-Aligned Representations for Person Re-Identification》

水平有限,疏漏之处在所不免,欢迎你们批评指正git

论文做者: 浙江大学赵黎明博士 等github

博客做者: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不是同一我的,⑤⑥的特征表示应该是相近的。spa

        由此可看出两个问题:blog

  1. 行人姿式多变,人体空间分布不鲁棒;
  2. 空间分割的可靠性创建在人体空间分布大体相同的假设下,但这种假设很难保证全部状况,以下图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

结论: