1. 引言
现如今,城市里的很多公共场所都配有监控摄像头,甚至每秒钟都能产生成千上万的视频数据,利用这些数量庞大的数据去搜寻可能的犯罪嫌疑人,现阶段这项工作还是利用人工居多,并且可能需要消耗数十天甚至数月的时间来完成搜寻工作。因此,自动搜寻行人的方法是我们非常迫切需要的。使用不限格式的文本描述在庞大的数据集中搜寻行人图片在计算机视觉领域是一个非常具有挑战性的领域。我们利用表征模型将图像和文本投影到相同的表征空间之中,再利用损失函数计算它们的相似性,得出损失,利用反向传播收敛模型。经过训练,得出的最优模型。模型最终目的是为了输入不限格式的文本描述,在图像数据集中搜寻相关性最高的行人图片。
图像和文本在自身的模态内都包含有丰富的语义信息,为了能够用同一个模型来挖掘对比信息,匹配图像–文本对是我们面临的挑战。基于文本的行人搜寻目的是根据所给出的文本描述的句子来搜寻目标人物的图片。这个内容的要求就是将两个模态的内容使用强表征联系起来。强鲁棒性的表征是将图像和文本投影到某同一个向量空间而形成,再利用特定的损失函数计算出损失进行反向传播来训练模型。图像的特征提取网络包含有:CNN、VGG16、Yolo3、ResNet、ViT等网络模型,文本的特征提取包括:CNN、DPCNN、VDCNN、RNN、LSTM、BiLSTM、GRU、BiGRU、Bert等网络模型,现阶段大多数使用的损失函数包括有:CMPM、RankingLoss等等。同时为了使模态内表征更强,在图像方面特征增强的方法包括:CAM、PAM、Max Gated block、CIA Module、SIA Module等等,在文本数据增强方面的方法包括:EDA、回译等方法,在图像数据增强方面,包含一些基础的数据增强的方法包括:随机裁剪、随机翻转等等方法,在文本嵌入方面的方法包括:Word2Vec、GloVe、Bert等嵌入方法。
由于在找寻行人的时候,现实情况中缺少行人的图像,所以用行人图像来找人的方式不切实际;而基于自然语言描述,在行人图集中寻找最匹配的行人,是一种比较贴合实际的方式;在应用方面:找犯罪嫌疑人、视频监控或者寻人启事等事务之中,此研究内容具有很强的应用性和价值。
2. 相关工作
在使用文本描述的行人重识别方法方面,研究者们提出了许多方法。其中根据学习方式可以划分为:模态间以及模态内两种方法;其中根据图像特征划分可以分为:局部分支匹配、全局分支匹配以及混合匹配;根据多模态特征的特征维度可以划分为:高纬特征匹配、低维特征匹配以及混合匹配;根据损失函数也可以划分为:基于标签的以及基于实例的;还有根据文本嵌入方式可以划分为:嵌入为单词形式的以及嵌入为字母形式的,等等。
这些划分方式,都起到了不同的效果。例如通过将图像表征进行划分,例如使用:PCB [1] 的图像表征划分方式,再与文本的表征进行匹配,强调突出了表征信息突出的部分,而全局的分支匹配则保留了如背景等容易被忽略的图像表征信息。Sun [1] 等人水平分割行人图像的特征矩阵来挖掘局部表征,突出特征将被更好的学习;Wang [2] 等人采用多尺寸表征学习策略:将每个特征矩阵剪切成尺寸大小不同的矩阵作为局部分支进行学习;Zhao [3] 等人使用了特殊的注意力机制进行学习,进一步增强图像局部表征的鲁棒性;Song [4] 等人以及Zhao [5] 等人使用了图像姿态评估特征辅助局部分割特征以及挖掘细节信息;Kakayeh [6] 等人使用附加图像语义分割的方法来增强图像的局部特征;Zhang [7] 等人CAM和PAM模块加入到ResNet50中间层来增强图像表征;Ma [8] 等人使用Max Gated block来减轻GMP中引入的错误信息来提高行人重识别模型的准确率;Hou [9] 等人使用CIA和SIA模块加入到ResNet50中来增强图像的表征;Li [10] 等人提出GNA-RNN模型,提取多模态特征进行拼接,使用了多级别attention机制等特征混淆技术;Zhang [11] 等人使用LSTM-CNN模型提取特征,提出了CMPC等损失函数进行训练。
我们的基准模型,使建立再CMPC损失函数和图像使用ResNet残差网络,语义使用BERT预处理后使用残差分支来将图像和语义数据的表征化。损失函数使用CMPC。而我们的模型,将语义的网络修改成FastText模型,牺牲了部分精准度,但是完成了时间复杂度上的大幅减少,是一种非常容易落地和解决现实应用问题的具体方案。
3. 基准模型
这一节中,我们会介绍一下基准模型:基于部分的文字图像卷积网络。此模型阐述了一个双向的对齐网络框架,基于图像CNN分支和文本CNN分支,并且使用CMPC损失函数来收敛模型。
3.1. 图像表征学习
如图1所示,模型包含两个CNN分支来学习图像和语义(输入的行人图像和描述)表征之间的差别,
在训练姐阶段,假设训练集为
,其中N表示每一批的图像文本对,每一对是由图像I和对应
的描述T组成。在图像CNN分支中,采用ResNet-50框架作为挖掘图像特征的基础框架,由四个残差块组成。不同的残差块可以从不同的维度来捕获不同的语义信息。对于每个图像I,我们定义由第三个和第四个残差块作为低纬特征图
以及高维特征图
,其中H,W以及
代表特征图的高度和宽度的维度以及通道数,因此,我们可以使用全局最大池化层作为过滤器来挖掘显著信息。如下公式:
(1)
同时,采用了PCB [2] 策略获取本地分支。特别需要注意的是,高纬特征图
被分割为K个水平块
,其中
的维度为
。对于每个块也使用最大池化层挖掘图像本地表征
。为了混淆所有本地表征,使用通道维度元素中最大的值,以此获得图像全局表征
:
(2)
因此,我们可以获得图像特征集
,其中包含了低维、本地和全局表征。在测试阶段,则只使用高位表征来测试相似性。
3.2. 文本表征学习
在文本分支,BERT [12] 是一种表现特别好的模型,我们将其用在挖掘特殊字嵌入上,通过双向Transformer [13] 训练,可以学习到文本上下文之间的关系。特别是,将文本描述T分割成字的集合,然后插入[CLS]和[SEP]在集合开头和结尾。然后,这个集合使用预训练分词器将集合嵌入到表征中。为了确定文本长度的一致性,当文本长于L的时候,选择前L个表征,当文本短于L的时候尾部加上0补齐。最后,每个分词后的文彪表述被输入进预训练以及修成参数后的BERT模型之中,来挖掘字嵌入
。其中D代表每个词嵌入的维度。由于与训练后的BERT模型有强语义表征能力,并且文本CNN结构有足够的能力来处理字嵌入,同时只有CNN结构才能显著的减少参数,加速模型聚拢。
为了能满足卷积层的输入要求,将字嵌入从
扩展到
,其中1,L和D分别代表高度、宽度和卷积输入的通道数。由于残差网络和文本CNN等结构,设计了一种多分枝文本CNN如图2。在文本CNN中,为了能将字嵌入散列成预图像低纬特征图相同通道维度,第一个卷积层的过滤器被设置为
。然后我们可以得到文本地位特征图
。
多分支文本CNN包括K个残差分支,分别对应图像中行人照片的K块。对于每个分支,包含了P个文本残差模块,目的是自适应学习文本表征来匹配图像本地表征。文本模块与ResNet中有同样的模型,由几个卷积层和批量正则层组成。短接被应用于从低纬层传递信息给高维层,扭转了网络梯度下降问题并加速了模型训练。特别是,保持文本信息不被压缩,所有残差模块中的卷积层的步长被设置为1 × 1。对第一个残差模块的每一个分支,修改文本特征图的通道维度为
,与图像高维特征图
,并且保持通道维度不变进入下一个残差模块。经过多分支文本CNN后,可以获得文本本地特征图。同样的,采用同图像CNN分支一样的最大池化层挖掘文本本地特征并选择每个向量维度元素的最大值来混淆
这些本地表征。然后,可以得到
,包含低维、本地和全局表征。

