图像处理kl变换 - CSDN
  • KL变换的Matlab实现

    热门讨论 2020-07-30 23:33:23
    KL变换的Matlab实现 KL 变换是图像正交变换的一种,在图像压缩领域有着广泛应用。
  • 【学习笔记】K-L变换和PCA的区别

    万次阅读 多人点赞 2019-06-12 10:41:53
    K-L变换和PCA的区别是什么? 学习模式识别,大家自然会想到这样一个并不重要的问题。老师们讲课时将这两个概念做了统一处理,wiki上也直接统一了词条。这样做的原因很好理解,大概即使它们有区别,也是极其细微的,...

    K-L变换和PCA的区别是什么?

    学习模式识别,大家自然会想到这样一个并不重要的问题。老师们讲课时将这两个概念做了统一处理,wiki上也直接统一了词条。这样做的原因很好理解,大概即使它们有区别,也是极其细微的,是不需要纳入考虑的。之所以探究这个问题,更多的还是为了能加深对这些算法的理解。

     

    =======================================================

     

    先引述一种关于两者是否有区别的观点:

    Simone Orcioni · Università Politecnica delle Marche
    None.
    Take advantage of this link:
    http://en.wikipedia.org/wiki/Karhunen%E2%80%93Lo%C3%A8ve_theorem

    "The above expansion into uncorrelated random variables is also known as the Karhunen–Loève expansion or Karhunen–Loève decomposition. The empirical version (i.e., with the coefficients computed from a sample) is known as the Karhunen–Loève transform (KLT), principal component analysis, proper orthogonal decomposition (POD), Empirical orthogonal functions (a term used in meteorology and geophysics), or the Hotelling transform."

    他引述wiki对KL理论(KL转换)的介绍“...以上对不相关随机变量的分解也被称为KL分解。它的实证版本(换言之,用到了通过样本求得的参数)被称为KLT、PCA、特征正交分解(POD)、经验正交函数(用于气象学和地理学)或霍特林变换。

     

    这是一种较为普遍的说法,甚至在PRML中也是使用的类似描述,认为PCA与KL是同样的东西。果真如此,那为什么会有这么多叫法呢?我们再来看看另一种解释。这是CSDN上看到的说法是(相同博文有两篇,就不链接了):

     

    PCA的变换矩阵是协方差矩阵,K-L变换的变换矩阵可以有很多种(二阶矩阵、协方差矩阵、总类内离散度矩阵等等)。当K-L变换矩阵为协方差矩阵时,等同于PCA。

    这个解释与课本的编排能很好的结合起来。课本基本没有提PCA,但是关于KLT的讲解是按照这样的顺序:首先引入离散KL展开(通过自相关矩阵求得转换矩阵),再过渡到降维(此时计算则使用协方差阵)的KL变换,并点明,如果平移坐标系使以样本均值为原点时,协方差阵等于自相关矩阵。其后的下一讲则介绍了,使用不同的散布矩阵完成KL变换,会得到不同的效应,其中总体散布矩阵即前述协方差矩阵。

     

    再来看看国外网站上另一个哥们说的:

    Fabrice Clerot · Orange Labs

    they are quite close but with a slight diffference : PCA analyzes the spectrum of the covariance matrix while KLT analyzes the spectrum of the correlation matrix

    即,两者区别在于PCA分析协方差矩阵而KLT分析相关矩阵

     

    这是更为具体的一种解释:

     

    Pradeep Gupta · Jaypee University of Information Technology
    PCA depend on the scaling of the variables and applicability of PCA is limited by certain assumptions made in its derivation. The claim that the PCA used for dimensionality reduction preserves most of the information of the data is misleading. Indeed, without any assumption on the signal model, PCA cannot help to reduce the amount of information lost during dimensionality reduction, where information was measured using Shannon entropy.

    The coefficients in the KLT are random variables and the expansion basis depends on the process. In fact, the orthogonal basis functions used in this representation are determined by the covariance function of the process. KLT adapts to the process in order to produce the best possible basis for its expansion.it reduces the total mean-square error resulting of its truncation. Because of this property, it is often said that the KL transform optimally compacts the energy. The main implication and difficulty of the KL transformation is computing the eigenvectors of the linear operator associated to the covariance function, which are given by the solutions to the integral equation.

    The integral equation thus reduces to a simple matrix eigenvalue problem, which explains why the PCA has such a broad domain of applications.

    他说,PCA依赖于变量的展开(不知如何翻译)且其应用受限于一些由原始推导过程中的具体假设。关于PCA用于降维能保留绝大部分信息的说法是误导的。事实上,如果没有对信号模型的任何假设,PCA对减少降维过程的信息丢失没有帮助(这里用香农熵测量信息量)。

    而KLT的参数为随机变量,且其展开的基础取决于过程(随机过程,理解为样本,下文有详注)。事实上,用于描述的正交基函数是由过程的协方差函数确定的。KLT去适应这个过程(随机过程),以期产生最佳的展开基。这样可以减少降维产生的总均方差。由于这个特性,常说KLT能最好得压缩能量。KLT主要的内容和难点在于计算关于协方差函数的线性操作的特征向量,即由积分方程求得的解。

    积分方程因此简化为简单的矩阵特征值问题,这解释了为什么PCA有如此广泛的应用。

     

    =======================================================

     

    这些网上的说法并没有解释清楚,还增添了疑惑,于是参考wiki。解决关于几个矩阵的关系,以及KLT与PCA的关系

     

    一、散布矩阵、协方差矩阵、自相关矩阵

    散布矩阵定义参考机器学习_刘伟翻译的wiki条目。其本身的定义很简单,

     S = \sum_{j=1}^n (\mathbf{x}_j-\overline{\mathbf{x}})(\mathbf{x}_j-\overline{\mathbf{x}})^T = \sum_{j=1}^n (\mathbf{x}_j-\overline{\mathbf{x}})\otimes(\mathbf{x}_j-\overline{\mathbf{x}}) = \left( \sum_{j=1}^n \mathbf{x}_j \mathbf{x}_j^T \right) - n \overline{\mathbf{x}} \overline{\mathbf{x}}^T

    此外还可以更具体的定义,如总体散布矩阵、类内散布矩阵、类间散布矩阵等。其中总体散布矩阵的定义为

    S_t = E{ (x - m_0) *(x - m_0)T }

    这个定义实际上就是协方差矩阵,即散布矩阵除以样本数n。也就是说样本的协方差矩阵也就等于样本的总体散布矩阵,对总体散布矩阵的KL变换就是对协方差矩阵的KL变换。

     

    自相关矩阵的定义参见维基autocorrelation matrix 。有

    \mathbf{R}_x = E[\mathbf{xx}^H] = \begin{bmatrix}R_{xx}(0) & R^*_{xx}(1) & R^*_{xx}(2) & \cdots & R^*_{xx}(N-1) \\R_{xx}(1) & R_{xx}(0) & R^*_{xx}(1) & \cdots & R^*_{xx}(N-2) \\R_{xx}(2) & R_{xx}(1) & R_{xx}(0) & \cdots & R^*_{xx}(N-3) \\\vdots    & \vdots    & \vdots    & \ddots & \vdots \\R_{xx}(N-1) & R_{xx}(N-2) & R_{xx}(N-3) & \cdots & R_{xx}(0) \\\end{bmatrix}

    其中自相关函数R_xx(n)的概念参见维基Autocorrelation#Signal_processing 

    对于离散情况有

    R_{yy}(l) = \sum_{n \in Z} y(n)\,\overline{y}(n-l).

    其中为实数时,函数y杠=y。

    注意到自相关矩阵与协方差矩阵的关系为

    \mathbf{C}_x = \operatorname{E} [(\mathbf{x} - \mathbf{m}_x)(\mathbf{x} - \mathbf{m}_x)^H]= \mathbf{R}_x - \mathbf{m}_x\mathbf{m}_x^H

    即,若将样本平移到均值为原点的坐标系中,则此时协方差阵与自相关阵相同。

     

    以上就理清了协方差矩阵分别于总体散布矩阵和自相关矩阵的关系。

     

    二、KLT 、 PCA

    由于wiki中KL Transform词条直接重定向到了PCA,便参考Karhunen–Loève theorem词条(KL原理,根据内容译成KL展开)。

    KL展开是随机过程的理论,将随机过程描述成无穷个正交函数的线性结合。其重要性在于,得到的结果拥有最小均方差。

    不同于傅里叶级数展开(系数为实数&展开基函数由正余弦函数组成),KL展开的系数是随机变量,且展开基函数由随机过程决定。实际上,这里的正交基函数是由随机过程的协方差函数确定的。可以认为,KL展开是根据随机过程产生最佳基函数。

    完成KL展开,就需要求出正交基函数。由于线性映射等各种性质,可知未知量满足均匀弗雷德霍姆积分方程,即可通过解方程求出基函数。

    在阅读wiki的过程中,我发现百科里涉及到的术语有些陌生,比如stochastic process,包括上文网上回答中的process,查询才知道数学上概念即“随机过程”,是一系列随机变量/随机函数的集合,也就是说样本也属于随机过程。

    继续阅读发现,KLtheorem词条中居然也有PCA的内容,读罢惊喜地发现KLT与PCA的区别基本就已经明了了:

    KLT的计算过程十分复杂,就在于积分方程的求解。然而,当应用于离散随机过程(即多个样本)中,正交基满足的原本连续的积分等式,成了离散的求和,这就极大简化了计算,也扩张了实际应用的领域。

    在PCA词条中说,根据不同的应用域,PCA在信号处理中被叫做离散KL变换、多元质量控制中为霍尔特变换、机器工程中为本征正交分解等。

    归纳一下,KLT是一种对于连续或离散的随机过程都可进行的变换,PCA则是KLT处理离散情况的算法;定义上KLT比PCA广泛,而实际上PCA比KLT实用。

     

    =======================================================

     

    最后再来验证网友的说法:

    关于协方差阵与自相关阵,两者只差对样本均值的平移量,而wiki里的KL变换都需要先平移样本,故真正应用中PCA与KLT在这一点没有差别;而关于那个篇幅很长的回答,内容则基本来自wiki,因此也没有必要再说明了。

    无论说说KLT与PCA有区别与否,都有其道理,我们只用知道,实际编程中可以不考虑两者的区别,就足够了。

     

     

     

    p.s.     PCA的发明时间比KLT早得多

    P.s.2   wiki真是是好用又靠得住啊!

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • K-L变换实现图像压缩

    千次阅读 2017-04-26 16:40:47
    卡洛南-洛伊(karhunen-Loeve)变换,简称K-L变换,也叫霍特林变换或者主成分分析。必备数学知识:协方差,相关系数,协方差矩阵(这三个知识点我是参考的同济大学的概率论数与数理统计那本书,讲的很实在),对称矩阵...

    卡洛南-洛伊(karhunen-Loeve)变换,简称K-L变换,也叫霍特林变换或者主成分分析。

    必备数学知识:协方差,相关系数,协方差矩阵(这三个知识点我是参考的同济大学的概率论数与数理统计那本书,讲的很实在),对称矩阵相似对角化

    协方差与相关系数都是用来衡量不同维度之间的相关性,正值越大说明正相关越高,负值越大说明负相关越高。协方差在matlab中可用cov()来进行计算,如下图
    这里写图片描述

    **主对角线的值代表了方差,其余的就代表了协方差。
    matlab中corrcoef是计算的各维度之间的相关系数,就是在协方差基础上除以标准差来归一化**
    这里写图片描述
    我们看到主对角线都为1,说明方差为1

    K-L变换

    这里写图片描述
    K-L变换的实质就是去除各维度之间的相关性。就是建立新的坐标系,将原本高度相关的数据在新坐标系下的协方差矩阵除对角线以外的元素都是零。如图:
    这里写图片描述
    在原坐标系下的x,y具有很强的相关性,y大致随着x的增大而增大。但在新坐标系下(x’,y’坐标系),横纵 坐标之间变得没有相关性,这表明相关性被去除。
    这里写图片描述
    这里写图片描述

    如何实现坐标转换

    构建新坐标系的过程就是主成分变换的过程。y代表新坐标系的坐标点,x代表原来坐标系的点。

    y=Gx

    其中G就是变换矩阵,G矩阵就是x的协方差矩阵的特征向量矩阵的转置矩阵。
    Σxx

    λiΣxξiλi

    matrix=[ξ1,ξ2,ξ3.......ξn]

    G=matrixT

    其实求解变换矩阵G就是求使得对阵矩阵相似对角化的正交矩阵P

    Σx使

    这里写图片描述

    K-L变换示例

    1、读取一幅图像,f图像的size为359*479
    这里写图片描述
    2、matlab函数princomp()可以方便计算特征矩阵向量coeff,和特征值latent

    [coeff,score,latent]=princomp(f);

    这里写图片描述
    这里写图片描述

    3、将原图像转换到新坐标系下

    y=fceoff

    这里写图片描述
    可以发现,转换后的图像越往后的列的值越小,可以用图像更直观地看
    这里写图片描述
    将部分很小的y值置零
    y(:,200:end)=0;

    再将图像复原
    yi=ycoeff;

    复原的图像如下显示
    这里写图片描述

    观察得到,图像有损失,但是存储压力小很多。

    matlab图像压缩

    function KL_compress(imgpath)
    %   使用K-L变换/主成分分析来对图像压缩
        f=imread(imgpath);
        f=im2double(f);
        y=[];
        [m,n]=size(f);
    
        %  拆分图像,将8*8的图像小块展开成1*64的向量,K-L变换的变换矩阵只和维度有关,故只需64*64的变换矩阵就可以了
        %  虽然这样计算降低了计算复杂度 ,但是并没有消除小块之间的相关性,但实验结果表明效果良好
        for i=1:m/8
            for j=1:n/8
                ii=(i-1)*8+1;
                jj=(j-1)*8+1;
                y_append=reshape(f(ii:ii+7,jj:jj+7),1,64)  % 将图像分成8*8的小块  
                y=[y;y_append];
            end
        end
    
        % K-L变换
        [coeff,score,latent]=princomp(y);
        k1=y*coeff;
    
        k11=k1;
        k12=k1;
        k13=k1;
        % 置0压缩过程
        k11(:,33:64)=0;
        k12(:,17:64)=0;
        k13(:,9:64)=0;
    
        % K-L逆变换
        k11_inverse=k11*coeff';
        k12_inverse=k12*coeff';
        k13_inverse=k13*coeff';
        k=1;
        %  重组图像
        for i=1:m/8
            for j=1:n/8
                y1=reshape(k11_inverse(k,1:64),8,8);
                y2=reshape(k12_inverse(k,1:64),8,8);
                y3=reshape(k13_inverse(k,1:64),8,8);
                ii=(i-1)*8+1;
                jj=(j-1)*8+1;
                image1(ii:ii+7,jj:jj+7)=y1;
                image2(ii:ii+7,jj:jj+7)=y2;
                image3(ii:ii+7,jj:jj+7)=y3;
                k=k+1;
            end
        end
        imshow(image1),title('压缩50%');
        figure,imshow(image2),title('压缩73%');
        figure,imshow(image3),title('压缩86%');
    end

    这里写图片描述

    参考资料:中科院数字图像处理PPT-正交变换2,数字图像处理原理与实战(Matlab版),同济6版概率论与数理统计

    展开全文
  • ...KL中将五副图像作为原始图像的五个分量,然后使用KL变换之后的第一个分量包含了几乎所有的信息,这也是去相关五个图像之间的相关性 另外一种比较基础的就是只是在一副图像中运...

    https://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE%E7%9F%A9%E9%98%B5

    KL中将五副图像作为原始图像的五个分量,然后使用KL变换之后的第一个分量包含了几乎所有的信息,这也是去相关五个图像之间的相关性

    另外一种比较基础的就是只是在一副图像中运用,使得图像旋转,指向图像的主分量方向

    所以哈尔矩阵既反映局部特征,又反映整体特征

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • KL变换 定义:以矢量信号X的协方差矩阵Ф的归一化正交特征矢量q所构成的正交矩阵Q,来对该矢量信号X做正交变换Y=QX,则称此变换为K-L变换(K-LT或KLT),K-LT是Karhunen-Loève Transform的简称,有的文献资料也写作...

    KL变换

    定义:以矢量信号X的协方差矩阵Ф的归一化正交特征矢量q所构成的正交矩阵Q,来对该矢量信号X做正交变换Y=QX,则称此变换为K-L变换(K-LT或KLT),K-LT是Karhunen-Loève Transform的简称,有的文献资料也写作KLT。(来自百度)

    K-L变换是最佳正交变换方式,对相关向量求协方差矩阵,按照特征值的大小排列特征向量。变换域中能量可以集中到少数几个变换系数上(特征值大的特征向量上的系数),其编码效率高,误差小,但运算复杂度大。

    其根本目的,就是依次寻找能量最大的坐标轴,用于消除多维数据之间的相关性。

    1.协方差矩阵

    在这里插入图片描述
    左边公式为方差公式,右边为协方差左图为方差公式,右图为协方差公式。一维情形时,协方差即方差。
    协方差矩阵

    协方差矩阵公式
    协方差矩阵用于多维情形,此时分子得n-1可以写为N;

    2.相关系数

    计算的各维度之间的相关系数,就是在协方差基础上除以标准差来归一化

    3.具体计算过程

    ①对样本进行去中心化;
    具体流程:对样本X求平均值M,X-M就是去中心化得到得矩阵
    ②求样本X的协方差矩阵C;
    可以直接用库里得协方差函数求解
    ③求解C的特征值和特征向量,取前k组最大的特征值对应的特征向量组成正交变换矩阵P;
    ④求解压缩后数据集Y = X * P;
    ⑤求解Y的协方差矩阵D = P *C * P.T
    ⑥可视化数据集Y
    如果Y是二维数据得话,可以考虑一维做横轴,一维做纵轴,绘制二维图像。

    展开全文
  • 编写KL变换的思路

    千次阅读 2012-11-28 00:15:05
    KL变换是从n维特征中选取m维(m  Y = Φ X 其中X表示变换前的矩阵,Y表示变换后的矩阵, Φ表示变换矩阵。为了实现变换后的矩阵特征之间的独立, Φ需要是对角阵。 我们常常利用相关矩阵 或者 协方差矩阵...
  • 图像处理中常见变换

    千次阅读 2006-05-09 17:13:00
    图像处理中常见变换 (1)KL变换 KL变换是遥感图像增强和信息提取中用得最多的线性变换,是对原波段图像进行波谱信息的线性投影变换,在尽可能不减少信息量的前提下,将原图像的高维多光谱空间的像元亮度值投影到新...
  • 数字图像处理第五章 几何变换与图像配准几何变换与图像配准1 点变换2 仿射变换3 投影变换4 应用于图像的几何变换5 MATLAB中的图像坐标系统5 图像内插 几何变换与图像配准 几何变换改变了图像中像素间的空间关系,...
  • KL最优变换手推

    2019-06-13 10:45:59
    KL最优变换推导 本文主要参考wiki。 the Karhunen–Loève transform (KLT),也叫the Karhunen–Loève expansion or ...KL变换也叫霍特林变换(Hotelling transform) ,特征向量变换(eigenvector transform...
  • KL变换与PCA的关系

    千次阅读 2013-12-04 17:40:46
    PCA的变换矩阵是协方差矩阵,K-L变换变换矩阵可以有很多种(二阶矩阵、协方差矩阵、总 类内离散度矩阵等等)。当K-L变换矩阵为协方差矩阵时,等同于PCA。
  • C++版本的KL变换

    2018-11-21 10:16:03
    暂时做两张图的KL变换,多张图也就for循环的max大一点,后边卷积核多一点。 大致流程为: 1、每张图像按照一定规则reshape,并看作一维数据,此后,图像暂时不需要行列的概念; 2、求取每张图...
  • 图像压缩是图像处理中应用最好,应用广泛的部分 一阶马尔可夫图像信源:像素之间的关系尽量的少 但是在图像中不现实,图像之间的相关性非常的高,多阶马尔可夫信源(不是很懂) 反正就是KL变换不是很好...
  • 正交变换图像压缩 傅里叶变换 时域连续—>频域非周期 时域的非周期—>频域连续 ​ 图像的频率—>图像中灰度变化的剧烈程度的指标。 傅里叶频谱图上看到的亮点实际是图像上某一点与领域点差异的...
  • 图像处理中的数学修炼】一书之代码

    万次阅读 多人点赞 2019-02-11 09:00:50
    在阅读图像处理方面的论文时,面对梯度、散度、黑塞矩阵、傅里叶变换等这些本该在微积分中早已耳熟能详的概念时,很多人仍然感觉一筹莫展。为了弭平图像处理道路上的数学险阻,帮助更多人学好数字图像处理,并更快地...
  • K-L变换与K-T 变换的异同

    千次阅读 2020-02-11 20:45:42
    K-L变换: 又称主成分分析(PCA),是一种除去波段之间的多余的信息,将多波段的图像信息压缩到比原波段更有效...因此,主成分图像能大量地压缩数据量,从而节省数据的处理时间。 K-T变换: 又称缨帽变换,是指在多光谱...
  • 自《图像处理中的数学修炼》原书第一版于2017年2月上市以来,加印重印多次,在京东和当当等主流在线购书网站上已经累计有超过3200个有效购买评论,并且在这两个网站上的好评度都超过99%。结合第一版书籍读者给出的...
  • 图像透视变换应用

    2019-11-26 23:27:21
    简介 透视变换是将成像投影到一个新的视平面,也称作投影映射。投影变换是三维空间上的非线性变换,可看做是仿射变换的更一般形式,简单讲即通过一个3...利用透视矩阵对图像进行透视变换。 说明 OpenCV提供了warp...
  • 特征选择(三)-K-L变换

    万次阅读 2014-05-19 20:51:03
    聚类变换认为:重要的分量就是能让变换后类内距离小的分量。 类内距离小,意味着抱团抱得紧。   但是,抱团抱得紧,真的就一定容易分类么? 如图1所示,根据聚类变换的原则,我们要留下方差小的分量,把方差大...
  • 第一层 》》第二层 》第三层 》》第四层 图像领域 理论 数学,信号处理,图像,计算机视觉 图像处理 模糊 ...图像处理 去燥 ...图像处理 颜色转换 ...图像处理 压缩编码 ...图像处理 增强 ...图像处理 抠图
  • 深度学习笔记 深度学习(六十九)darknet 实现实验 Compressing Deep Neural Networks with Pruning, Trained Quantization and...深度学习(六十六)生成模型、最大化似然、KL散度 深度学习(六十五)移动端网络M...
1 2 3 4 5 ... 20
收藏数 1,864
精华内容 745
热门标签
关键字:

图像处理kl变换