主分量分析(PCA)

2024-07-11

主分量分析(PCA)(精选4篇)

主分量分析(PCA) 篇1

0 引 言

主分量分析PCA(Primary Component Analyze)是统计学中一种根据数据的统计分布特性提取数据主要成分的数据处理方法。由于它能减少数据的维数,并能使提取成分与原始数据的误差在均方意义上达到最小,所以常被用于数据的压缩和模式识别的特征提取。在反求工程中,三维激光扫描点云数据处理的一般流程为点云数据获取、噪声去除、点云数据过滤和平滑、数据压缩、点云特征提取与分割、曲线拟合、表面重建。其中,数据压缩是后续表面重建的关键步骤。

一般而言,三维散乱点云数据具有较大噪声,数据概率分布不一定符合高斯分布,这限制了PCA在点云数据压缩中的使用。鉴于此,本文基于Kernel-PCA的思想,尝试将三维点云数据映射到曲率空间,然后再用PCA进行处理。

关于点云数据的曲率估算方法,国内外已有一些研究。Milroy等采用局部坐标系内的二次参数曲面逼近点云[1],利用曲率的微分性在OSC(Orthogonal cross Section) 模型上估算点云数据的曲率值。Huang和刘胜兰是在三角网格模型上进行曲率估算的[2,3]。以上几种是采用其他模型代替原三维点云模型来估算曲率的方法。胡鑫采用图像处理中梯度求解法,对点云中每一点处的曲率进行估计[4],它对噪声没有抑制作用,同时对点云数据的组织方式有要求。Yang的方法直接以点云模型为研究对象,但却局限于对规则点云进行曲率计算[5]。对于散乱点集模型进行曲率估算目前还缺少有效的方法。本文尝试着直接在散乱点集模型上计算曲率,然后再做PCA压缩。

1 基于曲率的主分量分析

1.1 曲率的计算

具体步骤如下:

(1) 对点云进行空间划分和K-邻近计算[6],把每个点xiK-邻近包括该点记为N(xi),每个N(xi)的隐含曲面用一个切平面逼近[7]。N(xi)在切平面上的投影记作N(xi′),各点的切平面计算可以通过各点的邻近点关系和最小二乘原理[1]求得,且xixi′必须满足一一映射关系。

(2) 以xi′为基点,求出距离xi′最远的点xj′,xj′∈N(xi′)。连接xi′,xj′两点的直线方向作为u方向,垂直于u方向的直线方向作为v方向。

(3) 将N(xi′)的每点都与xi′相连,得到k个有向线段,把这些线段在u方向上的投影记为di,1≤ij。将di进行排序,最大的记为dmax,最小的记为dmin,则N(xi)每点对应的u参数值由下式得出:

uj=dj-dmindmax-dmin(1)

式中:2≤jk+1;u1=0。

(4) 为计算每一顶点的曲率,运用Yang所形成的二次参数曲面逼近法,求得较为精确逼近散乱数据点的二次参数曲面。利用顶点xiN(xi)建立二次参数曲面:

r(u,v)=[1uu2]Q[1vv2](2)

令:W=(u0v0,u0v1,u0v2,u1v0,u1v1,u1v2,u2v0,u2v1,u2v2)T,则二次曲面可以表示为:

r(u,v)=WΤQ(3)

式中:

Q=(ΜΤΜ)-1ΜΤΖΜ=[W0ΤW1ΤWkΤ]Ζ=(Ζx,Ζy,Ζz)=[x0y0z0x1y1z1x2y2z2xkykzk]

式中Z表示为N(xi)的矩阵。

(5) 由文献[8]可知,高斯曲率K、平均曲率H由下式求得:

Κ=LΝ-Μ2EG-F2(4)Η=EΝ+GL-2FΜ2(EG-F2)(5)

式中:E=ruruF=rurvG=rvrvΝ¯=rurv/|rurv|L=ruuΝ¯Μ=ruvΝ¯Ν=rvvΝ¯。曲面法矢方向调整的方法见文献[9]。

1.2 基于曲率的PCA

PCA具体步骤如下:

(1) 计算采集到的点云数据曲率,得到矩阵K=[k1,k2,…,ki]。

(2) 令k¯=ki/i,矩阵K中的每个值减去k¯,得到矩阵X=[k1-k¯k2-k¯ki-k¯]

(3) 对XXT进行特征值分解,求取特征值,根据数据具体特征确定阈值。

