方法思想:因为图像本身来讲就是一个矩阵,可以依靠矩阵分解获取一些更加鲁棒的特征来对图像进行相似度的计算。
基于SVD分解的方法优点:奇异值的稳定性,比例不变性,旋转不变性和压缩性。即奇异值分解是基于整体的表示,不但具有正交变换、旋转、位移、镜像映射等代数和几何上的不变性,而且具有良好的稳定性和抗噪性,广泛应用于模式识别与图像分析中。对图像进行奇异值分解的目的是得到唯一、稳定的特征描述,降低特征空间的维度,提高抗干扰能力。 基于SVD分解的方法缺点是:奇异值分解得到的奇异矢量中有负数存在,不能很好的解释其物理意义。
基于NMF分解的方法:将非负矩阵分解为可以体现图像主要信息的基矩阵与系数矩阵,并且可以对基矩阵赋予很好的解释,比如对人脸的分割,得到的基向量就是人的“眼睛”、“鼻子”等主要概念特征,源图像表示为基矩阵的加权组合,所以,NMF在人脸识别场合发挥着巨大的作用。
基于矩阵特征值计算的方法还有很多,比如Trace变换,不变矩计算等。
1.7.2.3 基于特征点方法
方法描述:统计两个图像patch中匹配的特征点数,如果相似的特征点数比例最大,则认为最相似,最匹配
方法思想:图像可以中特征点来描述,比如sift特征点,LK光流法中的角点等等。这样相似度的测量就转变为特征点的匹配了。
以前做过一些实验,关于特征点匹配的,对一幅图像进行仿射变换,然后匹配两者之间的特征点,选取的特征点有sift和快速的sift变形版本surf等。
方法优点:能被选作特征点的大致要满足不变性,尺度不变性,旋转不变等。这样图像的相似度计算也就具备了这些不变性。
方法缺点:特征点的匹配计算速度比较慢,同时特征点也有可能出现错误匹配的现象。
1.7.2.4 基于峰值信噪比(PSNR)的方法
当我们想检查压缩视频带来的细微差异的时候,就需要构建一个能够逐帧比较差视频差异的系统。最常用的比较算法是PSNR( Peak signal-to-noise ratio)。这是个使用“局部均值误差”来判断差异的最简单的方法,假设有这两幅图像:I1和I2,它们的行列数分别是i,j,有c个通道。每个像素的每个通道的值占用一个字节,值域[0,255]。注意当两幅图像的相同的话,MSE的值会变成0。这样会导致PSNR的公式会除以0而变得没有意义。所以我们需要单独的处理这样的特殊情况。此外由于像素的动态范围很广,在处理时会使用对数变换来缩小范围。
在考察压缩后的视频时,这个值大约在30到50之间,数字越大则表明压缩质量越好。如果图像差异很明显,就可能会得到15甚至更低的值。PSNR算法简单,检查的速度也很快。但是其呈现的差异值有时候和人的主观感受不成比例。所以有另外一种称作结构相似性的算
法做出了这方面的改进。
1.7.2.5 图像模板匹配
一般而言,源图像与模板图像patch尺寸一样的话,可以直接使用上面介绍的图像相似度测量的方法;如果源图像与模板图像尺寸不一样,通常需要进行滑动匹配窗口,扫面个整幅图像获得最好的匹配patch。
在OpenCV中对应的函数为:matchTemplate():函数功能是在输入图像中滑动窗口寻找各个位置与模板图像patch的相似度。相似度的评价标准(匹配方法)有:CV_TM_SQDIFF平方差匹配法(相似度越高,值越小),CV_TM_CCORR相关匹配法(采用乘法操作,相似度越高值越大),CV_TM_CCOEFF相关系数匹配法(1表示最好的匹配,-1表示最差的匹配)。 CV_TM_SQDIFF计算公式:
CV_TM_CCORR计算公式:
有一种新的用来计算相似度或者进行距离度量的方法:EMD,Earth Mover's Distances EMD is defined as the minimal cost that must be paid to transform one histograminto the other, where there is a “ground distance” between the basic featuresthat are aggregated into the histogram。
光线变化能引起图像颜色值的漂移,尽管漂移没有改变颜色直方图的形状,但漂移引起了颜色值位置的变化,从而可能导致匹配策略失效。而 EMD是一种度量准则,度量怎样将一个直方图转变为另一个直方图的形状,包括移动直方图的部分(或全部)到一个新的位置,可以在任意维度的直方图上进行这种度量。
在OpenCV中有相应的计算方法:cvCalcEMD2()。结合着opencv支持库,计算直方图均衡后与原图的HSV颜色空间直方图之间的EMD距离。
1.7.2.6 基于特定理论的图像相似度算法
这一类的相似度算法大都是建立在图结构的基础上进行的。假定分割后的图像其区域都具有独立性和唯一性,那么通过属性特征提取和区域空间关系的描述,就可以把图像对应地描述成图结构。因此,对图结构的相似度计算就可以从一定程度上代表图像之间的相似情况。
1.7.2.6.1 相似度传播法
为了计算图的相似度,文献[34]提出了这样一个理论,如果两个图节点的邻居节点是相似的,则这两个节点也是相似的。换句话说,这两个节点的相似度的一部分传播给了它们各自的
邻居。这样经过一系列的迭代,这种相似度就会传遍整个图,从而我们就可以得出两个图的最终整体相似度。因此,根据这种相似度观点,可以对两个图构造出一个相似度矩阵,将图中两两节点间的相似度都当成矩阵的一个元素,然后通过矩阵的相关运算,得出最终的一个相似度计算公式。其过程可为如下所示:
相似度矩阵是用于描述图结构的相似程度的一个整体情况的有效工具,最早是在UUman的算法中进行定义,而在随后的各种算法中也得到了很好的应用。相似度传播算法是基于矩阵的基本运算来进行的,矩阵运算是单纯的数学运算,从数学运算的角度上去比较两个图之间的相似度,虽然简便了很多,但同时也容易丢失图像的信息。因此,该算法准确性方面还不够。
1.7.2.6.2 基于关联图的相似度算法
1.7.2.6.3 基于最大公共子图的相似度算法
1.7.2.6.4 节点迭代匹配算法
参照整体相似度等于各部分相似度之和的原则,节点迭代匹配算法提出了图像匹配错误等于节点错误和对应边错误之和的思想_。该算法将匹配过程进行了 K次的迭代,K由图节点