论文阅读 TIPCB: A simple but effective part-based convolutional baseline for text-based person search
1. Introduction
背景描述
属于图像检索(image retrieval),可以用文本描述检索目标人物图像(基于图像、属性、文本描述的都有)。基于文本的检索没有基于图像的成熟,所以说作者就要结合这两者,文本检索借用图像检索的结果。这个用在公安监控视频里比较多
检索流程:1、基于文本描述给所有人物图像排序 2、选前几个为匹配成功结果
文本与图像的区别
优点:文本比较好访问,图像的话还要再提取这个输入的特征比较麻烦。
缺点:1. 人物重新识别(要识别出监控画面里的人有些困难) 2.跨模式检索(要对应文本和图像很难)
具体困难在于:1. 不好识别:监控画面里的人会被七七八八的东西遮挡,姿势不同有可能会影响身高,就和输入的文本表示的身高不同了。2. 可能会有好多人都是和所描述的人一样,比如输入180男生,能搜出来一堆。
总结:这就导致用文本搜和用图像搜差别很大,图像更好搜,不过文本比较好访问 (但还是很需要用文本搜索的,毕竟有人来报警,不可能带着照片,不可能直接一个数码相片给警察,然后说这就是凶手。一般都是描述凶手多高男的女的之类的)
别人的解决方法
解决文本比图像效果差的2种办法:全局匹配法、局部匹配法
全局匹配法:主要关注全局视觉和文本表示学习,并获得统一的特征空间,而不考虑模态(?)
but!全局有缺点。图像包含许多独特的局部细节,这些细节很难通过全局表示提取来探索。此外,图像中存在一些不相关的区域,这些区域会给全局信息带来噪声。
局部匹配法(通过局部对齐):1. 额外的模型/多任务学习 but 计算量大&无法端到端学习 2. 多粒度相似性度量 but 需要把每一种局部表示都学习一遍而且要一次次计算相似度。都太耗时了。
文章提出的解决方案——TIPCB
基于文本图像部分的卷积基线Text-Image Part-based Convolutional Baseline(TIPCB)

step1. 双路径局部对齐网络结构
视觉局部表示【通用PCB策略---(提取)--- >视觉局部表示(人图像被水平分割成若干条带)】
在视觉CNN分支中,采用ResNet-50作为主干来提取视觉特征,主要由四个残差块(Res Block x3和Res Block Segment)组成。不同的残差块可以从不同级别捕获语义信息。
PCB策略(Part-based Convolutional Baseline):Beyond Part Models: Person Retrieval with Refined Part Pooling(and A Strong Convolutional Baseline)获取局部特征

这个策略就是把图像切成k份,再在每一份内部进行最大池化,然后再一一进行匹配
他训练了很多次这个CMPM,在三次resnet提取后,用这些特征训练了一次,在用PCB切成k分后用这些局部特征又训练了一波,为了融合所有局部表示,作者选择通道维度中每个元素的最大值,也就是最后一次的CMPM,
文本局部表示【语言模型处理(BERT/LSTM/GRU)----- >单词嵌入】
step2. 多分支残差网络
多分支残差网络---(自适应)-->局部文本特征,这些残差分支,通过视觉局部表示,从全局文本描述,过滤出相应文本信息。
step3:多级跨模态匹配策略
CMPM
作者认为,当把某一个模态的特征模归一化,另一个模态到这个模态的投影的可以用来表示2个模态的特征匹配度。简单来说,作者把每个batch的image-text对的匹配构建了一个概率分布,用网络的预测值和真值分布的KL散度来约束网络,以希望网络学到的单个模态到另一个模态的投影尽可能趋近于真实的分布。

概率p的计算,让每一个x和每一个z都进行配对并进行p的计算,x向量乘以z的单位向量,表示x在z方向上的贡献,然后单个的xz对除以所有的xz对的和,表示概率,用exp自然对数,是为了放大,这样p之间的差距就会明显
p就是预测值,y就是标签值
加上一个正则化项,降低过拟合
术语总结
模态Modality:就是不同信息来源啦,比如图像是一种模态,文本也是一种模态。
表示学习:为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特征,或者更一般性称为表示(Representation)。如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就是可以叫做表示学习(Representation Learning) 。
端到端 end to end:端到端学习 指的是深度学习模型中,所有参数或原先几个步骤需要确定的参数被联合学习,而不是分步骤学习。
多粒度:粒度是指不同等级的特征,多粒度就是好几个等级的特征合一起。粒度越细可以表达的东西越多、粒度越粗可以表达的东西就越少了。
相似性度量:方法有很多(欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离、马氏距离、夹角余弦、汉明距离、杰卡德距离&杰卡德相似系数、相关系数&相关距离、信息熵)
Batch Normalization (BN)层是一种常用于神经网络的正则化技术,它通过规范化输入数据的均值和方差来加速神经网络的训练过程并提高其准确性。
BERT 的输入可以包含一个句子对 (句子 A 和句子 B),也可以是单个句子。此外还增加了一些有特殊作用的标志位:
[CLS] 标志放在第一个句子的首位,经过 BERT 得到的的表征向量 C 可以用于后续的分类任务。
[SEP] 标志用于分开两个输入句子,例如输入句子 A 和 B,要在句子 A,B 后面增加 [SEP] 标志。
[UNK]标志指的是未知字符
[MASK] 标志用于遮盖句子中的一些单词,将单词用 [MASK] 遮盖之后,再利用 BERT 输出的 [MASK] 向量预测单词是什么。