2 实 验

高斯曲率K及平均曲率H是分析三维表面的2个重要的几何特征,通过二者的组合可以得到,局部表面的几何特征[10]。在Matlab平台上实现了上述基于曲率的PCA算法。为了验证算法的有效性,在隧道三维扫描点云数据上进行了验证。直接用Imageware软件获取原始点云数据的基本信息,得到x,y,z方向的最小值xmin,ymin,zmin和最大值。其中,任意截取两段点云数据,形成区域1和区域2。做曲率分布直方图,如图1和图2所示。

图1中区域1为(x>xmin&x<xmin+5&y>ymin+8&y<ymin+12&z>zmin&z<zmin+3)。其中,横轴为曲率,纵轴为点云曲率出现概率。图2中区域2为(x>xmin+10&x<xmin+15&y>ymin+12&y<ymin+16&z>zmin+6&z<zmin+9)。其中,横轴为曲率,纵轴点云曲率出现概率。

显然,曲率分布概率满足高斯分布,曲率主元之间具有线性关系,这些满足了PCA使用的基本条件。基于曲率的PCA对点云数据压缩后的结果如表1所示。

3 数据压缩

本文以基于曲率的PCA算法,提出一个海量数据压缩方案,对所求得的点云数据的曲率进行PCA计算,保留较大特征值所对应的点,删除较小特征值所对应的点。具体方案步骤如下:

(1) 确定原始点云数据最外区域;

(2) 区域细化;

(3) 细化区域内点云高斯曲率的计算;

(4) 对求得的所有点云高斯曲率进行PCA求解;

(5) 确定求得特征值的阈值,保留较大特征值的对应点,删除较小特征值的对应点;

(6) 压缩结果不满足要求时,循环步骤(4)和步骤(5),第二次压缩;

运用本文的数据压缩方案对隧道表面三维扫描点云数据进行了简化。该原始数据是由德国GOM公司的光学测量仪atos 测量所得的38 645个散乱点,点云数据预先已经进行去噪,空间划分和K-邻近计算(K=10),可满足后续实验的需要。该实验是在CPU coreTM2 ,内存2 GB,硬盘250 GB,Matlab 7.0.1和Imageware 12平台环境下进行的。数据压缩结果如表2所示。

压缩前后的点云分别在Matlab平台里,显示结果如图3~图5所示。对压缩前与压缩后的点云变化进行比较,可以发现点云数量减少了,但是仍然能够清楚地表现整个隧道的情况。

4 结 语

本文给出了一种三维点云数据压缩方法。实验表明,这种方法可以达到较小的压缩比,同时尽可能地保留了细节特征。由于该算法对曲率估计的精度要求不高,提高了曲率计算的速度,具有更好的实用性。当数据样本比较大时,该算法效果更为明显。基于曲率的PCA数据压缩算法,对于目前三维扫描仪所测量的数据点云,能保留模型的特征信息,同时去除噪声,这对后续模型重建具有重大意义。

摘要:提出一种基于曲率的主分量分析算法。该算法先计算各点的曲率,包括主曲率、高斯曲率和平均曲率,并将点云数据映射到曲率空间,对曲率空间进行主分量提取,然后对点云数据进行压缩。实验结果表明,该算法具有较好的压缩性能。将PCA算法引入三维点云数据压缩,弥补了传统PCA方法的缺陷。

关键词:曲率,主分量分析,数据压缩,三维数据

参考文献

[1]MILROY M J,BRADLEY C,VICKERS G W.Segmenta-tion of a wrap-around model using an active contour[J].Computer Aided Design,1997,29(4):299-320.

[2]HUANG J,MENQ C H.Automatic data segmentation forfeom etric feature extraction from unorganized 3-D coordi-nate points[J].IEEE Transactions on Robotics and Auto-mation,2001,17(3):268-279.

[3]刘胜兰,周儒荣,张丽艳.三角网格模型的特征线提取[J].计算机辅助设计与图形学学报,2003,15(4):444-448.

[4]胡鑫,习俊通,金烨.基于图像法的点云数据边界自动提取[J].上海交通大学学报,2002,36(8):1118-1120.

[5]YANG M,LEE E.Segmentation of measured data using aparametric quadric surface approximation[J].ComputerAided Design,1999,31(7):449-457.

[6]VARADY T,MARTIN R R,COX J.Reverse engineeringof geometric models-An introduction[J].Computer AidedDesign,1997,29(4):255-268.

