当前位置:首页 > PCA
  • 基于PCA算法的人脸识别研究与实现

    基于PCA算法的人脸识别研究与实现

      PCA算法主成分分析法   主成分分析(Principal Component Analysis,简称PCA)方法是目前应用很广泛的一种代数特征提取方法,可以说是常用的一种基于变量协方差矩阵对样本中的信息进行处理、压缩和抽提的有效方法,主要通过K-L(Karhunen-Loeve)变换展开式从人脸数据库中提取人脸的主要特征[i],构成特征脸空间,在识别时将待测试的人脸图像投影到特征脸空间,得到一组投影系数,与数据库中各个人脸图像进行比对识别。   这种方法保留了原向量在与其协方差矩阵最大特征值相对应的特征向量方向上的投影,即主分量(Principal Components),因此被称为主成分分析。由于PCA方法在进行降维处理和人脸特征提取方面的有效性,在人脸识别领域得到了广泛的应用。它的核心思想是:利用较少数据的特征对样本进行描述以达到降低特征空间维数的目的,根据样本点在多维空间的位置分布,以样本点在空间中变化最大方向,即方差最大方向,作为差别矢量来实现数据的特征提取。利用K-L变换抽取人脸的主要成分,利用特征脸法进行人脸识别的过程由训练阶段和识别阶段两个阶段组成。   基于PCA算法的人脸识别研究   1 人脸识别的发展及现状   人脸识别的研究已经有很长的历史,在19世纪,法国人Galton就曾对此问题进行了研究,他用一组数字代表不同的人脸侧面特征来实现对人脸侧面图像的识别。国内外对于人脸识别的研究发展,分别经历了三个阶段:传统的人机交互式阶段、机器自动识别初级阶段、机器自动识别高级阶段。   1.1 传统的人机交互式阶段   第一阶段是以BerTIlion为代表,主要研究人脸识别所需要的面部特征,该阶段的识别依赖于人的操作。这些人脸识别方法都需要利用操作员的某些先验知识,仍然摆脱不了人的干预。   1.2 自动识别初级阶段   第二阶段主要是采用机器自动识别的手段进行识别,20世纪90年代以来,随着高速度高性能计算机的出现,人脸识别方法有了重大突破,进入了真正的机器自动识别阶段,人脸识别研究也得到了前所未有的重视。   1.3 机器自动识别高级阶段   第三阶段是真正利用机器进行对人脸的自动识别,随着计算机的大型化、高速化和人脸识别的方法的发展,提出了许多人脸自动识别的系统。   2 PCA算法的原理   PCA(主成分分析)算法是人脸识别中比较新的一种算法,该算法的优点是识别率高,识别速度快。   2.1 PCA算法介绍   2.1.1 PCA原理   令x为表示环境的m维随机向量。假设x均值为零,即:   E[x]=O.   令w表示为m维单位向量,x在其上投影。这个投影被定义为向量x和w的内积,表示为:      而主成分分析的目的就是寻找一个权值向量w使得表达式E[y2]的值最大化:      根据线性代数的理论,可以知道满足式子值最大化的训应该满足下式:      即使得上述式子最大化的w是矩阵Cx的最大特征值所对应的特征向量。   2.1.2 主成分的求解步骤   在PCA中主要的是要求出使得方差最大的转化方向,其具体的求解步骤如下:   (1)构建关联矩阵:Cx=E[x*xT],Cx∈Pn*n.   在实际应用中,由于原始数据的数学期望不容易求解,我们可以利用下式来近似构造关联矩阵:      (其中x1,x2,…,xN,是各个原始灰度图像所有象素点对应的向量,N是原始图像的个数)   (2)先计算出Cx的各个特征值   (3)把特征值按大小排序      (4)计算出前m个特征值对应正交的特征向量构成w。   (5)将原始数据在特征向量w上进行投影,即可获得原始图像的主特征数据。   2.1.3 主成分的求解方法   通过上面的分析我们可以知道,对于主成分分析的问题最后转化为求解协方差矩阵的特征值和特征向量的问题,主成分的正交化分解的算法或求XXT特征值问题的算法常用的有雅可比方法和NIPALS方法。   2.2 Eigenface算法   在利用PCA进行特征提取的算法中,特征脸方法(Eigenface)是其中的一个经典算法。特征脸方法是从主成分分析导出的一种人脸识别和描述技术。特征脸方法就是将包含人脸的图像区域看作是一种随机向量,因此可以采用K-L变换获得其正交K-L基底。对应其中较大特征值的基底具有与人脸相似的形状,因此又称为特征脸。利用这些基底的线性组合可以描述、表达和逼近人脸图像,因此可以进行人脸识别与合成。识别过程就是将人脸图像映射到由特征脸构成的子空间上,比较其与己知人脸在特征空间中的位置,具体步骤如下:   (1)初始化,获得人脸图像的训练集并计算特征脸,定义为人脸空间,存储在模板库中,以便系统进行识别;   (2)输入新的人脸图像,将其映射到特征脸空间,得到一组关于该人脸的特征数据;   (3)通过检查图像与人脸空间的距离判断它是否是人脸;   (4)若为人脸,根据权值模式判断它是否为数据库中的某个人,并做出具体的操作。   2.2.1 计算特征脸   设人脸图像I(x,y)为二维N*N灰度图像,用N维向量R表示。人脸图像训练集为{Ri|i=1,…,M},其中M为训练集中图像总数,这M幅图像的平均向量为:      每个人脸Ri与平均人脸ψ的差值向量是:      训练图像的协方差矩阵可表示为:   C=AAT.   其中,A=[φ1,…φM]。   特征脸有协方差矩阵C的正交特征向量组成。对于N*N人脸图像,协方差矩阵C的大小为N2*N2,对它求解特征值和特征向量是很困难的。一种取而代之的方法是令L=ATA.   即协方差矩阵的转置阵,则可以知道此矩阵是M*M(M是训练人脸的数量)的一个较小的矩阵。首先计算M*M矩阵L的特征向量vi(l=l,…,M),则矩阵C的特征向量ui(l=1,…,M)由差值图像φi(i=1,…,M)与vi(l=l,…,M)线性组合得到:U=[u1,…,uM]=[[ψ1,…,ψM]T][v1.…,vM]。实际上,m(m《M)个特征值足够用于人脸识别。因此,仅取L的前m个最大特征值的特征向量计算特征脸。   3 PCA算法在人脸识别中的应用   基于特征脸的人脸识别过程由训练阶段和识别阶段两个阶段组成。在训练阶段,每个已知人脸Ri映射到由特征脸构成的子空间上,得到m维向量      在识别阶段,首先把待识别的图像R映射到特征脸空间。得到向量:      为了区分人脸和非人脸,还需计算原始图像R与其由特征空间重建的图像Rf之间的距离ε:      采用最小距离法对人脸进行分类,分类规则如下:   (1)若ε≥θc,则输入图像不是人脸图像;     4 实验结果   实验在两个图库上测试,首先是一个ORL人脸库,该库包含40个不同人物,每人有lO张图片,共400幅。用训练样本进行测试,识别率为95%。一个是自建人脸库,该库包含20个不同人物,每人有5张不同表情和姿态下的图片,总共100幅。随着训练样本的增加,识别率会有所提升,但是并不是越多越好,当超过一定的训练样本数目时,识别率反而有所下降。   5 人脸识别未来的发展   人脸识别是一个跨学科富挑战性的前沿课题,人脸图像中姿态、光照、表情、饰物、背景、时间跨度等因素的变化对人脸识别算法的鲁棒性都有着负面的影响,单一的PCA方法识别率不高,今后的发展方向可以与其他方法(如:支持向量机、小波变化等)相结合来弥补单一方法的不足,让身份识别更准确。

    时间:2020-08-05 关键词: pca 人脸识别

  • 深入了解一下十大经典机器学习算法之一:PCA算法

    深入了解一下十大经典机器学习算法之一:PCA算法

    PCA(主成分分析)是十大经典机器学习算法之一。PCA是Pearson在1901年提出的,后来由Hotelling在1933年加以发展提出的一种多变量的统计方法。 对于维数比较多的数据,首先需要做的事就是在尽量保证数据本质的前提下将数据中的维数降低。降维是一种数据集预处理技术,往往在数据应用在其他算法之前使用,它可以去除掉数据的一些冗余信息和噪声,使数据变得更加简单高效,从而实现提升数据处理速度的目的,节省大量的时间和成本。降维也成为了应用非常广泛的数据预处理方法。目前处理降维的技术有很多种,如SVD奇异值分解,主成分分析(PCA),因子分析(FA),独立成分分析(ICA)等。今天重点介绍主成分分析(PCA)。 PCA(主成分分析)算法目的是在“信息”损失较小的前提下,将高维的数据转换到低维,通过析取主成分显出的最大的个别差异,也可以用来削减回归分析和聚类分析中变量的数目,从而减小计算量。 PCA(主成分分析)通常用于高维数据集的探索与可视化,还可以用于数据压缩,数据预处理等。 PCA算法概念: PCA(PrincipalComponent Analysis)主成分分析,也称为卡尔胡宁-勒夫变换(Karhunen-Loeve Transform),是一种用于探索高维数据结构的技术。 PCA是一种较为常用的降维技术,PCA的思想是将维特征映射到维上,这维是全新的正交特征。这维特征称为主元,是重新构造出来的维特征。在PCA中,数据从原来的坐标系转换到新的坐标系下,新的坐标系的选择与数据本身是密切相关的。第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选择和第一个坐标轴正交且具有最大方差的方向。该过程一直重复,重复次数为原始数据中特征的数目。大部分方差都包含在最前面的几个新坐标轴中。因此,可以忽略余下的坐标轴,即对数据进行降维处理。 PCA算法本质: PCA算法本质就是找一些投影方向,使得数据在这些投影方向上的方差最大,而且这些投影方向是相互正交的。这其实就是找新的正交基的过程,计算原始数据在这些正交基上投影的方差,方差越大,就说明在对应正交基上包含了更多的信息量。原始数据协方差矩阵的特征值越大,对应的方差越大,在对应的特征向量上投影的信息量就越大。反之,如果特征值较小,则说明数据在这些特征向量上投影的信息量很小,可以将小特征值对应方向的数据删除,从而达到了降维的目的。 PCA把可能具有相关性的高维变量合成线性无关的低维变量,称为主成分( principal components)。新的低维数据集会尽可能保留原始数据的变量。 简而言之,PCA本质上是将方差最大的方向作为主要特征,并且在各个正交方向上将数据“离相关”,也就是让它们在不同正交方向上没有相关性。 PCA算法中术语: 1、样本“信息量” 样本的“信息量”指的是样本在特征方向上投影的方差。方差越大,则样本在该特征上的差异就越大,因此该特征就越重要。在分类问题里,样本的方差越大,越容易将不同类别的样本区分开。 2、方差 希望投影后投影值尽可能分散,而这种分散程度,可以用数学上的方差来表述。在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。此处,一个字段的方差可以看做是每个元素与字段均值的差的平方和的均值,即: 3、协方差 对于二维降成一维的问题来说,找到使得方差最大的方向就可以了。但是对于更高维的问题,需要用到协方差来表示其相关性。即: PCA理论基础: PCA理论基础如下: 1)最大方差理论。 2)最小错误理论。 3)坐标轴相关度理论。 PCA算法流程: 1)去平均值,即每一位特征减去各自的平均值; 2)计算协方差矩阵; 3)计算协方差矩阵的特征值与特征向量; 4)对特征值从大到小排序; 5)保留最大的个特征向量; 6)将数据转换到个特征向量构建的新空间中。 PCA降维准则: 1) 最近重构性:样本集中所有点,重构后的点距离原来的点的误差之和最小。 2) 最大可分性:样本在低维空间的投影尽可能分开。 PCA算法优点: 1)使得数据集更易使用; 2)降低算法的计算开销; 3)去除噪声; 4)使得结果容易理解; 5)完全无参数限制。 PCA算法缺点: 1) 如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高; 2) 特征值分解有一些局限性,比如变换的矩阵必须是方阵; 3) 在非高斯分布情况下,PCA方法得出的主元可能并不是最优的。 PCA算法应用: PCA算法已经被广泛的应用于高维数据集的探索与可视化,还可以用于数据压缩,数据预处理等领域。在机器学习当中应用很广,比如图像,语音,通信的分析处理。PCA算法最主要的用途在于“降维”,去除掉数据的一些冗余信息和噪声,使数据变得更加简单高效,提高其他机器学习任务的计算效率。 结语: PCA是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于识别和提取数据的主要特征分量,通过将数据坐标轴旋转到数据角度上那些最重要的方向(方差最大);然后通过特征值分析,确定出需要保留的主成分个数,舍弃其他非主成分,从而实现数据的降维。降维使数据变得更加简单高效,从而实现提升数据处理速度的目的,节省大量的时间和成本。降维也成为了应用非常广泛的数据预处理方法。PCA算法已经被广泛的应用于高维数据集的探索与可视化,还可以用于数据压缩,数据预处理,图像,语音,通信的分析处理等领域。

    时间:2020-08-04 关键词: 机器学习 pca

  • 关于机器学习PCA算法的主成分分析

    关于机器学习PCA算法的主成分分析

    前言:人工智能机器学习有关算法内容,人工智能之机器学习主要有三大类:1)分类;2)回归;3)聚类。今天我们重点探讨一下PCA算法。 PCA(主成分分析)是十大经典机器学习算法之一。PCA是Pearson在1901年提出的,后来由Hotelling在1933年加以发展提出的一种多变量的统计方法。 对于维数比较多的数据,首先需要做的事就是在尽量保证数据本质的前提下将数据中的维数降低。降维是一种数据集预处理技术,往往在数据应用在其他算法之前使用,它可以去除掉数据的一些冗余信息和噪声,使数据变得更加简单高效,从而实现提升数据处理速度的目的,节省大量的时间和成本。降维也成为了应用非常广泛的数据预处理方法。目前处理降维的技术有很多种,如SVD奇异值分解,主成分分析(PCA),因子分析(FA),独立成分分析(ICA)等。今天重点介绍主成分分析(PCA)。 PCA(主成分分析)算法目的是在“信息”损失较小的前提下,将高维的数据转换到低维,通过析取主成分显出的最大的个别差异,也可以用来削减回归分析和聚类分析中变量的数目,从而减小计算量。 PCA(主成分分析)通常用于高维数据集的探索与可视化,还可以用于数据压缩,数据预处理等。 PCA算法概念: PCA(PrincipalComponent Analysis)主成分分析,也称为卡尔胡宁-勒夫变换(Karhunen-Loeve Transform),是一种用于探索高维数据结构的技术。 PCA是一种较为常用的降维技术,PCA的思想是将维特征映射到维上,这维是全新的正交特征。这维特征称为主元,是重新构造出来的维特征。在PCA中,数据从原来的坐标系转换到新的坐标系下,新的坐标系的选择与数据本身是密切相关的。第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选择和第一个坐标轴正交且具有最大方差的方向。该过程一直重复,重复次数为原始数据中特征的数目。大部分方差都包含在最前面的几个新坐标轴中。因此,可以忽略余下的坐标轴,即对数据进行降维处理。 PCA算法本质: PCA算法本质就是找一些投影方向,使得数据在这些投影方向上的方差最大,而且这些投影方向是相互正交的。这其实就是找新的正交基的过程,计算原始数据在这些正交基上投影的方差,方差越大,就说明在对应正交基上包含了更多的信息量。原始数据协方差矩阵的特征值越大,对应的方差越大,在对应的特征向量上投影的信息量就越大。反之,如果特征值较小,则说明数据在这些特征向量上投影的信息量很小,可以将小特征值对应方向的数据删除,从而达到了降维的目的。 PCA把可能具有相关性的高维变量合成线性无关的低维变量,称为主成分( principal components)。新的低维数据集会尽可能保留原始数据的变量。 简而言之,PCA本质上是将方差最大的方向作为主要特征,并且在各个正交方向上将数据“离相关”,也就是让它们在不同正交方向上没有相关性。 PCA算法中术语: 1、样本“信息量” 样本的“信息量”指的是样本在特征方向上投影的方差。方差越大,则样本在该特征上的差异就越大,因此该特征就越重要。在分类问题里,样本的方差越大,越容易将不同类别的样本区分开。 2、方差 希望投影后投影值尽可能分散,而这种分散程度,可以用数学上的方差来表述。在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。此处,一个字段的方差可以看做是每个元素与字段均值的差的平方和的均值,即: 3、协方差 对于二维降成一维的问题来说,找到使得方差最大的方向就可以了。但是对于更高维的问题,需要用到协方差来表示其相关性。即: PCA理论基础: 1)最大方差理论。 2)最小错误理论。 3)坐标轴相关度理论。 PCA算法流程: 1)去平均值,即每一位特征减去各自的平均值; 2)计算协方差矩阵; 3)计算协方差矩阵的特征值与特征向量; 4)对特征值从大到小排序; 5)保留最大的个特征向量; 6)将数据转换到个特征向量构建的新空间中。 PCA降维准则: 1) 最近重构性:样本集中所有点,重构后的点距离原来的点的误差之和最小。         2) 最大可分性:样本在低维空间的投影尽可能分开。 PCA算法优点: 1)使得数据集更易使用; 2)降低算法的计算开销; 3)去除噪声; 4)使得结果容易理解; 5)完全无参数限制。 PCA算法缺点: 1)    如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高; 2)    特征值分解有一些局限性,比如变换的矩阵必须是方阵; 3)    在非高斯分布情况下,PCA方法得出的主元可能并不是最优的。 PCA算法应用: PCA算法已经被广泛的应用于高维数据集的探索与可视化,还可以用于数据压缩,数据预处理等领域。在机器学习当中应用很广,比如图像,语音,通信的分析处理。PCA算法最主要的用途在于“降维”,去除掉数据的一些冗余信息和噪声,使数据变得更加简单高效,提高其他机器学习任务的计算效率。 结语: PCA是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于识别和提取数据的主要特征分量,通过将数据坐标轴旋转到数据角度上那些最重要的方向(方差最大);然后通过特征值分析,确定出需要保留的主成分个数,舍弃其他非主成分,从而实现数据的降维。降维使数据变得更加简单高效,从而实现提升数据处理速度的目的,节省大量的时间和成本。降维也成为了应用非常广泛的数据预处理方法。PCA算法已经被广泛的应用于高维数据集的探索与可视化,还可以用于数据压缩,数据预处理,图像,语音,通信的分析处理等领域。

    时间:2020-07-14 关键词: 算法 人工智能 pca

  • 用SST 单片机的PCA功能产生PWM 脉冲

    一、程序说明: SST单片机带有5路PCA模块,PCA功能比普通的单片机相比提供更强的计时性,同时更少CPU的干预,用它可以减少软件的开销和改进精度。利用PCA的脉冲宽度调制(PWM)模式可以产生一个8位PWM,它通过比PCA定时器的低位(CL)和比较寄存器的低位(CCAPnL)产生。当CL<CCAPnL时输出为低;当CL>=CCAPnL是输出为高。要进入这个模式,可以对CCAPMn的PWM和ECOM位置位。 在PWM 模式,输出的频率决定于PCA定时器的源。由于只有一对CH 和CL寄存器,所有模块共享PCA定时器和频率。输出的占空比由装在高位CCAPnH的值控制。由于写入CCAPnH寄存器不是同步的,写入高位的值不会马上装入CCAPnL做比较,直到输出的另一个周期(当CL从255到0翻转)。用下面的公式计算任何占空比CCAPnH 值: CCAPnH=256(1-占空比) CCAPnH 是8 位整数,占空比是分数。 脉冲宽度调制频率 二、相关寄存器介绍: PCA定时器/计数器模式寄存器(CMOD) 标志 功能 CIDL 计数器空闲控制,CIDL=0时,PCA在空闲模式下继续工作。CIDL=1时,PCA在空闲模式下关闭。 WDTE 看门狗定时器使能:WDTE=0时,禁止PCA模块4的看门狗功能。WDTE=1时,使能。 CPS1 PCA计数脉宽选择位1 CPS0 PCA计数脉宽选择位0

    时间:2012-07-31 关键词: 单片机 pwm sst pca

  • 恩智浦推出无偏置电压I2C总线缓冲器PCA9525和PCA9605

    21ic讯 恩智浦半导体NXP Semiconductors N.V.日前宣布推出行业首款无偏置电压I2C总线缓冲器,PCA9525和PCA9605,其允许系统设计师隔离电容并与其他总线缓冲器接口。这些突破性的总线缓冲器采用无偏置记分板法来确定信号方向,而非采用定向引脚和偏置电压来控制方向、防止闩锁。重要的是,这些无偏置器件甚至能与静态偏置或增量偏置总线缓冲器互操作,为设计导入提供了极大便利,不受总线上其他器件的影响。 此外,恩智浦还推出了行业首款搭载无偏置端口的全缓冲式4通道开关PCA9646。所有器件的最大工作频率均为1 MHz,其中,PCA9605和PCA9646支持增强快速模式 (Fm+),其驱动能力相当于普通I2C总线的10倍,为增加I2C总线和总线上器件的数量提供了可能。 传统上,I2C总线用于仅需较短总线长度的计算、消费和便携式应用之中,而恩智浦推出的新型Fm+无偏置总线缓冲器和开关有效地克服了这一不足,允许将总线分解成多段或分支,从而将总线电容隔离成符合I2C总线要求的较低电容段。因此,借助PCA9605和PCA9646能够设计出极其稳定的I2C监测和控制系统,支持数百个节点,较低频率下总线布线长度最高可达1千米。设计师现在可以考虑用经济实惠的商用电缆 (如CAT5) 打造长距离I2C通信,用于服务器、大容量存储系统等企业计算应用以及工业和汽车应用。PCA9525可在标准快速模式应用中用于隔离电容。 技术参数 • PCA9525和PCA9605为2线式I2C或SMBus总线提供了一种简单的电容隔离缓冲器,允许将总线分解成多段或分支,从而把总线电容隔离成较低的电容段。其中,PCA9605支持Fm+较高的电容限值。 • 所有现有总线缓冲器都需要借助某种偏置使器件确定总线的驱动方向,而恩智浦推出的新型无失调总线缓冲器利用记分板方法来控制方向,并能与I2C总线上的多数其他总线缓冲器件互操作。 • 恩智浦的新型无偏置器件支持I2C总线 (标准模式、快速模式)、SMBus (标准和高功率模式) 和PMBus;PCA9605和PCA9646同时支持I2C增强快速模式 (Fm+)。 • 快速的开关时间使工作频率最高可达1 MHz以上,支持更快的外设。 • 硬件使能输入可禁用器件,允许断开某段总线段以节省能耗,使多个I2C总线段可以使用同一从属地址。 • 无失调总线缓冲器输入符合I2C总线迟滞规范,有利于提升总线的抗扰度。 • 工作电压范围:2.7 V至5.5 V。 • 极低的供电电流:PCA9525待机模式下的最大电流为1微安,典型工作电流为170微安。 • PCA9525采用4mA下拉输出,而PCA9605和PCA9646采用强大的30 mA下拉输出。 • 无偏置特性使设计师可以混合和匹配器件各端的总线电容负载,同时以适当的长度运行总线上拉输出。 • 记分板方法要求单向SCL以便正常工作,从而避免器件发生时钟延伸或主机仲裁。 积极评价 恩智浦半导体接口业务部国际产品营销经理Steve Blozis表示,“自我们30多年前率先发明I2C总线以来,简单、快速、灵活的恩智浦I2C技术就一直是服务器计算设计的核心。我们的无失调总线缓冲器和开关借助互连方式,让设计师能针对电气噪声恶劣的环境设计出极其稳健的I2C总线信号驱动解决方案,为I2C总线在企业计算、工业自动化和汽车应用领域开启了各种令人兴奋的新的可能性。” 上市时间 • PCA9525、PCA9605和PCA9646三款器件即将通过经销商供货,提供SO和TSSOP两种封装选择  

    时间:2011-08-31 关键词: i2c 9525 9605 pca

  • 基于PCA和LDA融合算法的性别鉴别

    随着社会发展,快速有效的自动身份验证应用广泛。生物特征是人类的内在属性,具有很强的自身稳定性和个体差异性,所以它是身份验证最理想的依据。其中,人脸相比其他的人体生物特征具有直接、方便、友好等特点,所以利用人脸特征进行身份验证是最自然直接的手段,并易于为用户所接受。性别鉴别作为其中特殊的一部分,可以加强人机交互系统的灵活性,而且可以对特殊环境下与性别相关的地方出入进行限制,收集有价值的统计信息(如每天出入的男性、女性数量,对酒吧、商场、零售业提供有价值的服务)等。 1 性别分类算法     性别分类是一个典型的二类问题,一般方法是通过输入一副人脸图像X,通过预处理,特征提取,分类器等过程后来决定X的类别。这里的性别分类算法如图1所示,它是由预处理、特征提取、分类器3个部分组成。     其中预处理主要是几何变换和区域直方图处理。通过这些工作保障了人脸几何(方向,大小)的不变性。基本消除了背景的影响和部分光照影响,提高了识别的精度。然后再预处理的基础上进行主元分析提取特征,获得主元分析PAC(Principal components Analysis)主元子空间和线性鉴别分析LDA(Linear Discriminant Analysis)特征子空间,最后利用分离器(人脸样本训练获得)进行分类。 1.1 预处理     该性别分类算法主要采用,几何处理+整体直方图处理(HG),几何处理+区域直方图处理(RHG)2种方法进行预处理,并进行比较。 1.1.1 几何处理     1)图像的缩放     MATLAB图像处理工具箱中的函数imresize可对图像进行缩放操作,常用的格式为:         B是缩放后图片;A是原始图片;m表示缩放倍数(m>1时图片放大;m<1时图片缩小);method是缩放的插值方法(默认为最近邻插值法);[mrows,ncols]指输出图片大小为mrowsxncols。     2)图像的旋转处理     有些待分类的图像,人脸是歪斜的,这时要对图像进行旋转处理如图2所示。但旋转时各像素的坐标会发生变化,使得旋转之后不能正好落在整数坐标处,需要进行插值,工具箱中函数imrotate方法可以对图像进行插值旋转(默认方法是最近邻插值法)。常用的语法格式为:         其方法中对应的参数意义为:angle为图像A按照逆时针旋转的角度,method是选择的插值方法。     3)图像的剪切     当只需要图像中的一部分时,如实验中只需要人脸图片,就要对图像进行剪切处理,在MATLAB图像处理工具箱中提供函数imcrop用于剪切图像中的一个矩形子图,用户可以根据这个矩形顶点的坐标,也可以用鼠标指针选取这个矩形。该函数常用的格式如下:         其中前3种格式为交互式地对灰度图像、索引色图像和真彩色图像进行剪切。后3种方式是按指定的矩形框rect剪切图像,rect是一个四元向量[xmin,ymin width heigth],分别表示矩形的左上角坐标、宽度和高度。 1.1. 2 整体直方图处理(HG)     直方图方法是建立在概率论的基础上,是通过改变直方图的形状来达到增强图像对比度的效果。常用的方法有直方图均衡化和直方图规定化。直方图均衡化又称直方图平坦化,是将一已知灰度概率密度分布的图像,经过某种变换成一幅具有均匀灰度概率密度分布的新图像,其结果是扩展了像元取值的动态范围,从而达到增强整体对比度的目的。采用MATLAB工具箱中histeq方法对图像进行直方图处理。     常用B=histeq(A)。 1.1.3 区域直方图处理(RHG)     直方图处理是探讨了亮度标准化方法的一般计算模型,为了解决偏光问题,又提出了亮度标准化的分块策略,采用将图片等分4份,对偏光严重的人脸图片进行区域直方图处理后再合成原始大小图片。针对图像整体直方图和分块区域化后直方图取得的效果进行比较,如图3所示。 1.2 PCA算法的基本原理     主成分分析法PCA(Principal Component Analysis)其目的是在数据空间中找到一组向量以尽可能地解释数据的方差,从而用降维后的低维向量保存原数据中的主要信息,使数据更易于处理。主要原理就是基于对原始数据进行统计分析,利用线性变换,对高维数据进行分析与压缩。由于人脸结构的相似性,当把人脸图像样本进行规一化并抽成一个高维向量后,这些图像在高维空间中不是随机或散乱地分布的, 而是存在某种规律。通过主元变换进行人脸识别的方法被称为“特征脸”方法。     主成分分析是将分散在一组变量上的信息集中到某几个综合指标(主成分)上的探索性统计分析方法,以便利用主成分描述数据集的内部结构,实际上起着数据降维的作用。     假设有一幅大小为N1xN2的灰度图像P(x,y),其中x∈[1,N1],y∈[1,N2],且像素值P(x,y)满足P(x,y)∈[0,1],x为行索引值,y为列索引值。为了应用PCA技术,首先要将该人脸从二维矩阵转化为一维向量,这可以通过如下操作达到要求。     将kxl的矩阵C的第1行转置,然后将C的第2行转置拼接于其后,如此类推,直到最后将第k行转置并拼接起来。例如,矩阵在经过上述操作以后,就变为(a11 a12 a13 a21 a22 a23)T。一幅大小为N1xN2的灰度图像可以被转换为N1xN2维的向量,因此可以将一幅人脸图像视为高维空间中的一个点,并用PCA技术使用少数特征来近似描述人脸图像在高维空间中的分布。     考虑n(N1xN2)维空间中的m个向量x1,x2,…,xm为了降低维数,需要用一个m维的向量x’来近似模拟,其中m<<n,也就是寻找一个变换。PCA技术使用变换:         通常假设随机向量(x-μ)为零均值,即μ取值为随机向量x的期望         WT=(w1,w2,…,wm)为一个mxn的变换矩阵。(x-μ)是一个(nxl)n维的向量。y是m维的向量。这是一个线性的变换,式(1)是个内积,引述内积的定义:         图4为式(3)的物理意义。     如果使式(3)具有投影的意义,即z向量是y向量到x向量的方向上的投影,如图4所示,那么必须使得|x|=1,即z=|y|cosθ。     现在考虑PCA变换矩阵W第一个向量     如果在条件|w1|=1使ξ1的方差达到最大,希望最大程度的保持样本集x原有的差异(Variance)。也就是要的值最大。这成为了一个优化问题。目标函数是,条件是,使用拉格朗日乘数法     因此λ1是协方差矩阵M的一个特征值,w1是λ1对应的特征向量。要使其方差最大,就必须使的值最大,因为,所以,λ1应是M矩阵的最大特征值。     现在考虑PCA变换矩阵WT第2到第m个向量,这里的向量是互不相关的,代表着不同的投影方向,这样可以提取出不同的主特征。要满足这个条件,考虑协方差矩阵M,它是对称的阵,有多个特征值λi,i∈(1,n),因此,转换矩阵中w1,w2,…,wm应该如下取值:首先求出M的特征向量和对应的特征值,然后依据特征值排序为λ1≥λ2≥…≥λn,它们对应的特征向量分别为w1,w2,…,wn,则取最前面的m个向量w1,w2,…,wm组成PCA变换矩阵。     出于数值计算方面的考虑,通常不使用M矩阵求特征值,和特征值对应的特征向量,而使用奇异值分解(SVD,Singular Value  Decompo-sition)来计算前m个主方向。 1.3 SVD奇异值分解定理     SVD定理:设A是秩为r的nxr维的矩阵,则存在两个正交矩阵:      由于M=AAT,其中,故构造矩阵,M为训练样本集中的样本个数。容易求出其特征值λi及其相应的特征向量vi(i=O,1,…,M-1)。由推论式可知,M的特征向量ui     1.4 LDA方法算法说明     LDA(Linear Discriminant Analysis)方法也称为线性判别分析方法。它选择与类内散布的正交的矢量作为特征脸空间,从而能够压制图像之间的与识别信息无关的差异,对光照及人脸表情变化都不太敏感。这种方法的最终目的就是找到一些特征使得类间离散度和类内离散度的比值最大。         式中,Pi是先验概率,mi是Ci类的均值,m是所有样本的均值。     如果Sw是非奇异矩阵,在投影以后,各类样本之间尽可能的分开一些,即类间离散度越大越好,同时各类样本的内部尽量密集起来,即类内离散度越小越好。因此可以定义Fisher准则函数如下:     如果Sw非奇异,就是求Sw-1Sb的特征值及其特征向量问题。其中该矩阵最多只有C-1个非零特征值,C是类别数目。 1.5 PCA-LDA算法的融合     将PCA算法与LDA算法构造的特征子空间进行融合,获得其融合空间,然后,将训练样本与测试样本分别朝该融合特征空间投影,获得识别特征,最后,利用最近邻准则完成性别鉴定。     PCA-LDA算法融合是根据PCA算法和LDA算法的特征子空间W1,W2进行融合,即:W1=W1*W2,得到融合特征空间:Ws。其中,其中行数表示训练样本维数,列表示LDA算法降维后的特征向量个数。在训练过程中,将训练样本矩阵X投影到融合特征空间Ws中,使得每一个向量代表一个训练样本的特征,在测试过程中,首先将测试样本规范化,即将测试样本减去平均值,在转化成列向量向PCA空间和融合空间投影获得识别特征,最后将测试样本的识别特征和训练样本的识别特征进行一一比较,依据邻近准则得到最小距离d所属样本的属性。 2 试验步骤与过程 2.1 试验步骤 2.1.1 样本的训练     1)照片的预处理,照片归一化;     2)求得训练样本的平均脸、零均值;     3)提取训练样本的PCA矩阵;     4)提取训练样本的LDA矩阵;     5)PCA矩阵和LDA矩阵融合获得分类器。 2.1.2 待测试照片的识别     1)将测试照片预处理;     2)测试照片向融合空间投影,得到低微空间上的点;     3)计算该点与训练样本的“特征脸”距离比较,输出距离最近的那张“特征脸”的信息,从而达到性别识别目的。 2.2 实验过程     本实验中所用到的图片来源于ORL人脸图像库和yale人脸图像库,ORL人脸图像库是英国剑桥大学从1992到1994年间在实验室采集到的人脸图像数据,由40人,每人10幅,共400幅照片,每幅分辨率为92xll2,主要包括拍摄时间、光照条件、人脸表情和面部遮掩物的不同。而yale人脸图像库是耶鲁大学提供的,共有15人,每人11张照片,分辨率为100x100,主要包括光照条件的变化表情的变化等。     该试验采用yale图像库中的人脸照片。利用平均脸公式,实验中所得到的平均脸如图5和图6所示。         PCA矩阵提取试验分析,图7为PCA算法实现流程图。     LDA矩阵提取试验分析,图8为LDA算法实现流程图。     然后再将LDA-PCA矩阵融合;利用欧式距离求出待识别人脸的特征脸再根据临近原则实现性别识别;采用直方图处理的识别实验(PCA+L-DA);采用整体直方图处理的识别实验(HG+PCA+LDA);采用直方图区域预处理的识别实验(RHG+PCA+LDA)。 3 实验结果分析与结论     实验结果如图9所示,表明:用PCA-LDA融合空间算法的识别正确率都在80%以上,是比较高的。采用直方图处理的识别实验(PCA+LDA)在3种方法的识别正确率比较中相对较低,且波动性较大,特别的,在样本数量为20,40时,出现了0.83,0.84的正确率,为整个曲线中的低谷,整体效果相对来说一般。采用整体直方图处理的识别实验(HG+PCA+LDA)正确率曲线相对来说较为平滑,随着样本数量的增加,整个曲线呈现递增趋势,但识别正确率不是特别理想。采用区域直方图预处理的识别实验(RHG+PCA+LDA)的正确率整体来说最高,整个曲线完全凌驾于前2种算法之上,虽然在小样本数量空间内出现波动,但波动为曲线的相对波峰,即识别正确率是提高的。3种方法在整个样本空间内均为随着样本数量的增加,识别正确率平稳上升,渐趋于完全正确。但采用区域直方图预处理的识别实验(RHG+PCA+LDA)后整体识别正确率最高,为三个算法中在整个样本空间内的相对最优算法。    经过以上实验结果分析,在进行人脸性别识别时,建议用PCA-LDA融合空间算法,采用区域直方图预处理(RHG+PCA+LDA),这样会达到理想的效果,并且样本数量应该尽量的多。

    时间:2010-12-19 关键词: lda 融合算法 pca

  • 基奇PCA的贝叶斯网络分粪器研究

    1 引言    近几年来,贝叶斯网络已成为数据挖掘和知识发现中的一个主要工具,在分类、聚类、预测和规则推导等方面取得了良好的应用效果。从历史数据中学习贝叶斯网络可采用基于依赖分析的方法。    常用的有:用Polytree表示概率网的方法、从完全图删除边的方法等。这种方法需要进行指数级的CI测试以发现依赖关系,当结点集较大时,其计算效率低,所以大多数此类算法都假设结点有序;但这种假设可能会影响最后学习到的网络结构的正确性。对于稀疏网络和具有较大样本数据集的系统,这种方法非常有效。    针对基于依赖分析方法的这一缺点,在网络结构学习之前应用主元分析方法将数据降维,减少网络结点数目,可提高算法效率、简化网络结构。2 数据处理及离散化    现实数据库中的数据常存在数据不一致、数据丢失等现象,所以在运用数据学习网络结构前要对数据进行预处理。此外,对于连续性数据(如温度、湿度、长度等),直接建立贝叶斯网络模型计算复杂度大,从连续数据中很难正确学习到变量间的关系。因此首先将数据标准化,再将标准化后的连续变量离散化,用离散化后的数据进行贝叶斯网络结构的学习。这里采用模糊离散化方法,对数据集的每个属性分别进行离散化,每个属性都有3个标度:5标度、7标度、9标度可以选择。算法步骤如下:    (1)随机初始化隶属度矩阵:   3 基于PCA的贝叶斯网络结构学习算法    主元分析PCA(Principal Component Analysis)是通过可逆线性变换,将数据集转换为由维数较少的特征成分表示的、包含原数据集所有信息或大部分信息的技术。通过PCA技术,可以将复杂数据简化,因此它现已被广泛应用于数据挖掘、模式识别、信号评估、信号探测、图像编码等领域。主元分析的原理如下:     令x为表示环境的m维随机向量。假设x均值为零,即    E[x]=0 (4)    令w表示m维单位向量,x在ω上投影。该投影被定义为向量x和ω的内积,表示为:       主元分析的目的就是寻找一个权值向量w,使得表达式的值最大化:       即使得式(7)值最大化的w是矩阵的最大特征值所对应的特征向量。    鉴于主元分析的优点,这里引入主元分析技术给数据集降维,然后用降维后的数据构建网络,提高学习贝叶斯网络结构算法的效率、简化网络结构。构造贝叶斯网络的算法步骤如下:    (1)用普瑞姆算法生成最大似然树构造初始贝叶斯网络;    (2)对所有互信息大于阈值且在当前图中无边的结点对n1、n2:①找出它们邻接路径上的邻居结点,设n1、n2的邻居结点的结点集分别为S1和S2;② 令集合S1和S2中较小的一个作为条件集合C;③计算条件互信息v=I(n1,n2|c),如果v<ε,则返回分离;否则,如果C只包含一个结点,那么转去步骤⑤,否则,对每一个i,令Ci=c{C中的第i个结点},vi=I(n1,n2|Ci);④如果vmin<ε,则返回分离,否则返回步骤③;⑤如果S2没有用过,那么用S2作为条件集C,返回步骤③;否则,返回失败。⑥如果这对结点在当前图中能够被分离,则检测下一对结点,否则,向网中添加连接这对结点的边。    (3)对每一条图中存在边的结点对,如果除这条边外它们之间还存在其他路径,那么暂时从图中移掉这条边,然后对这对结点进行步骤①~⑥的检验;如果这对结点不能被分离,则仍将前面移掉的边加入图中,否则永久移除这条边;    (4)用碰撞识别V结构的方法定向网络中的边,对不能构成V结构的边用打分的方法对其进行定向。4 实验    用IRIS实际数据、Zoo Data、Glass Identification Data作为网络学习的数据集,这3组数据是UCI数据集中3个用于分类的数据集。    其中IRIS数据和Glass Identification Data是连续的,所以在用数据学习贝叶斯网络前需要对数据进行模糊离散化处理。以下实验中的每个属性的离散化标度是任意选择的。实验1,比较经PCA降维的数据构造贝叶斯网络并进行分类的结果与未经PCA降维的数据分类结果的准确率,如表1所示。    用经PCA降维的数据和未经降维的数据集分别进行贝叶斯网络结构的学习,所用时间如表2所示。    对所用的贝叶斯网络学习算法进行CI测试,最坏情况下的时间复杂度为O(N4)。由表2可知,采用PCA降维后,算法所用时间约占原构造算法时间的34.58%,贝叶斯网络结构的学习效率有所提高。    经PCA降维,IRIS数据集的属性由4个减少为3个;ZooData的属性由18个减少到12个;Glass Identification Data的属性由11个减少为8个。属性数量的减少使得网络结构更为简单,并且由表2可以看出,经PCA降维后进行分类的结果准确率不低于不经过降维直接由数据集学习得到的贝叶斯网络分类结果的准确率。    经PCA降维后的网络结构如图1~图3所示。    用图1中的结点V4、图2中的结点F13及图3中的结点F8是类别标签结点,其余结点为原数据结点的线性变换,无实际意义。实验2用经过PCA降维后数据构造的贝叶斯网络器(BN)与朴素贝叶斯(NB)分类器、TAN分类器分类对以上3组数据进行分类。分类准确率的比较如表3所示。    由实验1可知,使用PCA降维后构造的贝叶斯网络与未使用降维数据学习得到的网络分类结果正确率相差不大,而这样构造的网络分类结果比其他分类器正确率高很多,同时使用降维后数据构造的网络还具有结点少、结构简单、学习效率高等优点。5 结束语    基于贝叶斯网络结构学习中依赖分析方法需进行指数级的CI测试因而存在结点集较大时计算效率低的缺点,提出了将数据集先经过PCA主元分析的方法降维。减少结点数,再用降维后的数据进行贝叶斯网络结构学习的方法,提高了网络结构学习的效率,并通过提高学习到的网络结构的正确性保证了较好的分类结果。此外。构建的网络还具有结点少、结构简单的特点,减少了网络的复杂性。

    时间:2009-10-20 关键词: 网络 贝叶斯 pca

  • 基于PCA算法的人脸识别研究

    1 人脸识别的发展及现状    人脸识别的研究已经有很长的历史,在19世纪,法国人Galton就曾对此问题进行了研究,他用一组数字代表不同的人脸侧面特征来实现对人脸侧面图像的识别。国内外对于人脸识别的研究发展,分别经历了三个阶段:传统的人机交互式阶段、机器自动识别初级阶段、机器自动识别高级阶段。1.1 传统的人机交互式阶段    第一阶段是以Bertilion为代表,主要研究人脸识别所需要的面部特征,该阶段的识别依赖于人的操作。这些人脸识别方法都需要利用操作员的某些先验知识,仍然摆脱不了人的干预。1.2 自动识别初级阶段    第二阶段主要是采用机器自动识别的手段进行识别,20世纪90年代以来,随着高速度高性能计算机的出现,人脸识别方法有了重大突破,进入了真正的机器自动识别阶段,人脸识别研究也得到了前所未有的重视。1.3 机器自动识别高级阶段    第三阶段是真正利用机器进行对人脸的自动识别,随着计算机的大型化、高速化和人脸识别的方法的发展,提出了许多人脸自动识别的系统。2 PCA算法的原理    PCA(主成分分析)算法是人脸识别中比较新的一种算法,该算法的优点是识别率高,识别速度快。2.1 PCA算法介绍2.1.1 PCA原理    令x为表示环境的m维随机向量。假设x均值为零,即:    E[x]=O.    令w表示为m维单位向量,x在其上投影。这个投影被定义为向量x和w的内积,表示为:而主成分分析的目的就是寻找一个权值向量w使得表达式E[y2]的值最大化:根据线性代数的理论,可以知道满足式子值最大化的训应该满足下式:即使得上述式子最大化的w是矩阵Cx的最大特征值所对应的特征向量。2.1.2 主成分的求解步骤    在PCA中主要的是要求出使得方差最大的转化方向,其具体的求解步骤如下:    (1)构建关联矩阵:Cx=E[x*xT],Cx∈Pn*n.    在实际应用中,由于原始数据的数学期望不容易求解,我们可以利用下式来近似构造关联矩阵:(其中x1,x2,…,xN,是各个原始灰度图像所有象素点对应的向量,N是原始图像的个数)    (2)先计算出Cx的各个特征值    (3)把特征值按大小排序(4)计算出前m个特征值对应正交的特征向量构成w。    (5)将原始数据在特征向量w上进行投影,即可获得原始图像的主特征数据。[!--empirenews.page--]2.1.3 主成分的求解方法    通过上面的分析我们可以知道,对于主成分分析的问题最后转化为求解协方差矩阵的特征值和特征向量的问题,主成分的正交化分解的算法或求XXT特征值问题的算法常用的有雅可比方法和NIPALS方法。2.2 Eigenface算法    在利用PCA进行特征提取的算法中,特征脸方法(Eigenface)是其中的一个经典算法。特征脸方法是从主成分分析导出的一种人脸识别和描述技术。特征脸方法就是将包含人脸的图像区域看作是一种随机向量,因此可以采用K-L变换获得其正交K-L基底。对应其中较大特征值的基底具有与人脸相似的形状,因此又称为特征脸。利用这些基底的线性组合可以描述、表达和逼近人脸图像,因此可以进行人脸识别与合成。识别过程就是将人脸图像映射到由特征脸构成的子空间上,比较其与己知人脸在特征空间中的位置,具体步骤如下:    (1)初始化,获得人脸图像的训练集并计算特征脸,定义为人脸空间,存储在模板库中,以便系统进行识别;    (2)输入新的人脸图像,将其映射到特征脸空间,得到一组关于该人脸的特征数据;    (3)通过检查图像与人脸空间的距离判断它是否是人脸;    (4)若为人脸,根据权值模式判断它是否为数据库中的某个人,并做出具体的操作。2.2.1 计算特征脸    设人脸图像I(x,y)为二维N*N灰度图像,用N维向量R表示。人脸图像训练集为{Ri|i=1,…,M},其中M为训练集中图像总数,这M幅图像的平均向量为:每个人脸Ri与平均人脸ψ的差值向量是:训练图像的协方差矩阵可表示为: C=AAT.    其中,A=[φ1,…φM].    特征脸有协方差矩阵C的正交特征向量组成。对于N*N人脸图像,协方差矩阵C的大小为N2*N2,对它求解特征值和特征向量是很困难的。一种取而代之的方法是令L=ATA.    即协方差矩阵的转置阵,则可以知道此矩阵是M*M(M是训练人脸的数量)的一个较小的矩阵。首先计算M*M矩阵L的特征向量vi(l=l,…,M),则矩阵C的特征向量ui(l=1,…,M)由差值图像φi(i=1,…,M)与vi(l=l,…,M)线性组合得到:U=[u1,…,uM]=[[ψ1,…,ψM]T][v1.…,vM]。实际上,m(m<M)个特征值足够用于人脸识别。因此,仅取L的前m个最大特征值的特征向量计算特征脸。3 PCA算法在人脸识别中的应用    基于特征脸的人脸识别过程由训练阶段和识别阶段两个阶段组成。在训练阶段,每个已知人脸Ri映射到由特征脸构成的子空间上,得到m维向量  在识别阶段,首先把待识别的图像R映射到特征脸空间。得到向量:[!--empirenews.page--]为了区分人脸和非人脸,还需计算原始图像R与其由特征空间重建的图像Rf之间的距离ε: 采用最小距离法对人脸进行分类,分类规则如下:    (1)若ε≥θc,则输入图像不是人脸图像;    (2)若则输入图像包含未知人脸;    (3)若则输入图像为库中第k个人的人脸。4 实验结果    实验在两个图库上测试,首先是一个ORL人脸库,该库包含40个不同人物,每人有lO张图片,共400幅。用训练样本进行测试,识别率为95%。一个是自建人脸库,该库包含20个不同人物,每人有5张不同表情和姿态下的图片,总共100幅。随着训练样本的增加,识别率会有所提升,但是并不是越多越好,当超过一定的训练样本数目时,识别率反而有所下降。5 人脸识别未来的发展    人脸识别是一个跨学科富挑战性的前沿课题,人脸图像中姿态、光照、表情、饰物、背景、时间跨度等因素的变化对人脸识别算法的鲁棒性都有着负面的影响,单一的PCA方法识别率不高,今后的发展方向可以与其他方法(如:支持向量机、小波变化等)相结合来弥补单一方法的不足,让身份识别更准确。

    时间:2009-06-15 关键词: 设计教程 pca

  • 基于PCA82C250与MCU间的直连通信网络设计

        摘要:在分析了RS-485总线与CAN部迟疑不决的异同点后,以PCA82C250型接口电路为例提出了用CAN总线通信物理层接口电路来替代RS-485总线接口中电路与单片机直接连接进行通信网络设计,从而可形成一个高性能、低价格且数据通信安全、可靠的分布式测控系统。     关键词:通信物理接口 RS-485总线 CAN总线 MCU 1 概述 用于多机间数据通信的通信物理层接口是分布式测控系统数据共享的工作基础,传统的以单片机为核心的分布式多机测控系统为简化通信物理层大多采用电流环或RS-485/RS-422总线。 电流环形式因较RS-485/RS-422总线形式连线复杂等原因已基本退出历史舞台。而RS-485总线接线形式较RS-422总线接线形式少了二极通信线且抗干扰能力增强,从而使接线形式更为简单、造价更低,因此,RS-485总线基本上独霸了以单片机为核心的分布式多机测控系统通信物理层的应用。但随着科技的发展,RS-485总线的总线效率低、系统实时性差、通讯可靠性低、后期维护成本高、网络工程调试复杂、传输距离不理想、单总线可挂接节点少、应用不灵活等缺点慢慢地暴露出来,因此,迫切需要寻找一种新型、简单有效的通信物理层接口芯片来替代RS-485总线物理层接口电路进行网络通信,这对提高多机互连的分布式测控系统的可靠性具有重大意义。 与其他现场总线相比,CAN部迟疑不决在通信能力、可靠性、实时性、灵活性、易用性、传输距离和成本等方面有着明显的优势,成为控制等领域最有前途的现场总线之一。对于CAN总线的物理层接口,现有大多是CAN总线物理层接口电路与CAN总线控制器连接构成的CAN总线通信网络。经笔者的深入分析和实践证明:CAN总线物理层接口电路(符合ISO11898标准)也可与单片机直接连接构成一个高可靠、低成本、简单实用、多机互连的分布式测控系统。 2 CAN与RS-485物理层特性比较 CAN总线在物理层个有专用接口电路,该类接口电路具有特色。 CAN总线与RS-485总线物理层特性的相同点有: ·二线制、半双工串行通信; ·差分传送、平衡接收; ·传输介质为双绞线; ·需终端匹配电阻器; ·通信电路可在5V电源条件下工作。 CAN总线与RS-485总线相比,CAN总线通信物理层接口电路(以PCA82C250为例)具有如下优点: ·完全符合ISO11898国际标准; ·数据传输距离长(长达10km/5kb/s); ·数据传输速率高(高达1Mb/s/40m); ·CAN总线中的总线数值为二种互补逻辑“显性”或“隐性”位数值; ·可实现多主式通信网络设计,信号在总线上通过“线与”可实现非破坏性总线仲裁; ·无发送、接收转换控制引脚; ·具有抗瞬间脉冲干扰(-150V<V脉冲<+100V)的总线保护能力; ·具有较RS-485总线高的总线电压(-8V~+18V)承受能力; ·具有发送脉冲斜率控制,可降低射频干扰; ·差分接收器可以抗拒较宽范围的共模干扰; ·具有总线与电源和地之间的短路保护; ·具有抗总线短路保护能力; ·在特定的单线条件下仍可以保护总线正常工作; ·具有低电流待机模式; ·总线内部配有电阻器网络,无需外部上、下位电阻器; ·未上电的节点对总线无影响; ·至少可以连接110节点。 由此可见,采用CAN总线的物理层专用接口电路替代RS-485总线接口电路形成一个混合模式的多机互连分布式测控系统的通信网络,可以克服RS-485总线的固有缺陷,充分利用CAN总线物理层的优势,能以简单的形式、较低的价格、较高的性能构造出极具竞争力的分布式测控系统。图23 PCA82C250简介 完全符合ISO11898国际标准的CAN总线物理层专用接口电路有多种,这里仅以CAN总线通用接口电路PCA82C250为例对这类接口芯片作以说明。PCA82C250的引脚图如图1所示。各功能引脚如下: 1脚:欲发送数据的输入端; 2脚:电源地端; 3脚:电源端; 4脚:接收数据的输出端; 5脚:参考电压的输出端; 6脚:低电平CAN总线输入/输出端; 7脚:高电平CAN总线输入/输出端; 8脚:总线脉冲斜率控制电阻连接端。 PCA82C250可以提供对总线数据的差动发送能力和对通信总线数据的差动接收能力。其引脚8较为特殊,该引脚用于选择电路自身的工作方式;高速、斜率控制和待机。该脚接地时,PCA82C250工作于高速通信方式;接一个一定阻值的电阻器后再接地,用于控制发送数据脉冲的上升和下降斜率(斜率正比于引脚8上的电流值),用以减少射频干扰;该脚接高电平时,电路进入低电流待机状态。在这种方式下,发送器被关闭,接收器转至低电流工作,但接收器仍可对CAN总线上的“显性”位做出。 如果PCA82C250处于通信总线的网络终端,在总线上需要加一个120Ω左右的匹配电阻。 4 应用实例 以Atmal AT89C55型单片机为例,AT89C55与RS-485总线接口电路及AT89C55与CAN总线物理层专用接口电路的对比连接图如图2所示。 由图2的对比中可以看出,PCA82C250与AT89C55的硬件连接比MAX485与AT89C55的硬件连接还要简单,因为,PCA82C250的通信过程无需接收与发送的硬件转换控制,仅由软件来控制接浮时,CAN总线表现为“隐性”位数值,即CANH和CANL为悬浮态(VCAHN≈CANL≈VCC/2,相当于关闭总线),这为具有“休眠”功能的系统提供了网络安全保障;当TXD端输入为低电平时,CAN总线表现为“显性”位数值(向总线传送有效数据位),即CANH输出高电压(约3.5V,当VCC为5V时)、CANL输出低电平(约1.5V,当Vcc为5V时)。显然,在多主机条件下,“显性”位和“隐性”位的引入,可在总线上实现非破坏性总线仲裁,以裁决哪一个主设备应是下一个占有总线的设备。由于没有用到PCA82C250参考电压的输出值,因此,PCA82C250的5脚可悬空,而8脚所接的电阻RS用于控制CAN总线的输出脉冲的上升、下降沿的斜率,以降低总线的射频干扰。当RS上的电阻大于0.75CC时,PCA82C250芯片进入低功耗待机状态;当RS上的电压小于0.3Vcc时,PCA82C250进入高速通信状态;当RS上的电压处于0.4Vcc至0.6Vcc之间时,PCA82C250进入CAN总线输出脉冲上升、下降沿的斜率控制通信状态,其斜率大小与RS上的电压成正比。 图2中,二个通信系统的软件几乎相同。当采用PCA82C250的作为总线接口替代原有的MAX485时,在软件上所做的变更有:首先,可取消RS-485总线的通信方向控制指令部分,因为CA7402097N总线接口已不需要此功能;其次,RS-485总线在总线发送时,由于发送、接收控制端已连接在一起,即自动关闭了总线数据接收功能,而CAN总线接口在总线数据发送的同时也在进行总线数据的接收(CAN总线接口不提供通信接收、发送数据的分离控制功能),因此,在软件设计上对此应有所考虑。当然,这为多机通信系统中的总线数据冲突的软件识别与仲裁提供了条件。 当需要MCU与通信网络之间的电气隔离时,可在MCU与CAN总线的物理层专用接口电路之间增加2个光电隔离器件(如6N137光电隔离电路),即可实现MCU与通信网络之间的电气隔离。 5 结论 经实际应用系统的检验证明,采用CAN总线的物理层专用接口电路(如PCA82C250等)替代RS-485总线专用接口电路来形成一个混合模式的多机互连的分布式测控系统的通信网络,可以很大程度上克服RS-485总线的固有缺陷,而且在软件上仅做少许修改,甚至不修改原有的RS-485总线的通信软件就能适应新的系统工作。必要时通过修改原有的RS-485总线的通信软件即可实现多主式多机数据通信,充分利用了CAN总线物理层的优势。在硬件方面,能够以简单的形式、较低的价格、较高的性能构造出极具竞争力的分布式测控系统,使多机互连的分布式测控系统的通信网络性能得以提升,保证在恶劣工况条件下通信系统的安全、可靠工作。

    时间:2006-02-23 关键词: 250 82c c250 pca

发布文章

技术子站

更多

项目外包