多视图综述以及图像检索

2021/6/2 10:53:35

本文主要是介绍多视图综述以及图像检索,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.1 算法分类

1.1.1 协同训练

该方法旨在最大限度地扩展所有观点的相互协议,并达成最广泛的共识。协同训练算法一般过程如图1所示,根据该过程对算法进行交替训练,利用先验信息或相互学习知识,使两种不同视图的一致性最大化。

Co-training算法利用了数据集每个属性间可能会产生的“相容互补性”,将每个可以独立生成该属性
下最优聚类的属性作为一个视图,以这些最优视图作为多视图聚类的基础,进行互相学习。通过每个视图的学习器对已标记样本进行学习,生成一个分类器,让每个分类器对未标记样本进行挑选,将挑选出的最有把握的样本赋予伪标记后,使用该伪标记样本提供给其他学习器进行学习,并对分类器进行更新,然后再一次对未标记样本进行伪标记赋予,直到分类器不再变化或者到达迭代轮数上限为止。

Co training的相容互补性,可以理解为每个视图都具有一定的相似状态。假设每一个单独的视图的选择都是最优的,则它们所产生的聚类情况必定也是最优的,因此不需要通过已标记的样本来对未标记样本进行伪标记计算,只需要从各个视图聚类所产生的结果中选出它们之间被归为同一类别的数据,将这些数据作为已标记样本来对其他样本进行标记,我们把这样的数据称为“视图一致样本”。如果2个样本在最终的任一视图中不属于同一类别,则它们在其他视图中也不属于同一类别。这种
方式因为不需要采用有监督的人工分类数据,所以笔者称其为UCo- training( Unsupervised Co-train-
ing)算法,具体流程如图所示。

 

1.1.2 多核学习