[7]MA W Y,KRUTH J P.Parameterization of randomlymeasured points for least squares fitting of B-sp line curvesand surfaces[J].Computer Aided Design,1995,27(9):663-675.

[8]朱心雄.自由曲线曲面造型技术[M].北京:科学出版社,2000.

[9]张丽艳.逆向工程中模型重建关键技术研究[D].南京:南京航空航天大学,2001.

[10]BESL P J,JAIN R C.Segmentation trough variable-ordersurface fitting[J].IEEE Trans.on Pattern Anal MachineIntell,1998,10(2):167-192.

主分量分析(PCA) 篇2

关键词:人工神经网络,主分量分析,C++

(一) 引言

图像数据是一种十分重要且数据量很大的信息源, 特别是多媒体及网络技术兴起后, 它已成为多媒体信息中最重要的组成部分。数据压缩就是以较少的数据量表示信源以原始形式所代表的信息, 其目的在于节省存储空间、传输时间、信号频带或发送能量等。采用数字技术会使信号处理的性能大为提高, 但其数据量的增加也是十分惊人的。图像数据更是多媒体、网络通信等技术重点研究的压缩对象。不加压缩的图像数据是计算机的处理速度、通信信道的容量等所无法承受的。尽管人们在存储介质、总线结构和网络性能等方面不断有新的突破, 但数据量的增长速度远超过硬件设施的提高水平, 以上的矛盾仍然无法解决。如果将上述图像信号压缩几倍、十几倍, 甚至上百倍, 将十分有利于图像的传输和存储。可见, 在现有硬件设施条件下, 对图像信号本身进行压缩是解决上述矛盾的主要出路。

本文是利用人工神经网络和主分量分析进行图像压缩, 人工神经网络是由大量处理单元 (神经元) 互连而成的网络, 是对人脑的抽象、简化和模拟, 反映人脑的基本特性, 是一种旨在模拟人脑结构及其功能的智能信息处理系统。而主分量分析是在统计学中分析数据的一种有效的方法, 其目的是在数据空间中找到一组向量尽可能解释数据的方差, 通过一个特殊的矩阵, 将原有的高维数据投影为较低维的数据空间, 并且保留了数据主要信息, 以便能更方便地处理数据信息。利用这个方法能更方便地实现数字图像压缩, 而不用学习繁琐的编码方法。

(二) 人工神经网络

1. 人工神经网络简介

人工神经网络是由简单的处理单元所组成的大量并行分布的处理机, 这种处理机具有存储和应用经验知识的自然特性, 它与人脑的相似之处概括为两个方面:一是通过学习过程利用神经网络从外部环境中获取知识;二是内部神经元 (突触权值) 用来存储获取的知识信息。

神经网络也经常被称为神经计算机 (Neurocomputer) , 但它与现代数字计算机的不同之处主要表现在以下方面:

(1) 神经网络的信息存储与处理 (计算) 是合二为一的, 即信息的存储体现在神经元互连的分布上;传统计算机的存储与计算是独立的, 因而在存储与计算之间存在着瓶颈。

(2) 神经网络以大规模模拟计算为主;数字计算机是以串行离散符号处理为主。

(3) 神经网络具有很强的鲁棒性和容错性, 善于联想、概括、类比和推广, 任何局部的损伤不会影响整体结果。

(4) 神经网络具有很强的自学能力, 能为新的输入产生合理的输出, 可在学习过程之中不断完善自己, 具有创新的特点。

(5) 神经网络是一个大规模自适应非线性动力系统, 具有集体运算的能力。这与本质上是线性系统的现代数字计算机迥然不同。

人工神经网络是近年来的热点研究领域, 涉及到电子科学与技术、信息与通信工程、计算机科学与技术、电气工程、控制科学与技术等诸多科学, 其应用领域包括建模、时间序列分析、模式识别和控制等, 并在不断地拓展。

2. 人工神经网络模型

人工神经网络是由大量处理单元互连而成的网络, 是人脑的抽象、简化、模拟, 反映人脑的基本特性。一般来说, 作为神经元模型应具备三个要素:

(1) 具有一组突触或连接, 常用wij表示神经元i和神经元j之间的连接强度, 或称之为权值。与人脑神经元不同, 人工神经元权值的取值可在负值与正值之间。