Figure 2. Graphics of residual branch and residual bottleneck
图2. 残差分支及残差瓶颈图
3.3. CMPC损失函数
根据图像和文本的表征集合
和
,有损失函数如下:
(3)
其中,
表示控制不同CMPM损失的重要程度,并且
,
,
分别表示CMPM
损失中低维、本地以及高维表征的损失。具体损失函数内容,可以看Zhang [11] 的文章。
4. FastText模型
FastText是一种简单而且高效的文本分类和字嵌入方法,分类的精度在某些方面甚至能够媲美深度学习,而由于模型复杂度不高,因此在训练和测试速度上有很大的优势。其核心思想是N-gram,一种基于统计语言模型的算法,也是NLP领域的一种较为特殊的嵌入模型。在文本特征提取中,基本思想是将文本内容按照顺序进行窗口大小为N的滑动操作,最终形成长度为N的片序列。这种滑动窗口的模式包含字粒度和词粒度两种形式。而使用FastText进行文本分类的同时会产生词的嵌入,我们正是想利用这种高效且有效的方式来进行多模态行人重识别系统的研究。FastText模型如下图3,其中
代表i-Gram嵌入:
基于FastText速度快、精度高的特性,使用FastText代替文本CNN进行词嵌入,利用FastText模型进行N-Gram叠加并于词嵌入做并使用全链接层,作为多模态学习的文本表征,按照图像的低维、本地以及全局的三种形式进行全链接,保障于图像的三类表征维度相同,实现文本和图像表征的对齐,以此来训练。在使用CMPC损失函数进行反向传播,使模型收敛。
5. 实验
5.1. 实验设置
数据集使用CUHK-PEDES数据集 [10] ,只包含对人的描述和行人图像。包含40,206个行人图像和13,003个实体。对于每张行人照片,对应有两句描述,每句话描述大约23个字,词汇表有9408个不同的字。
评价方式采用标准评价衡量指标,使用top-k (k = 1, 5, 10)准确度以及每轮训练时间来评价模型表现。
实现细节,在图像CNN分支中,采用预训练后的ResNet-50作为基础挖掘图像特征图,步长做微调整;在FastText文本分支,使用本身与2-Gram和3-Gram进行拼接和取均值,再使用线性层,使用BERT预训练框架进行字嵌入。所有的输入图像被重置成384*128,规定文本长度
。本地分隔值
。在图像和文本特征里,H被设置为24,W被设置为8,D = 768,
,
。批数量设置为64对图像文本对。
训练阶段,把Adam作为优化器,权重损失值设置为3 × 10−3,模型训练80个循环。基础学习率为3 × 10−3,50轮后减少0.1。在前十轮的学习中,使用warmup策略来初始化学习率。三个超参数
都设置为1。实在使用pytorch框架,GPU使用tesla v100 (16G)。
5.2. 实验结果对比

Table 1. System resulting data of standard experiment
表1. 标准试验系统结果数据
对照组和实验组,两组实验都进行了80轮学习,有如表1数据。使用Visual CNN和Text CNN进行特征挖掘的模型,其一轮学习时间大约为12 min,top1准确度63.6%,top5准确度82.8%,top10准确度89%;而我们提出的模型,使用Visual CNN和FastText进行特征提取,在一轮学习时间上只花了4 min,速度提升了快两倍,也保证了一定的准确度,top1准确度52.6%,top5准确度73.4%,top10准确度79.6%。
6. 结论
通过对比原Visual CNN和TextCNN的行人重识别系统,使用Visual CNN和FastText的模型虽在top1、top5和top10的精度上下降了15%左右,但是时间复杂度上,后者将速度提上了一个平台,提升了200%左右(学习时间为保留分钟位)。因此在平常的应用中,本研究证明了可以利用Visual CNN和FastText进行图像和文本的特征挖掘,并对齐后使用CPMC损失函数进行学习,对比于对照组,大幅提升了训练和测试的速度,降低了参数量,并且保证了一定的精度。此研究在一定程度上会促进项目的落地和应用。