最初开发多核学习是为了提高可能的内核函数[(例如:线性内核、多项式内核及高斯内核)的搜索空间容量,以实现良好的泛化性。由于多核学习中的内核自然对应于不同视图,因此多核学习被广泛应用于处理多视图数据。多核学习方法一般过程如图2所示,其中使用不同的预定义内核处理不同视图,然后将其进行内核线性或非线性组合,以便得到一个统一内核。在MvC设置中,基于多核学习的MvC希望能最优地组合一组预定义内核,以便提高聚类性能。在该方法中,一个基本问题是找到一种方法以选择合适的核函数,并将这些核采用最优方式组合起来。

1.1.3 多视图图聚类

图形(或网络)广泛用于表示对象之间的关系,其中每个节点都与数据对象相对应,并且每个边描绘一对对象之间的关系。在实践中,该关系通常用相似性或亲缘关系表示,即输入图矩阵是由数据相似性矩阵生成的。在多视图场景中,数据对象由多个图进行捕获。一个常见假设是每个单独的图可以捕获数据部分信息,而所有图形都具有相同的基础数据聚类结构。因此,这些图可以通过合并数据对象之间的关系以相互增强。多视图图聚类的目的是在所有视图中找到一个融合图,然后在融合图上应用图形切割算法或其它技术(如谱聚类),产生最终的聚类结果。

1.1.4多视图子空间聚类

多视图子空间聚类是对所有视图数据,从多个子空间或潜在空间学习一种新的、统一的表示,使其在建立聚类模型时更容易处理高维数据。在MvC领域,多视图子空间聚类已成为一个热门话题。多视图子空间聚类通过以下两种方式获得统一的特征表示:①直接从多个子空间中获取单一表示;②首先学习一个潜在空间,然后到达该统一表示。最后,这种统一表示被输入到现成的聚类模型中,以产生聚类结果。

1.1.5多任务多视图聚类

多任务聚类(属于多任务学习领域)一起执行多个相关任务,并利用这些任务之间的关系增强单视图数据的聚类性能。通过继承MvC和多任务聚类的属性,多任务多视图聚类(Multi-task Multi-View Clustering, MvC)通过一个或多个任务处理单个视图数据。MvC的主要挑战包括在每个视图上找到一种任务内聚类建模方法,以及一种利用多任务与多视图关系的方法,同时对任务间的知识进行相互传递。

2.图像检索

2.1两类图像检索技术

基于文本的图像检索(TBIR)技术,其主要原理为利用文本描述,如文本描述图片的内容、作者等等的方式来检索图片;

基于图像的内容语义的图像检索技术(CBIR),利用图片的颜色、纹理及图片包含的物体、类别等信息检索图片,如给定检索目标图片,在图像检索数据库中检索出与它相似的图片。

基于图像的内容语义的图像检索包括相同物体图像检索和相同类别图像检索,检索任务分别为检索同一个物体地不同图片和检索同一个类别地图片。例如,行人检索中检索的是同一个人即同一个身份在不同场景不同摄像头下拍得的图片属于相同物体的图像检索,而在3D形状检索中则是检索属于同一类的物品,如飞机等。

2.2图像检索技术的步骤

图像检索技术主要包含几个步骤,分别为:输入图片、特征提取、度量学习、重排序。

特征提取:即将图片数据进行降维,提取数据的判别性信息,一般将一张图片降维为一个向量;

度量学习:一般利用度量函数,计算图片特征之间的距离,作为loss,训练特征提取网络,使得相似图片提取的特征相似,不同类的图片提取的特征差异性较大。

重排序:利用数据间的流形关系,对度量结果进行重新排序,从而得到更好的检索结果。

2.3深度学习与图像检索

随着深度学习的引入,基于深度学习的图像检索技术,主要是将深度学习方法应用在图像检索中的特征提取模块,利用卷积神经网络提取图片特征。主要步骤即给定一张图片,通过卷积神经网络对图片进行特征提取得到表征图片的特征,利用度量学习方法如欧式距离对图片特征进行计算距离,对图片距离进行排序,得到初级检索结果,再根据图片数据的上下文信息和流形结构对图像检索结果进行重排序,从而提高图像检索准确率,得到最终的检索结果。

2.4 提升检索性能的一些思考

1、检索目标背景杂乱

(1)在实例检索中,复杂的背景噪声直接影响了最终的搜索性能。因此很多队伍首先尝试使用目标检测(比如faster-rcnn)RPN定位感兴趣的区域,然后在进一步地学习特征,比较相似度。另外,当没有bounding box训练数据时,弱监督的目标定位也是一种有效的方法。

(2)预处理:自动定位用户感兴趣的商品,去除背景、多主体等因素的影响,也有利于抽取的语义特征的对齐。语义对齐方式,常见操作有商品检测框对齐、旋转对齐、局部关键点对齐等。(淘宝搜图用户可以手动调整选择检测框)

2、类内差异性与类间相似性(高层语义和低层特征融合)

很多方法都是用最后一个卷积层或全连接层的特征进行检索,而由于高层的特征已经损失了很多细节信息(对于更深的网络,损失更严重。高层语义和低层特征融合很重要。不同层的特征图谱(feature map)进行融合,这不仅利用了高层特征的语义信息,还考虑了低层特征的细节纹理信息,使得实例搜索更精准。GoogLeNet-22网络,对于最后的8层特征图(从Inception 3b到Inception 5b),首先使用最大池化对这些不同尺度的特征图分别进行子采样(转换为相同尺寸的特征图),并使用的卷积对这些采样结果进一步地处理。然后对这些特征图做线性加权(由的卷积完成),最后在此基础上,使用sum pooling得到最终的图像特征。在训练时,我们根据所提供的训练数据,通过优化基于余弦距离的triplet ranking loss来端到端学习这些特征。因此在测试时,可以直接使用特征之间的余弦距离来衡量图像的相似度。(例如一件衣服除了一件是圆领另一件是V领,其他颜色,纹理都是一摸一样的,领口形状就是高层语义,颜色纹理就是低层特征。要想达到好的检索效果最好都要兼顾。(类似特征金子塔FPN))

3、特征降维 

特征提取得到的特征表示经常是含有很多组不同分量的高纬矢量,高纬度对后面的分析带来不便,分量之间也可能相互关联,需要特征降维。维度低且判别性好的特征才能保证检索的性能与效率。用于降维学习的数据一般是商品同款数据;常用的降维方式有线性判别分析(LDA)、图像分类与度量学习(无监督马氏度量,PCA主成分分析特征抽取:进行去均值化,即计算所有数据的平均值,并把?个数据减去该平均值;计算协方差矩阵S;计算S的特征值和特征向量并按特征值大小降序排列;选择前K (K为降维后的维数)个特征值对应的特征向呈组成变换矩阵;使用变换矩阵对原数据进行变换)等

4、提升速度

(1)特征聚类,如果数据库数据量比较小,用于检索的特征纬数也比较小可以使用穷举法直接检索。但是如果数据很多,特征纬度很高的情况下,这种方法就很慢,可以用聚类缩小搜索范围。K-means聚类,(选择k个点作为初始质心,将每个点指派到最近的质心,形成k个簇,重新计算每个簇的质心,反复操作,直到簇不发生变化,或者到最大迭代次数。优点容易实现,缺点可能收敛到局部最小值,大规模数据收敛慢)。找出和待搜索图像距离最小的聚类中心,之后计算待搜索图像和这个聚类中心所对应的簇中的每个图像的距离,返回若干距离最小的作为结果。

(2)通过识别目标主体的品类,使得在检索时可以在该类别的数据子库进行搜索,提升检索的效果与效率。

5、将图像相关文字描述与图像的低层特征融入到一个CBIR系统中。(百度,淘宝可以先输入图片之后,再输入文字描述)

6、反馈技术

图像检索最终的用户是人,通过交互手段来捕获人对图像内容的认知。体现出人与系统的协同工作,打分,在线学习,检索性能的评价指标。(强化学习,给搜索结果一个reward)

7、一阶池化特征和二阶池化特征融合

二阶池化方法通过捕捉图像二阶统计变量,如协方差等,往往可以取得更好的搜索准确率。

8、联合特征学习和属性预测

与DeepFashion类似,同时学习特征和预测图片的属性(多任务训练),从而得到更具区分性的特征。(loss函数为Softmax loss 和度量学习loss相加)

 问题:如何学习多视图数据之间的良好关联仍然是一个未解决的问题。

多视图表示学习算法:例如,多视图表示学习的进展范围从包括多模态主题学习[9-11]、多视图稀疏编码[12-14]和多视图潜在空间马尔可夫网络[15,16]的传统方法,到包括多模态深层玻尔兹曼机器[17]、多模态深层自动编码器[18-20]和多模态递归神经网络[21-23]的基于深层体系结构的方法。

多视图表示学习存在的问题:输入数据质量低(有噪声并且会丢失);多视图嵌入建模的不适当目标;很多的处理需求;the presence of view disagreement。

问题:

  1. 学习良好的多视图表示的合适目标是什么?
  2. 哪些类型的深度学习架构适合多视图表示学习?
  3. 在具有结构化输入/输出的多视图表示学习中,嵌入函数应该如何建模?
  4. 不同的多视角表征学习范式之间有什么理论联系?

Multi-View Representation Alignment

基于距离的对齐

  1. 跨模态因子分析CFA:找到正交变换矩阵
  2. 自动编码器[19]

基于相似度的对齐

  1. 深度视觉语义嵌入模型[30]
  2. 深度跨模态对齐模型:模型通过多模态嵌入空间和基于相似性的结构化目标来关联句子片段和它们所描述的图像区域。[21]

基于相关性的对齐

  • 方法:CCA找到linear projections

Canonical Correlation Analysis

一些定义[62] [62] [58] [59] [46]

稀疏CCA

热点:学习数据的稀疏表示

Kernel CCA

由于内核化是将非线性引入线性方法的一个原则性技巧,内核化(KCCA) [74,75]提供了一个替代解决方案。

Deep CCA[8]

多层非线性拓展

框架

[101]应用

结合深度经典相关自动编码器和基于自动编码器的方法的优点,提出了深度经典相关自动编码器(DCCAE) [20]。

 

 

 

Multi-View Representation Fusion

基于图模型的融合

  1. 代表性的例子有多模态主题学习[11]
  2. 多模态潜在迪利克雷分配LDA[142],多类监督LDA[143],spatial-LDA[144]
  3. 多视角稀疏编码[12],多视图柯西鉴别稀疏编码mDHSC[14]
  4. 多视角潜在空间马尔科夫网络[15,16],多视图距离度量框架[152]
  5. 多模态深度玻尔兹曼机(DBN)[17](模拟图像与文本之间的关系)。

方法:PCMF[31-34]

 

基于神经网络的表示融合

多视图表示学习首先学习每个视图各自的中级特征,然后将它们集成到单一紧凑的表示中。

  1. 多模态自动编码器[18](双峰深度自动编码器)
  2. 多视图卷积神经网络CNN[38]
  3. 多模态递归神经网络RNN[21],信息检索[176]

 

跨模态检索

  1. CCA  (KCCA)[3] [76] [77] [182] [184]:深度组合跨模态学习排序

 

相关算法

  1. 协同训练算法[18]  协同MVC[40,41]
  2. 多核学习:在这样的方法中,一个基本的问题是找到一种选择合适的核函数并优化组合这些核的方法

问题:数据不完整,解决办法:

  1. 多视图图聚类
  • 基于图像的MvC
  • 基于问题的MvC
  1. 多视图子空间聚类(子空间学习和非负矩阵分解NMF)
  2. 多任务多视图聚类

 

 

多视图表示学习存在的问题:输入数据质量低(有噪声并且会丢失);多视图嵌入建模的不适当目标;很多的处理需求;the presence of view disagreement。

问题:

  1. 学习良好的多视图表示的合适目标是什么?
  2. 哪些类型的深度学习架构适合多视图表示学习?
  3. 在具有结构化输入/输出的多视图表示学习中,嵌入函数应该如何建模?
  4. 不同的多视角表征学习范式之间有什么理论联系?

 

Multi-View Representation Alignment

基于距离的对齐

  1. 跨模态因子分析CFA:找到正交变换矩阵
  2. 自动编码器[19]

基于相似度的对齐

  1. 深度视觉语义嵌入模型[30]
  2. 深度跨模态对齐模型:模型通过多模态嵌入空间和基于相似性的结构化目标来关联句子片段和它们所描述的图像区域。[21]

 

 

基于相关性的对齐

  • 方法:CCA找到linear projections

Canonical Correlation Analysis

一些定义[62] [62] [58] [59] [46]

稀疏CCA

热点:学习数据的稀疏表示

Kernel CCA

由于内核化是将非线性引入线性方法的一个原则性技巧,内核化(KCCA) [74,75]提供了一个替代解决方案。

Deep CCA[8]

多层非线性拓展

框架

[101]应用

结合深度经典相关自动编码器和基于自动编码器的方法的优点,提出了深度经典相关自动编码器(DCCAE) [20]。

 

 

 

Multi-View Representation Fusion

基于图模型的融合

  1. 代表性的例子有多模态主题学习[11]
  2. 多模态潜在迪利克雷分配LDA[142],多类监督LDA[143],spatial-LDA[144]
  3. 多视角稀疏编码[12],多视图柯西鉴别稀疏编码mDHSC[14]
  4. 多视角潜在空间马尔科夫网络[15,16],多视图距离度量框架[152]
  5. 多模态深度玻尔兹曼机(DBN)[17](模拟图像与文本之间的关系)。

方法:PCMF[31-34]

 

基于神经网络的表示融合

多视图表示学习首先学习每个视图各自的中级特征,然后将它们集成到单一紧凑的表示中。

  1. 多模态自动编码器[18](双峰深度自动编码器)
  2. 多视图卷积神经网络CNN[38]
  3. 多模态递归神经网络RNN[21],信息检索[176]

 

跨模态检索

  1. CCA  (KCCA)[3] [76] [77] [182] [184]:深度组合跨模态学习排序

 

相关算法

  1. 协同训练算法[18]  协同MVC[40,41]
  2. 多核学习:在这样的方法中,一个基本的问题是找到一种选择合适的核函数并优化组合这些核的方法

问题:数据不完整,解决办法:

  1. 多视图图聚类
  • 基于图像的MvC
  • 基于问题的MvC
  1. 多视图子空间聚类(子空间学习和非负矩阵分解NMF)
  2. 多任务多视图聚类

 



这篇关于多视图综述以及图像检索的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程