(2) 具有反映生物神经元时空整合功能的输入信号累加器。

(3) 具有一个激励函数, 用于限制神经元输出。激励函数将输出信号压缩 (限制) 在一个允许范围内, 使其成为有限值, 通常, 神经元输出的扩充范围在[0, 1]或[-1, 1]闭区间。

神经元满足公式:

其中, xj (j=1, 2, …N) 为神经元i的输入信号;wij为突触强度或连接权;bi为神经元i的阈值或称为偏差, f (⋅) 是激励函数, yi是神经元i的输出。

(三) 主分量分析

1. 主分量分析方法

主分量分析是在统计学中分析数据的一种有效的方法, 其目的是在数据空间中找到一组向量尽可能解释数据的方差, 通过一个特殊的矩阵, 将原有的高维数据投影为较低维的数据空间, 并且保留了数据主要信息, 以便能更方便地处理数据信息。

可以把主分量分析的主要过程分为特征选择过程和特征提取过程。在特征选择过程, 主要将输入空间映射到输出空间, 从而获得输入的特征, 即输入的主分量;而特征提取过程也就是降维过程, 在该过程中选择主要的特征而舍去其他特征分量。

2. 主分量分析网络及其算法

主分量分析虽然是在均方误差下最优的特征提取的算法, 但是由于涉及到求解矩阵的特征值和特征向量, 运算量很大。而主分量分析神经网络通过并行运算, 采用无监督的自组织学习实现了对于输入数据的主分量提取。

其中Oja网络给出了单个神经元的实现, 它可以提取输入的第1个主分量, 而基于Sanger算法的前向网络则实现了对于多个主分量的提取, 两者采用的的都是无监督学习, 算法核心是经过更改的Hebb学习的权值更新规则;上述两种网络都属于前向网络, 而自适应主分量提取网络则把抑制原理引入到网络输出层, 实现了网络的竞争机制。

3. 非线性主分量分析及去网络模型

Oja在1991年推出了单个单元和多个单元的PCA学习规则的非线性形式, Kramer也与1991年首次使用神经网络实现了非线性PCA, 后来大量的非线性PCA纷纷涌现出来, 如双梯度算法、非线性GHA算法、非线性PCA的RLS算法、核主分量算法等。

(四) 程序设计

1. 初始化

这部分程序将512×512的网络用8×8像素进行分割, 成为1024×64的网络。即1024个向量, 每个向量有64个输入, 通过具体程序, 可以求出归一化的输入向量, 将权值初始化。

具体就是通过四个嵌套for循环将8×8的像素变为64个像素点, 并且放入数组中。原来的数组每一行中有64个单元, 每一个单元里是8×8的像素, 通过for循环, 将一个单元中8×8的像素变为64个像素点放入新二维数组的一行中, 64个单元变成64列。经过不断循环将512×512的网络变成了1024×64的网络。

然后通过程序将算出归一化的输入向量, 此向量是1024行、64列, 接下来就是初始化权值。

2. 训练更新权值

(1) 程序框图

程序框图如图1所示。

(2) 程序

(3) 算法

训练更新权值的程序中用到了很多算法。

1) 求一个样本的输出

运用了Sanger算法, 该算法的主分量分析网络是在Oja网络的基础上将输出层神经元扩充到M个, 并通过权值向量Wi=[wi1, wi2, L, wiN]T (i=1, 2, …, M) 和输入节点相连。其中输出层第i个神经元的输出。

2) 求侧抑制

所谓侧抑制, 就是对神经元的学习是依次进行的, 即第i个神经元的学习是建立在前i-1个神经元的学习已收敛的基础上。对于第i个神经元, 它在学习后期权值向量将与前i-1个神经元的权值向量正交, 即它可以提取与已训练好的前i-1个神经元所表示的i-1个分量正交的最大分量。

这是属于自适应主分量网络的算法。

3) 更新权值

网络的权值更新规则为

式 (2) 就是Sanger算法, 其中η为网络的学习速率, 0<η<1。

3. 图像的信噪比

需要特别说明一下信噪比, 即SNR (Signal to Noise Ratio) 又称为讯噪比, 狭义来讲是指放大器的输出信号的电压与同时输出的噪声电压的比, 常常用分贝数表示。设备的信噪比越高表明它产生的杂音越少。一般来说, 信噪比越大, 说明混在信号里的噪声越小, 声音回放的音质量越高, 否则相反。

