一.CUHK-PEDES数据集
1.Dataset statistics
1.规模:
图片数量:40206
行人数目:13003
句子数量:80412(每个图片对应两句话)
图片来源:CUHK03,Market-1501,SSM,VIPER,CUHK01(由于CUHK03,Market-1501有很多相似的sample,为了平衡入选的person number,这两个数据集中入选的每个行人有4张图片)
2.标注者:AMT上相互独立的工作者,在标注时描述语言没有具体限制。共有1993个标注者参与了工作,大量的工作者保证了不会对少数工作者的描述过拟合。
3.图片是从多个行人重识别的数据集中抽取,场景、视角、摄像机特征不同,保证了图片的多样性。图片的文本描述包含丰富的词汇,词组和句式。
4.每个行人图片用两个句子描述,这两个句子由两个独立的标注者标注,每个句子最少15个word。大部分句子所含单词数在20到40之间,平均长度为23.5。dataset中共有1893118个words,unique的word有9408个。


2.User study
1)从人类的角度来说,文本描述比使用属性更加精确和有效.
2)使用三句话描述一个人取得了最高了检索准确度,句子越长,越容易检索到正确的图片。

3)word的词性不同,对识别的影响程度不同,名词>形容词>动词
3.数据集的划分
数据集被划分成了训练集,验证集,测试集,这三者之间没有person ID的重叠。
data | 行人数 | 图片数 |
---|---|---|
training set | 11,003 | 34,054 |
validation set | 1,000 | 3,078 |
test set | 1,000 | 3,074 |
但是下载数据集后发现,它的划分并不是按这个比例来的= =
论文里只用了CUHK-PEDES这一个数据集跑了baseline和对比实验。
二.实现的细节

整个网络结构可以被分成Visual sub-network和Language sub-network两个分支。visual子网络先在数据集上基于行人ID进行了预训练,再跟language子网络一起联合训练。
1.Visual sub-network
Visual unit:
图片被resize成了256X256,基本结构跟VGG-16相同,在最后加了2个512维的全连接层。最终产生的是一个512维的视觉向量。visual子网络先在数据集上基于行人ID进行了预训练,在跟language子网络一起联合训练时,只有两个全连接层的参数进行了更新。视觉单元的语义信息是通过联合训练自动获得的,这也是设计这个网络的目的。
2.Language sub-network
每个word先被编码成K维的one-hot vector,K是vocabulary size。给定一个描述语句,有一个可学习(参数会更新)的word-fc1将word进行word embedding成一个feature(论文里没有说维度,猜测512)

LSTM每一步的输入是word-fc1和vis-fc1两个feature cancat后的vector。对于每一个word,LSTM更新memory cell和输出的hidden state通过上图中的方式。
输出的hidden state依次经过带Relu的全连接层attention-fc1,带softmax的全连接层attention-fc2,然后得到一个512维的attention vector。
1)Attention over visual units
每个visual unit表示图片中某个特定的person appearance pattern,attention vector决定了哪一个visual unit需要被加起来计算affinity,只有当对应的attention value和visual unit都高的时候才能取得高的相似度结果。这个对应关系是我们最终所想要学习的word-image的映射关系。

2)Word-level gates for visual units
根据user study,每个word的重要程度不一样,因此每个word对affinity的贡献程度要赋予不同的权值。LSTM输出的hidden state经过一个带sigmoid的全连接层gt = σ(Wght+bg)得到一个标量值作为word的权值。最终的affinity的计算公式为:

最后要求句子中所有的word对应的affinity和。
三.Training scheme:
使用了SGD梯度下降(通过每个样本来迭代更新一次)技巧。batch size为128。
训练样本从dataset中随机抽取,正样本和负样本的比例为1:3。
loss function:cross entropy

四.实验结果


疑问
为什么视觉特征需要和文本特征concat起来送到LSTM里?
为什么要用SGD梯度下降,还要用128的batch size?
网友评论