多模态检索主要是实现不同模态下的数据能相互检索,例如文本模态数据,和图像模态数据。要能实现他们之间的相互检索,首先要是它们相互关联起来。CCA·算法用于多模态检索步骤:
1)首先提取文本,图像各自的底层特征,也就是会得到不同维度矩阵。
2)将训练数据去中心化后,利用CCA算法将不同维度的数据映射到相同的子空间,然后使训练的文本和图像特征相关联起来 。
3)最后当利用图像检索文本或者文本检索图像时,首先将图像和文本特征映射到与训练数据相同的子空间中,然后通过计算相同模态的测试数据与训练数据之间的相似性,通过已经训练好图像--文本关联即可找到与之对应的图像后者文本。
CCA算法的输入是不同维度的特征矩阵x,y。 [A,B] = canoncorr(X,Y); canoncorr()是Matlab自带的cca算法的函数,返回值A,B为各自线性变换的特征向量,能将不同维度的特征映射到相同的维度,并且使它们最大线性相关。