图像的信噪比应该等于信号与噪声的功率谱之比, 但通常功率谱难以计算, 有一种方法可以近似估计图像信噪比, 即信号与噪声的方差之比。首先计算图像所有象素的局部方差, 将局部方差的最大值认为是信号方差, 最小值是噪声方差, 求出它们的比值, 再转成dB数。

其算法是:

式 (3) 中, Iij为原始图像的灰度值;I$为重建图像的灰度值。

程序所求信噪比就是基于这原理求得的, 程序如下:

(五) 仿真及结论

主分量分析方法提取数据的主要成分, 舍去次要成分, 并利用主要成分以最小均方失真的代价重建数据。因此, 主分量分析常被用于数据有损压缩。

图2是用于仿真实验的原始黑白图像, 尺寸为256×256, 256个灰度等级。将图像分为8×8大小的子块, 依次取像素组成64维向量作为训练矢量, 分别对含有4个、8个和16个神经元的主分量分析网络进行训练, 学习常数η取5×10-8, 训练完毕后用主分量重建图像见表1。

为了对比压缩效果, 对原始图像还采用了DCT变换, 同样将图像分成8×8大小的子块, 分别取4个, 8个和16个低频分量重建图像, 结果见表1。此外令压缩比为CQ。

仿真结果显示, 在相同的条件下, 采用主分量分析神经网络算法, 重构图像的信噪比明显优于采用DCT变换方法。对于主分量分析神经网络算法, 重构图像的信噪比与主分量的数目有关, 主分量越多, 重构图像质量越好。因此, 主分量分析神经网络算法对原始图像有更显著的能量集中效果, 更适于进行数据的高效压缩。

参考文献

[1]高隽.人工神经网络原理及仿真实例[M].北京:机械工业出版社, 2007.

[2]韩力群.人工神经网络教程[M].北京:北京邮电大学出版社, 2006.

主分量分析(PCA) 篇3

关键词:小波变换,RIQ颜色空间,主分量分析

1 概述

基于主成分分析的人脸识别方法也称为特征脸方法, 该方法利用相对较小的特征空间描述人脸, 这样每幅人脸图像就对应于一个维数较低的权向量。因此, 人脸识别可以在降维后的空间上进行。国防科技大学的冯玉贵等人提出了一种基于比例因子的主分量分析人脸识别方法, 该方法要求先根据相关权重的大小对所有主成分进行排序, 选择前若干个主成分组成的子集用于人脸表示。同济大学的武妍等人提出了一种PCA与ICA相结合的人脸识别方法, 在光照、表情变化较大的情况下, 提高了人脸识别率。提出了一种基于RIQ颜色空间的主分量分析方法, 本方法提高了提取特征向量的能量集中程度。实验表明, 该算法有较好的识别效果。

2 RIQ颜色空间

Zhiming Liu和Chengjun Liu等人提出了RIQ颜色空间。RGB颜色空间由红、绿、蓝三种元素组成, 其它的颜色都是通过线性或非线性变换由这三种元素计算得到。而另一种颜色YIQ颜色空间由透明度和色调组成。其中, Y代表透明度或亮度, 表示图片的灰度值。I和Q代表图片的色调, I代表从橙色到青色的颜色变化, Q代表从紫色到黄绿色的颜色变换。将彩色图像从RGB转换到YIQ色彩空间, 可以把彩色图像中的亮度信息与色度信息分开, 分别独立进行处理。Zhiming Liu和Chengjun Liu的实验表明, RGB颜色空间中的R元素与YIQ颜色空间中的IQ元素代表了图片大部分的能量。我们将图片中的元素R和IQ提取出来, 组成新的颜色空间, 即RIQ颜色空间。

3 基于RIQ颜色空间的主分量分析方法

3.1 主分量分析方法概述

设人脸图像的训练样本总数为N, 人脸图像样本的类别数为C, Nc为第C类中的人脸样本个数。Aci表示人脸图像训练样本中第c类的第i个样本, 其中人脸图像Aci为m×n m×n的矩阵, 则第c类训练样本的类内平均脸定义为:

对第C类中的每个训练样本进行规范化处理:

式中, Bci表示对Aci规范化处理之后的人脸样本。则人脸样本的图像协方差矩阵Gt定义如下:

式中, Bi表示人脸训练样本集中的第i个规范化之后的样本。图像协方差矩阵Gi为m×n大小的非负定对称矩阵。根据图像协方差矩阵Gt, 定义求解最优特征向量的准则函数J (x) 为:

