Geng, Mengyue, et al. “Deep Transfer Learning for Person Re-identification.” arXiv preprint arXiv:1611.05244 (2016).
概述
本文解决行人的Re-Identification问题:判断两次出现的人是否是同一个人。在Market 1501竞赛中名列榜首,其Rank-1准确率比第二名高出约4%,和传统方法相比提升更是十分明显。
本文的亮点有三:
- 在网络结构方面,使用训练好的GoogleNet进行特征提取;同时使用Verification和Classification代价进行优化。
- 在训练时,分两步进行参数调优,使得小数据集的使用成为可能。
- 使用一种巧妙的非监督方法,利用未标定的大量视频数据。
网络结构
特征提取
使用在ImageNet上训练好的GoogleNet1提取 K = 1024 K=1024 K=1024维特征。
GoogleNet约有100层网络,其中由参数的只有22层(如果算pooling是27层),整体参数不超过10M。需要训练的参数少,也是作者选择GoogleNet的原因。
由于充分利用了大训练集上的预训练结果,本文的正确率比以往工作有了明显提升。
代价
同时考虑两个代价。
分类代价:将一个输入图像分类为已知的N个类别中的一类。
鉴别代价:判断两个图像是否为同一个人。特别注意,上下两路中的dropout层完全相同,保证略去的节点位置对应。
同时考虑两个代价,也是本文正确率高的原因之一。
需要特别声明的是,GoogleNet在不同阶段实际有三个输出。对这三个输出都同等地施加上述两个代价。
测试方法
在执行行人识别任务时,实际被利用的只有GoogleNet部分的网络。遵循如下规则。
预处理
- 计算所有gallery中人的特征
识别
- 对输入图像,计算其特征
- 与gallery中特征逐个比较,计算欧式距离
- 距离最小的,认定为识别结果
训练方法
监督学习
在监督学习场景下,数据库中的每个样本标定的人员身份。
初始化时,提取特征网络使用GoogleNet参数,softmax部分随机初始化。
训练分为两步完成:
- 固定其他参数,只训练softmax层
- 训练所有层参数
一个特别一点的情况是,用于训练的行人数据库有两个,一个包含 N 1 N_1 N1个人的较大的库作为辅助,一个包含 N 2 N_2 N2个人的较小的库为目标。
训练分为三步:
- 固定其他参数,在大库上训练输出为 N 1 N_1 N1的softmax层
- 固定其他参数,在小库上训练输出为 N 2 N_2 N2的softmax层
- 在小库上训练所有层参数
无监督学习
非监督学习场景下,人员身份未标定,但能够区分图像是否来自不同摄像机。
为简洁起见,设有两个摄像机 a , b a,b a,b,分别拍摄了 M a , M b M_a, M_b Ma,Mb张行人图像,记为 { X a } , { X b } \{ X_a \}, \{X_b\} { Xa},{ Xb}。
经过特征网络提取的特征记为 { Y a } , { Y b } \{ Y_a \}, \{Y_b\} { Y