Hotelling transform,霍特林变换
来源:互联网 发布:大数据分析算法及模型 编辑:程序博客网 时间:2024/06/04 18:23
本文为原创博文,转载请注明出处:Hotelling transform,霍特林变换,http://write.blog.csdn.net/postedit/30097833
最近在细看一篇论文并且实现里面的方法,有一节是依靠hotelling变换实现人脸矫正,方法比较简单,不幸的是里面的公式是错的,所以在这里写一下原理顺带附上MATLAB实现。
假设有一组人脸数据P,P是3xN维的矩阵,每一列代表三维空间中的一个点,N列代表N个点,如下:
数据的均值表示为m,相当于数据的重心:
P的协方差C可以表示为下式,注意C是3x3的矩阵
协方差C的特征向量可以通过如下求解:
其中V是特征向量v1,v2,v3(因为C是3x3的矩阵,所以特征向量只可能有三个)构成的矩阵,D是特征值d1,d2,d3构成的对角矩阵,特征向量和特征值一一对应,求解的MATLAB在下面,要说明的是MATLAB里的eig函数得出的V是按照D升序排列的,就是d1<d2<d3,后面要变换一下。
下面是hotelling变换的关键一步:
其中U是这样定义的,V=[v1;v2;v3],那么U=[v3;v2;v1]^T,就是说要按照D降序排列然后还要转置一下。
MATLAB实现如下:
感觉这个hotelling和PCA有些像,hotelling找到数据分布最大的三个方向,然后将数据整体旋转到这三个方向上来,以后有时间再补充详细原理。最终得到的旋转人脸如下,因为最初的人脸没什么旋转,所以得到的结果效果也不明显,而且处理过程要多次迭代到V不再变化才能矫正姿态,我这里只做了一次变换。
4 0
- Hotelling transform,霍特林变换
- Transform变换
- Transform变换
- Transform(变换)
- 变换 transform
- Schwartzian Transform(施瓦茨变换)
- CSS3之变换Transform
- 仿射变换transform
- Unity3d变换组件(Transform)
- Transform.TransformDirection 变换方向
- SVG transform坐标变换
- CSS3之变换Transform
- -webkit-transform(元素变换)
- transform 3D 变换
- 霍夫变换(Hough Transform)
- Transform空间坐标变换节点
- 霍夫变换(Hough Transform)
- 霍夫变换(Hough Transform)
- 第一次实验作业(NPC问题----回溯算法,聚类分析)
- 怎么招聘程序员?
- 一些面试可能遇到的基础知识
- Android 批量设置监听器,监听器传递参数,重写监听器构造函数
- c语言 异常捕捉 setjmp & longjmp
- Hotelling transform,霍特林变换
- UDP校验和计算
- 数据库 行转列 列转行详解
- 孙鑫MFC消息映射机制的剖析
- 交叉工具链
- 开发 Servlet 三种方法
- 苹果新贵 Swift 之前世今生
- ThinkPHP中volist标签的使用
- 【LaTeX排版】LaTeX论文排版<三>