通常选取Gt的前d个最大的特征值所对应的单位正交特征向量作为一组最优特征向量, 即于是, 这d个特征向量就构成了一个特征子空间。

3.2 基于RIQ颜色空间的主分量分析方法

3.2.1 通过小波变换得到图像的低频分量。图像的光照和表情变换大部分集中在高频部分, 提取低频分量可以在降低运算复杂度的同时, 消除噪声, 提高识别率。

3.2.2 分别提取图片的R、I、Q颜色元素, 将一幅图片分解为R、I、Q子图。实验证明RIQ颜色空间有最好的识别效果。

3.2.3 分别对以上的R、I、Q子图做主分量分析, 并提取特征向量。

3.2.4 在识别过程中分别计算对应子图的欧氏距离, 以平均欧氏距离作为判别标准。

识别过程如图1所示。

4 实验方法及结果

实验条件:

本实验使用ORL数据库中的40个人的人脸图片, 每人10幅图像, 共400幅图像。这些图像是在不同时间, 光线轻微变化的条件下摄制的, 其中包括姿态、光照和表情的差别。原始图像大小112×92, 256灰度级。实验的参数是人脸类别个数。

实验结果:图2的横坐标为人脸类别个数, 纵坐标为识别率。

实验结果分析:

通过观察的实验数据, 我们可以得到以下结论

改进后的PCA方法明显优于传统的PCA方法, 这个结果也证明了基于RIQ颜色空间的人脸识别是有效的。

总的来说, 人脸类别数越多, 识别率越低。每增加5类人脸, 识别率就会有较大变化, 即PCA方法受人脸类别数影响较大。当然这一现象也与分类器的设计有关, 当人脸类别数增多时, 使用最近邻算法所受到的干扰也会增多。

在主分量分析中, 取较多的特征向量并不能提高识别率, 当然提取的特征向量太少也不行, 当提取8个特征向量时, 该算法能达到最好的识别率。原因在于:当提取的特征向量太少时, 图片所损失的信息过多;而提取的特征向量太多时, 信息含量少的特征向量将干扰信息含量多的特征向量。即信息含量少的特征向量在识别中的比重占得多了, 总体的识别效果就会下降。

参考文献

[1]A.Jain, A.Ross, and S.Prabhakar.An in-troduction to biometric recognition.IEEE Trans.on Circuits and Systems For Video Technology, 14 (1) :4-20, 2004.

[2]P.Phillips, P.Flynn, T.Scruggs, and K.Bowyer.Overview of the face recognition grand challenge.Proc.of IEEE Conf.On CVPR'05, 1, 2005.

[3]J.Yang, D.Zhang, A.Frangi, and J.Yang.Two-dimensional pca:A new approach to ap-pearance-based face representation and recogni-tion.IEEE Trans.on Pattern Analysis and Ma-chine Intelligence, 26 (1) :131-137, 2004.

[4]T.Jan, "Learning and generalization using kernel based subspace model approaches, "Ph.D.dissertation, University of Technology, Sydney, Australia, 2004.

[5]T.Jan, "Neural network based threat as-sessment for automated visual surveillance, "IEEE International Joint Conference on Neural Networks, Vol.2, pp.1309-1312, July2004.

[6]S.Z.Li et al., "AuthenMetric F1:A Highly Accurate and Fast Face Recognition System, "Proc.Int'l Conf.Computer Vision, Oct.2005.

[7]S.Z.Li, R.F.Chu, M.Ao, L.Zhang, and R.He, "Highly Accurate and Fast Face Recognition Using Near Infrared Images, "Proc.IAPR Int'l Conf.Biometric, pp.151-158, Jan.2006.

主分量分析(PCA) 篇4

关键词:图像匹配,SIFT描述符,PCA-SIFT描述符

David G.Lowe于2004年提出了基于尺度不变特征变换(SIFT)的特征提取算法。此算法的基本特性是稳定,它对于不同场景、不同光照、不同几何形状变换都具有较强的稳定性,提高了匹配的精确度[1]。但算法仍然存在一些不足,比如特征描述符的维数过大以及耗时过长。在原始的SIFT特征提取算法中融入一种主要用于对数据进行降维的主成分分析法(PCA),就得到一种基于主成分不变特征变换(PCA-SIFT)的特征提取算法[2],PCA-SIFT算法既继承了传统SIFT算法稳定性和多量性的优点,又利用主成分分析法降低了传统SIFT特征描述符向量的维数,提高了匹配效率。

