1.K-L变换定义、意义

 K-L变换也常称为主成分变换(PCA),是一种基于图像统计特性的变换,它的协方差矩阵除对角线以外的元素都是零(所以大家也叫它最佳变换),消除了数据之间的相关性,从而在信息压缩方面起着重要作用。
在模式识别和图像处理中一个主要的问题就是降维,在实际的模式识别问题中,我们选择的特征经常彼此相关,在识别这些特征时,数量很多,大部分都是无用的。如果我们能减少特征的数量,即减少特征空间的维数,那么我们将以更少的存储和计算复杂度获得更好的准确性。
如何寻找一种合理的综合性方法,使得:
1.减少特征量的个数。
2.尽量不损失或者稍损失原特征中所包含的信息。
3.使得原本相关的特征转化为彼此不相关(用相关系数阵衡量)。
K-L变换即主成分分析就可以简化大维数的数据集合。它还可以用于许多图像的处理应用中,例如:压缩、分类、特征选择等。

2.K-L变换的原理

K-L变换的目的是寻找任意统计分布的数据集合主要分量的子集。基向量满足相互正交性。使得原始数据集合变换到主分量空间,使单一数据样本的互相关性(cross-correlation)降低到最低点。
例:
对某n个波段的多光谱图像(这不就是多维信息嘛)实行一个线性变换,即对该多光谱图像组成的光谱空间X乘以一个线性变换矩阵A,产生一个新的光谱空间Y,即产生一幅新的n个波段的多光谱图像。其表达式为
                            Y = AX
式中:X为变换前多光谱空间的像元矢量;Y为变换后多光谱空间的像元矢量;A为一个n×n的线性变换矩阵。
对于K-L变换中的矩阵A,必须满足以下要求:
1. A为n×n正交矩阵,A=[φ1,φ2,φ3,…,φn]
2. 对正交矩阵A来说,取φi为X的协方差矩阵∑x的特征向量,协方差矩阵除对角线以外的元素都是零
变换Y=A’X与反变换X=AY即为K-L变换的变换公式。
因此当n=3时:
从上式可以看出,A的作用实际上对各分量加一个权重系数,实现线性变换。Y的各分量的信息的线性组合,它综合了原有各分量的信息而不是简单的取舍,这使得新的n维随机向量Y能够较好的反映事物的本质特征。
变换后的矢量Y的协方差矩阵 ∑y是对角矩阵,且作为Y的各分量  yi    的方差的对角元素就是  ∑x的特征值,即
这里λ按由小到大的顺序排列。K-L变换后新的坐标轴  的 y1,y2,y3…yn为个特征矢量的方向,由上式表明这实际上是选择分布的主要分量作为新的坐标轴,对角化表明了新的分量彼此之间是互不相关的,即变换后的图像Y的各分量之间的信息是相互独立的。

3.一维K-L变换

一种可以去掉随机向量中各元素间相关性的线性变换
变换的方法如下:
1.定义协方差矩阵
2.求协方差矩阵的特征值和特征向量
3.定义变换核矩阵和K-L变换

4.二维K-L变换及应用于人脸识别

1.脸的检测
2.特征脸
3.分类
将待识别人脸投影到新的M维人脸空间,即用一系列特征脸的线性加权和表示。此时待识别人脸问题转换为投影系数向量,识别问题转换为分类问题。最简单的分类是最小距离分类等。
  

5.总结

5.1 K-L变换的优点

k-l变换的优点主要集中在三个方面:
1.可以完全去除原始信号中的相关性
2.在进行数据压缩时,将y截短所得的均方误差最小,该最小均方误差等于所有舍去的特征值之和
3.K-L变换最大程度上保留了原始信号的能量
也正是基于此,大家才把K-L变换称为最佳变换

5.2 K-L变换的缺点

可惜的是,K-L变换还没有快速算法,这是因为变换后的基向量是依赖协方差矩阵得到的,而协方差矩阵又是利用输入信号得到的。

换句话来说,K-L变换的基向量依赖输入信号!而傅里叶变换的基向量不必依赖输入信号,这也就能解释为什么K-L变换没有快速算法。