1 生成SIFT特征描述符

SIFT算法要在尺度空间和二维平面空间中同时进行极值检测以找出局部极值点,并且对所提取出的关键点进行精确的定位,然后根据此关键点所处位置周围邻域点的梯度方向计算出该关键点的主方向[3],以实现算子对几何变换和旋转的不变性。一般生成SIFT特征描述符需要几个步骤:1)尺度空间的建立;2)计算关键点特征方向,进行特征点定位;3)SIFT特征描述符的向量表示。

1.1 尺度空间的建立

Koenderink证明了高斯卷积核是实现尺度变换的唯一线性变换核[4]。二维的高斯函数定义为

式中:(x,y)是空间坐标。那么,一副图像的二维尺度空间就可以由图像和高斯核卷积得到

特征点的检测要在尺度空间和平面空间中同时进行,这样才可以确保得到稳健性强的特征点。因此就引入了Do G算子,它是两个不同尺度高斯核的差分值[5],Do G算子的构成为

接下来就要构建一个大小为O组,并且每组中由S层图像构成的图像金字塔,组与组之间的关系为:上一组的图像降采样得到下一组图像。在构建好图像金字塔的基础上,进行局部极值检测,其中每一个像素都需要跟同一平面中的其他8个像素和相邻尺度空间中该像素所对应位置的9×2个像素进行计算比较[6],只有被检测像素点的高斯核差分值(即Do G值)都大于或都小于与它进行比较的26个像素的Do G值时,才能把此点作为一个局部极值点。

1.2 计算关键点的特征方向

为了使所提取的特征点具有缩放和旋转不变性,就要利用每个关键点周围邻域的其他点来计算此关键点的特征方向。其中关键点处梯度模值的计算如式(4)所示,关键点主方向的计算如式(5)所示

1.3 SIFT特征描述符的向量表示

如图1所示,对每一个筛选出的特征点,要以此特征点作为中心点,在这个点的周围选取一个大小为16×16的区域,再将这个所选取区域平均分成4个大小均为4×4的小区域,并且计算每个小区域的梯度直方图,直方图包含有8个bin方向,这样就获得了一个4×4×8=128维的向量,也就是生成了SIFT特征描述符向量,直方图的峰值就是所选特征点的主方向。

2 PCA-SIFT特征描述符的建立

PCA-SIFT描述符与标准SIFT描述符具有相同的亚像素位置(Sub-pixel)、尺度(Scale)和主方向(Dominant Orientations),但在特征描述符生成时有所不同,PCA-SIFT用主成分分析法(PCA)将传统SIFT的128维特征向量进行降维,以达到更精确的表示方式。利用主成分分析法对传统的128维SIFT特征描述符进行降维的具体方法如下:

1)输入两幅待匹配图像中所有关键点(设为n个)的128维SIFT特征描述符,将输入的这n个特征描述符作为样本,写出样本矩阵为[x1,x2,...,xn]T,其中xi表示第i个特征点的128维特征向量。

2)计算n个样本的平均特征向量。

3)计算所有样本点的特征向量与平均特征向量的差,得到差值向量。

4)构建协方差矩阵,其中Q=[d1,d2,...,dn]。

5)求协方差矩阵的128个特征值λi和128个特征向量ei。

6)将求出的128个特征值按从小到大的顺序进行排列λ1≥λ2≥…≥λ128和对应的特征向量[e1,e2,…,e128]。

7)选取对应t个最大特征值的特征向量作为主成分的方向,在实验中选取t=20。

8)构造一个128×t的矩阵A,它的列由t个特征向量组成。

9)把原始的128维SIFT描述符依据式(6)投影到所计算出的n维子空间M中,就可以得到PCA-SIFT的描述符y1,y2,…,yn了,即

因为实验中选取t=20,所以矩阵A的大小为128×20,xi的大小为1×128,所以xi*A就得到了一个大小为1×20的矩阵,即每一个yi就是一个20维的特征描述符,也就是把原来的128维传统SIFT特征描述符降成了20维的PCA-SIFT特征描述符[6]。

3 基于PCA-SIFT特征提取算法的图像匹配

3.1 对应特征点的匹配

当对两幅待匹配图像分别使用PCA-SIFT特征提取算法找出各自的特征点并进行精确定位,生成对应的特征描述向量后,就可以计算特征向量间的欧式距离,两个特征向量之间的欧式距离值越小,就说明这两个点越相似,它们的匹配程度就越高。欧式距离的计算如式(7)所示

式中:(x1,x2,……,x128),(x'1,x'2,……,x'128)分别为待匹配两幅图像上的关键点所生成的特征向量。首先找出其中一幅图像中的某个关键点,采用遍历的方法在另外一副图像中找出与这个关键点欧式距离最近和次近的两个关键点,如果最近的距离与次近的距离的比值小于某个阈值,那么认为这一对点就是一对匹配点。在实验中选取阈值为0.6,如式(8)所示

式中:Dnearest为最近欧式距离,Dhpyo-nearest为次近欧式距离。

3.2 消除错误匹配

在实验中由于环境因素和遮挡因素,有可能出现错误的匹配,为了提高匹配的正确性和稳健性,需要采取一些措施来保证匹配的正确率。RANSAC算法是一种依靠对数据进行拟合的算法,它具有很强的稳健性,首先要在分析具体问题的前提下,设计出某种适合这个问题的目标函数,然后反复进行迭代来估计该数学函数模型中参数的初始值,继续利用求出的初始参数值把所有的数据分为满足该模型参数的“内点”和不满足该模型参数的“外点”,最后反过来用所有满足该模型参数的“内点”重新对模型参数进行估计,最终得到精确的匹配结果,消除错误匹配[7]。

3.3 变换模型参数的估计

假定以图像1(I1)作为参考系,将图像2(I2)变换到图像1所在的坐标系,变换后的图像为I'2,则其对应关系为

式中:(x,y)和(x',y')是一对匹配点,只需4对匹配点即可算出T,得到T后,就可确定这8个参数。这8个参数决定了两幅图像坐标之间的转换关系,确定其值后就可以得到精确的图像匹配结果。

4 实验结果及分析

实验环境为CPU Pentium 2.94 GHz,内存1.5 Gbyte,显存为128 Mbyte,操作系统为Windows XP,仿真平台为Matlab 7.1,所用的图像采集设备为Bumblebee双目视觉相机。使用了不同场景下的图像进行实验,包括光照、旋转、缩放等情况。在这些不同的情况下进行实验并对传统的SIFT算法和改进后的PCA-SIFT算法在匹配的正确率和匹配所用的时间上进行比较(实验结果见图2~图5,表1~表4)。

根据表1~表4,可以得出以下结论有:1)在匹配的正确率方面。无论图像是在光照改变,旋转,还是在缩放的情况下PCA-SIFT都具有很稳定的匹配性能;2)在匹配的时间方面。基于PCA-SIFT的匹配算法使得匹配的时间有所降低,提高了匹配的效率。

从实验结果中可以看出基于PCA-SIFT描述符的匹配算法和基于传统SIFT特征描述符的匹配算法在各种情况下的正确率都基本上相当,但是在时间上PCA-SIFT算法却大大地节约了匹配时间,这就说明PCA-SIFT算法既保持了SIFT算法稳定性和精确性,又减少了匹配时间。

5 小结

把主成分分析法引入到传统的SIFT匹配算法中,把特征描述符的维数从128维减少到20维,减少数据量,节约了整个匹配算法的运行时间。实验证明PCA-SIFT算法既保持了传统SIFT算法的稳定性和精确性的优点,又比传统的SIFT算法有一定程度的改进。

参考文献

[1]周峰.基于尺度不变特征变换(SIFT)的图像配准技术研究[D].昆明:昆明理工大学,2010.

[2]吴若鸿.基于特征匹配的双目立体视觉技术研究[D].武汉:武汉科技大学,2010.

[3]徐秀云.基于特征点的景象匹配技术研究[D].南京:南京理工大学,2009.

[4]冯嘉.SIFT算法的研究和改进[D].长春:吉林大学,2010.

[5]PLUIM J P W,MAINTZ J B A,VIERGEVER M A.Mutual informationmatching in multiresolution contexts[EB/OL].[2011-06-12].http://www.docin.com/p-43905533.html.

[6]COPPINI G,DICIOTTI S.Matching of medical images by self-organizingneural networks[J].Pattern Recognition Letters,2004,25(3):341-352.

上一篇:驻车制动力下一篇:电脑凿岩台车