也正因为这个原因,后面才发展出了近似的最优算法——余弦变换、正弦变换等图像压缩/数据压缩算法

深度解析K-L变换 及其 在特征识别中的应用相关推荐

  1. matlab k l变换题目,K-L变换及例题技术分析.ppt

    第7章 基于K-L展开式的特征提取 7.1 K-L变换的定义与性质 7.2 K-L变换特征提取的原理及应用 7.3 利用K-L变换进行人脸识别 实现特征提取的途径 考虑利用线性变换的方式实现降维 本质 ...

  2. python深度讲解_《深度剖析CPython解释器》21. Python类机制的深度解析(第五部分): 全方位介绍Python中的魔法方法,一网打尽...

    楔子 下面我们来看一下Python中的魔法方法,我们知道Python将操作符都抽象成了一个魔法方法(magic method),实例对象进行操作时,实际上会调用魔法方法.也正因为如此,numpy才得以 ...

  3. Java LockSupport以及park、unpark方法源码深度解析

    介绍了JUC中的LockSupport阻塞工具以及park.unpark方法的底层原理,从Java层面深入至JVM层面. 文章目录 1 LockSupport的概述 2 LockSupport的特征和 ...

  4. 一眼看清高科技,深度解析人工智能技术脉络

    现在有非常多的大公司在做人工智能方面的研究,包括Google.IBM.Facebook.Apple.百度等,也有数不尽的小型创业团队进入,使得人工智能方面变得热闹非凡.每一家公司都有自己的研究思路,也 ...

  5. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

  6. [转]Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN 原文地址:http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位 ...

  7. 刷脸时代来临,深度解析人脸识别技术市场

    刷脸时代来临,深度解析人脸识别技术市场 编者按:iPhone X带动更多智能手机集成3D人脸识别,公共场所日益增长的监控需求.刷脸时代来临,人脸识别技术巨大的市场需求与广阔的应用前景,盈利模式多变,消 ...

  8. 深度解析QMap与QHash

    一.QMap深度解析 1.QMap是一个以升序键顺序存储键值对的数据结构 (1)QMap原型为class QMap<K, T>模板 (2).QMap中的键值对根据key进行了排序 (3). ...

  9. ISO7816协议深度解析-简单易懂协议详解(一)-- 复位,字符帧,及ATR

    1. 摘要 IC卡必须支持T=0或T=1的协议,但不是同时支持这两种协议,而终端则必须同时支持T=0和T=1的协议. • T=0通讯协议是异步半双工字符传输协议: • T=1通讯协议是异步半双工块传输 ...

最新文章

  1. C语言中的extern关键字用法
  2. 安装MySQL示例   docker pull mysql
  3. 石墨烯区块链(6)开发实例
  4. 如何提高SSD的使用寿命
  5. Visual Studio控制台程序输出窗口一闪而过的解决方法
  6. oracle中自定义异常编号,Oracle自定义异常的使用
  7. 圆与平面的接触面积_如果把绝对圆的球体放在绝对平的平面上,那接触面是不是无限小?...
  8. input:hidden的作用
  9. jQuery 省市区多级(三级/四级/五级。。。)联动 BY 凨来了
  10. java keytool 导出证书,keytool 导出证书
  11. Java VM: Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode windows-amd64 compressed oops)
  12. Unity Shader入门精要学习笔记 - 第11章 让画面动起来
  13. T检验与F检验的区别_f检验和t检验的关系
  14. Java大牛呕心沥血经历——技术面试与HR谈薪资技巧
  15. 软件测试精品书单推荐指南!
  16. 在opencv中如何生成灰度图
  17. DAC8830+STM32驱动
  18. Shiro框架中实现CA登录及免密功能
  19. Ubuntu问题集2.0
  20. 深度学习之CUDA与cuDNN

热门文章

  1. Silverlight如何与JS相互调用
  2. 发一个统计项目代码行数的Java代码
  3. Python 学习记录1
  4. hdu 1558(线段相交+并查集)
  5. js笔记(8)之数组篇
  6. JSP简单练习-JSP指令
  7. 第二章 Vue快速入门-- 28 自定义按键修饰符
  8. 4.29python
  9. Problem B: 故障电灯(light)
  10. 简单API接口签名验证