首页> 中国专利> 一种基于局部描述符的三维人脸识别方法

一种基于局部描述符的三维人脸识别方法

摘要

一种基于局部描述符的三维人脸识别方法,步骤如下:(1)对库集人脸模型和测试人脸模型进行预处理,包括人脸切割、姿态归一化和稀释,最后以鼻尖为中心建立人脸主轴坐标系;(2)对库集人脸模型和测试人脸模型提取等距轮廓线,以鼻尖点为中心提取与鼻尖点等距离的16条轮廓线,并进行重采样,得到相同数目的采样点;(3)对库集人脸模型和测试人脸模型人脸进行栅格划分,在步骤(3)所述出的采样点上提取局部投影面积作为局部特征;(4)对库集人脸模型和测试人脸模型上相同顺序的采样点建立一一对应的关系,并比较对应点局部特征;(5)以对应点间局部特征的欧氏距离作为相似度,在库集人脸中选取与测试人脸最相似的作为识别结果。

著录项

  • 公开/公告号CN101986328A

    专利类型发明专利

  • 公开/公告日2011-03-16

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN201010574366.1

  • 发明设计人 达飞鹏;徐俊;

    申请日2010-12-06

  • 分类号G06K9/00(20060101);

  • 代理机构32112 南京天翼专利代理有限责任公司;

  • 代理人汤志武

  • 地址 210096 江苏省南京市四牌楼2号

  • 入库时间 2023-12-18 01:48:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-11-13

    专利权的转移 IPC(主分类):G06K9/00 变更前: 变更后: 登记生效日:20131022 申请日:20101206

    专利申请权、专利权的转移

  • 2012-06-27

    授权

    授权

  • 2011-05-04

    实质审查的生效 IPC(主分类):G06K9/00 申请日:20101206

    实质审查的生效

  • 2011-03-16

    公开

    公开

说明书

技术领域

本发明涉及一种基于局部描述符的三维人脸识别方法,对任一个采样点自适应地选取3个邻域点集,将依次投影在XOY、YOZ和XOZ三个平面上的投影面积作为该点的局部特征,用这样一种局部描述符进行人脸识别,有很好的人脸表征效果,并减小了表情对识别造成的影响。

背景技术

生物特征识别在安全领域有着重要的应用,特别是与指纹、虹膜等特征相比,自动人脸识别技术以其无接触性、可接受性高、隐蔽性好等优点受到越来越多的关注,有着巨大的发展空间。

传统的基于二维照片的人脸识别技术受到光照、姿态、化妆等因素的影响较大。三维人脸识别技术可以克服或减轻这些因素的影响。三维人脸模型具有比二维图像更丰富的信息,它是对人脸的空间真实形态更准确的描述。但是,三维人脸数据量较大,干扰区域较多,计算量较大,且由于表情产生的人脸曲面非刚性变形,影响了基于几何信息的三维人脸识别的性能。因此,如何减小识别运算量、降低表情影响成为三维人脸识别技术的瓶颈,也是研究的关键问题。

发明内容

本发明提供一种能够提高表征准确性的基于局部描述符的三维人脸识别方法。

本发明采用如下技术方案:

一种基于局部描述符的三维人脸识别方法,其特征在于,分别对测试人脸及库集人脸进行处理,分别得到测试人脸上的采样点与库集人脸的采样点,所述处理包括预处理步骤、轮廓线提取步骤、采样点局部特征提取步骤,最后,在测试人脸上的采样点与库集人脸的采样点之间建立点对应关系,并在对应的采样点之间进行局部特征比较,再以欧式距离作为相似度,将最近距离对应的人脸作为识别结果,

所述的预处理步骤包括:

步骤1.1  人脸切割

根据人脸的形状指数(Shape Index)特征和几何约束确定鼻尖点粗略位置,以鼻尖点为中心,90mm为半径,舍弃落在球体以外的点,保留球体内的点作为后续处理的人脸区域;

步骤1.2  人脸姿态归一化

将切割后的人脸通过主成分分析方法进行主轴变换,人脸左右方向作为坐标系的X轴方向,人脸上下方向作为坐标系的Y轴方向,人脸前后方向作为坐标系的Z轴方向,以Z坐标最大值作为鼻尖点,以鼻尖点作为坐标系的原点,将人脸平移后得到统一的人脸主轴坐标系,设为PCS;

步骤1.3  人脸稀释

人脸的点云按照空间距离进行均匀采样,采样间隔为1mm,得到一系列的点云集合Fpca

所述的轮廓线提取步骤包括:

步骤2.1  等距轮廓线的提取

计算人脸点云集合Fpca内所有点到鼻尖点的距离之后,选择等距离的点组成16条曲线φ(n),n=1,2,...,16,曲线φ(n)为等距轮廓线,n为轮廓线的序号,每条曲线φ(n)中的点到鼻尖点的距离dis满足条件:

dis∈[5*n-δ,5*n+δ]

其中阈值δ>0,这里取为1.4mm,这样得到与鼻尖点相距5mm至80mm共16条轮廓线;

步骤2.2  等距轮廓线的采样

步骤2.2.1  将等距轮廓线φ(n)在人脸主轴坐标系PCS的XOY平面上投影,以鼻尖点为中心,投影的曲线在X轴方向的差值α为短轴,在Y轴方向的差值b为长轴,得到一个椭圆,方程可表示为:

x=a2cos(t)y=b2sin(t)

其中t=[0,2π],x为椭圆的横坐标,y为椭圆的纵坐标,

步骤2.2.2  将人脸粗略分为3个区域:第1-10条轮廓线所覆盖的区域为内区域、第11-14条轮廓线所覆盖的区域为中区域、第15-16条轮廓线所覆盖的区域为外区域,对内外区域内的轮廓线进行采样时,选取采样点为:

x=a/2*cos((360/(8+8*j))*i)y=b/2*sin((360/(8+8*j))*i)

其中j=1,2,...,10,15,16,i=1,2,...,8+8*j,式中x和y分别表示在第j条轮廓线上的第i个采样点的横坐标和纵坐标,同理对中区域内的轮廓线进行采样时,选取采样点为:

x=a/2*cos((360/(8+4*j))*i)y=b/2*sin((360/(8+4*j))*i)

其中j=11,12,...,14,i=1,2,...,8+4*j,式中x和y分别表示在第j条轮廓线上的第i个采样点的横坐标和纵坐标;

所述的采样点局部特征提取步骤包括:

步骤3.1  划分栅格

设每个正方体栅格的边长为CubeLength,作过人脸在PCS下的X坐标最小值点的且与YOZ平面平行的YOZ′平面、过人脸在PCS下的Y坐标最小值点的且与XOZ平面平行的XOZ′平面和过人脸在PCS下的Z坐标最小值点的且与XOY平面的XOY′平面,从这三个平面的交点开始,沿三个坐标轴的正方向用边长为CubeLength的栅格堆叠,直到覆盖整个人脸,

步骤3.2  提取局部特征

步骤3.2.1  计算邻域大小

计算每个采样点的法向量计算法向量与X轴、Y轴和Z轴的夹角,分别为α、β和γ,根据夹角的大小选取3个邻域Ω1、Ω2和Ω3,3个邻域内的点的数目分别为:

number1=round((1-cos(|α|))*50)

number2=round((2-cos(|β|))*50)

number3=round((2-cos(|γ|))*50)

步骤3.2.2  计算投影面积

分别将邻域Ω1内的点在XOY平面上进行投影,将邻域Ω2内的点在XOZ平面上进行投影,将邻域Ω3内的点在YOZ平面上进行投影,求投影下来的散乱二维点云的最外围点,用直线连接成不规则的多边形,计算所包围的区域面积,得到的3个投影面积作为该采样点的局部特征。

本发明针对三维人脸识别时表情变化复杂,单个点易受噪声影响等问题,提出了一种自适应选取点的邻域在XOY、YOZ和XOZ三个平面上的投影面积作为该点的局部特征进行识别的三维人脸识别方法。

一个点的邻域可以认为包含丰富的局部信息,在处理表情和遮挡等问题时,与基于整体信息的方法相比,具有一定的优势。又因为用一个邻域来提取局部信息,而不是单独的一个点,所以减少了噪声点影响的可能性。对于姿态矫正过的人脸,一个点的邻域点集的投影面积不仅包括了该点的所在曲面的弯曲度,而且包括了该点法向量的信息,因此在识别时能取得很好的效果。自适应选取邻域点集则使得每个点的特征更具有区分度。而减少形变区域采样点,使得近似刚性区域的特征权重加大,容易引起误差的形变区域的特征权重减小,进一步改善了识别效果,大大克服了表情的影响。

本发明的优点及特点如下:

1)对人脸进行了稀释。一般情况下,点集越稀疏包含的信息越少,但点集越密集处理的时间越长,一直以来这都需要一再权衡。而在使用邻域点集的局部投影的面积进行识别时,不会因为稀释而减少大量信息。相反地,如果不进行稀释,想要得到曲面弯曲程度等等的信息量,采样点的邻域数目就需要加倍,大大增加了耗时。而不改变领域大小则会因为点集面积太小而丢失信息。

2)采用了不均匀的离散采样,建立起库集人脸与测试人脸统一的坐标系。这里将人脸划分为3个区域:鼻子区域(内)、形变区域(中)和外轮廓区域(外)。其中内外两个区域可以认为受表情影响较小,即近似刚性区域,而中间区域包含脸颊、眼睛和嘴巴,均会受表情影响很大。因此对这三个区域内的轮廓线进行采样时,并不是根据均匀的间隔采样。所谓不均匀的离散采样,就是在内部和外部区域采样间隔比较密,即采样点较多,在中间区域采样间隔比较疏,即采样点较少。这样就减少了由于表情变化引起形变的区域的采样点,通过权重的分配在一定程度上克服表情的影响。又由于每个人脸经过了统一的离散采样,库集人脸和测试人脸具有相同的坐标系,采样点呈现一一对应的关系。

3)对人脸进行了栅格划分。对每个采样点提取邻域点集时,需要搜索与之距离最近的100个点。如果每次搜索都用人脸的所有点与该采样点进行比较,可想而知,这样的耗时是相当大的。对人脸进行栅格划分后,每次搜索只需在与该点临近的27个栅格(包括该采样点所在的栅格)内进行搜索。大大缩短了耗时。

4)采用了邻域点集的投影面积作为特征进行识别。邻域点集的投影面积是本发明提出的一个具有很好表征性的局部描述符。因为局部描述符本身就在处理表情和遮挡等问题时,与整体描述的方法相比,具有一定的优势。虽然局部特征易受噪声影响,但该描述符由于不是在单独一个点上提取特征,而是自适应选取该点的邻域,之后在所提取的邻域点云集上进行特征的提取,这样有效地避免的噪声点的干扰。对于姿态归一化的人脸,一个采样点的邻域点集在XOY、XOZ和YOZ这3个平面上的投影面积受该点的曲率和法向量的影响呈现不同的大小,又因为点集大小通过了自适应地选取,因此具有很好的区分度。而邻域点集的投影面积受表情影响不是很大,所以在有表情的情况下具有很好的表征性。

附图说明

图1是本发明所述三维人脸识别方法的流程图。

图2是原始的人脸。

图3是切割后的人脸。

图4是姿态归一化后的人脸。

图5是稀释后的人脸。

图6是人脸局部特征提取的示意图。

图7是处理库集人脸和测试人脸的示意图。

图8是识别方法的示意图。

具体实施方式:

下面参照附图,对本发明具体实施方案做更为详细的描述。编程实现工具选用VisualC++6.0,实验室数据来自FRGC v2.0三维人脸数据库,由美国University of Notre Dame采集,测试集包括466人的4007幅三维人脸,主要在2003年秋季和2004年春季采集。本文将每个人的第一幅三维人脸作为库集模型,其余均作为测试模型。

图1是本发明所述三维人脸识别方法的流程图。

图6是采样点上局部特征提取的示意图。对于人脸上任一个采样点,分别提取出50个点集的邻域,并根据邻域所构成的微切平面计算法向量n。通过计算n与坐标系的关系可以得到3个邻域Ω1、Ω2和Ω3。将邻域Ω1向人脸PCS下的XOY平面进行投影,邻域Ω2向人脸PCS下的YOZ平面进行投影,Ω3向人脸PCS下的XOZ平面进行投影,就得到3个二维的投影点云集合。求出散乱的二维点集中最外围的点,用直接连接相邻的两个点,就可以得到3个不同的闭合区域。

图7是处理库集人脸和测试人脸的示意图。原始人脸经过切割、姿态归一化和稀释后,提取了16条与鼻尖点等距的轮廓线,设为共n个采样点。在每个采样点上提取局部特征desi[2],i=1,2,...,n。

图8是识别方法的示意图。对于一个测试人脸,通过图2所示的处理,得到了该人脸的局部特征Pdesi[2],i=1,2,...,n。相同地,对于库集人脸,共n′个人脸,通过图2所示的处理,得到了n′个人脸的局部特征Gjdesi[2],其中i=1,2,...,n,j=1,2,...,n′。通过比较可以得到n′个库集人脸与测试人脸之间的相似度Distj,j=1,2,...,n′,最小的Dist对应的库集人脸为识别结果。

本发明的方法具体包括以下几个步骤:

对测试人脸和库集人脸的处理步骤包括预处理、轮廓线提取和采样点局部特征提取。

步骤1  预处理

预处理分为三步:人脸切割;人脸姿态归一化;人脸稀释。

步骤1.1  人脸切割

根据人脸形状指数(Shape Index)特征和几何约束可以确定鼻尖点的粗略位置。人脸上任一点p的Shape Index值SI(p)由它的最大主曲率k1(p)和最小主曲率k2(p)得到:

SI(p)=12-1πtan-1k1(p)+k2(p)k1(p)-k2(p).

Shape Index特征可以表示每一点邻域的凹凸程度,越凸的曲面对应的Shape Index值越大。计算人脸点云中每一点的Shape Index值,选取在范围(0.85-1.0)内的点组成的连通区域作为初始的鼻尖的候选区域。计算人脸点云的质心位置,在鼻尖候选区域选择靠质心位置最近的一个连通区域作为鼻尖区域。选取鼻尖区域的质心作为鼻尖点粗略位置。

以初始鼻尖点为中心,90mm为半径,舍弃落在球体以外的点,保留球体内的点作为后续处理的人脸区域。

步骤1.2  人脸姿态归一化

进行粗略切割后的人脸模型近似为一张上下方向较长,左右跨度居中,前后厚度较小的椭球体。对人脸点集分布进行主成分分析(Principle Component Analysis,PCA),可以得到三个特征向量,这三个特征向量分别对应从大到小排序的三个特征值,按PCA的特征值与特征向量的关系,最大特征值对应的主方向是点集散度最大的方向,即人脸上下方向;最小特征值对应的主方向是点集散度最小的方向,即人脸前后方向;剩余的一个特征值对应人脸左右方向。边缘数据会造成人脸三维模型不对称,但是对绝大多数三维人脸模型来说,以鼻尖点为球心的一定半径内的数据仍然是对称的。因此再次使用主成分分析会获得更为精确的主轴。将每个人脸模型都转换到其主轴坐标系下,方便了不同人脸进行匹配和比较,设为PCS。具体步骤如下:

步骤1.1.1  设库集人脸模型G={pi|i=1,2,L n},pi是G中一点,n为G中点的数目。对G进行PCA运算,得到原始人脸数据的三个主轴将模型G中的点转换到以为坐标轴的坐标系下,得到是G2中一点,n为G2中点的数目:

pi2=(v1,v2,v3)Tpi.

步骤1.1.2  模型中,落在以鼻尖点(z坐标最大点)为中心,以r=50mm为半径的球面内的点组成新的点集n3表示点集G3中点的个数,对G3进行第二次PCA运算,得到三个精确主轴

步骤1.1.3  人脸主轴坐标系的三个坐标轴为:

(v1,v2,v3)=(v1,v2,v3)(v1,v2,v3)

取坐标变换后的z坐标最大点为精确的鼻尖点。平移人脸主轴坐标系下的三维模型,使鼻尖点为原点:

pi=(v1,v2,v3)Tpi-pnt;

其中pnt表示鼻尖点,pi是G变换坐标系后的人脸模型中的一点。

步骤1.3  人脸稀释

采用空间采样法对点云进行稀释。这种稀释数据的方法简单有效,能够在不失真的前提下缩减点云数目,并且能得到在空间较均匀的点云。应用空间采样法时,本文取空间间隔距离σ为1mm。具体的稀释方法如下:

求出待稀释的人脸模型中每个点的σ邻域,即与每个点的距离小于σ的点的集合;并对每个点增加一个m_select标志,初始化为TRUE。从第一个点开始,对每个点p,先看自身的m_select标志是否为FALSE,如果为FALSE则查看下一个点,如果为TRUE则查看其σ邻域中每个点的m_select标志,将邻域点中m_select为TRUE的点置为FALSE。最后将所有m_select标志为FALSE的点删除,得到稀释后的人脸。

至此,三维人脸模型转换到了其主轴坐标系下,库集人脸模型和测试人脸模型经过上述处理后得到的模型具有相同的姿态、点云密集程度和坐标,得到的一系列的点云集合设为Fpca

步骤2  轮廓线提取

步骤2.1  等距轮廓线的提取

计算人脸点云集合Fpca内所有点到鼻尖点的直线距离,选择等距离的点组成一系列的轮廓线。根据人脸区域的大小,选择与鼻尖点等距离的共16条轮廓线。其具体选取方法如下:

计算人脸点云集合Fpca内所有点到鼻尖点的距离之后,选择等距离的点组成16条曲线φ(n),n=1,2,...,16,n为轮廓线的序号,每条曲线φ(n)中的点到鼻尖点的距离dis满足条件:

dis∈[5*n-δ,5*n+δ]

其中阈值δ>0,这里取为1.4mm,这样得到与鼻尖点相距5mm至80mm共16条曲线;

步骤2.2  等距轮廓线的采样

在16条曲线选取完毕后,就要进行离散采样,将散乱的点集采样成具有一定排列顺序的点序列。具体采样方法如下:

步骤2.2.1  将等距轮廓线φ(n)在人脸主轴坐标系PCS的XOY平面上投影,其投影近似为一个椭圆。以鼻尖点为中心,投影曲线在X轴方向的差值α为短轴,在Y方向的差值b为长轴,得到一个椭圆,方程可表示为:

x=a2cos(t)y=b2sin(t)

其中t=[0,2π],x为椭圆的横坐标,y为椭圆的纵坐标,通过改变离散采样t,我们可以在椭圆上采样不同数目的点。

步骤2.2.2  在采样前,我们考虑到人脸受表情的影响,将人脸粗略分为3个区域:鼻子区域(内)、形变区域(中)和外轮廓区域(外)。其中内外两个区域可以认为受表情影响较小,即近似刚性区域,而中间区域包含脸颊、眼睛和嘴巴,均会受表情影响很大。这里在对每条轮廓线进行离散采样的时,选取了不一样的采样比率(即不一样的t)。第1-10条轮廓线所覆盖的区域为内区域、第11-14条轮廓线所覆盖的区域为中区域、第15-16条轮廓线所覆盖的区域为外区域。这样,对内外两个区域内的轮廓线进行采样时,选取采样点:

x=a/2*cos((360/(8+8*j))*i)y=b/2*sin((360/(8+8*j))*i)

其中j=1,2,...,10,15,16,i=1,2,...,8+8*j,式中x和y分别表示在第j条轮廓线上的第i个采样点的横坐标和纵坐标。

同理对中区域内的轮廓线进行采样时,选取采样点为:

x=a/2*cos((360/(4+8*j))*i)y=b/2*sin((360/(4+8*j))*i)

其中j=11,12,...,14,i=1,2,...,8+4*j,式中x和y分别表示在第j条轮廓线上的第i个采样点的横坐标和纵坐标;

这样通过不均匀的离散采样就得到了一系列按一定顺序排列的点集。

步骤3采样点局部特征提取

为了提高采样点局部特征提取的效率,在这之前还需对人脸进行栅格划分。局部特征提取时,具体可以分为:采样点的邻域点集大小的计算、采样点的邻域点集提取和投影面积计算。

步骤3.1  栅格划分

设每个正方体栅格的边长为CubeLength。作过人脸在PCS下的X坐标最小值点的且与YOZ平面平行的YOZ′平面、过人脸在PCS下的Y坐标最小值点的且与XOZ平面平行的XOZ′平面和过人脸在PCS下的Z坐标最小值点的且与XOY平面平行的XOY′平面,从三个平面的交点开始,沿三个坐标轴的正方向用边长为CubeLength的栅格堆叠,直到覆盖整个人脸。

定义一个数据结构List[M][N][L],M,N,L分别为X,Y,Z轴上的栅格个数:

M=[xMax-xMinCubeLength]

N=[yMax-yMinCubeLength]

L=[zMax-zMinCubeLength]

List[M][N][L]包括了M×N×L个元素,每个元素List[m][n][l]是一个线性表,用于存储索引号为m,n,l的栅格所包含的点。

建立List[M][N][L]时,需要遍历点云中的每个点,计算它所在的栅格在x,y,z轴方向上的索引m,n,l,将该点添加到List[m][n][l]表示的栅格中。例如点pi=(xi,yi,zi),它的索引号为(编号从0开始):

m=[xi-xMinCubeLength]

n=[yi-yMinCubeLength]

l=[zi-zMinCubeLength]

则该点将被添加到栅格List[m][n][l]的线性表中去。

只要栅格大小适当,划分栅格后,一般认为一个点的邻域点就在这个点的27个邻域栅格内(包括这个点所在的栅格),搜索一个点的邻域点就在它的27个邻域栅格内进行。例如,pi位于List[m][n][l]所代表的栅格中,根据m,n,l可以得到它的27个邻域栅格,分别为List[m±1][n±1][l±1],其中选择“+”或者“-”,或者两者都不选,三个索引进行组合可以得到pi的27个邻域栅格的索引。如果把点云分为w个栅格,并假设点云均匀分布在各个栅格,那么每次搜索邻域点的复杂度降为未划分栅格的27/w,总的时间复杂度也相应降为原来的27/w。

栅格边长CubeLength的设置需要注意,为了保证每个栅格内至少包含一个数据点,CubeLength不能小于整个点云中两点间的最小距离。但是也不宜过大,如果CubeLength过大,则划分栅格后,整个点云可能只是被分为27个栅格或更少,那么在27个邻域栅格内搜索相当于全局搜索,划分栅格就没有起到应有的作用。经过实验,本文取CubeLength为20mm。

步骤3.2  提取局部特征

步骤3.2.1  采样点的邻域点集大小的计算

目标为求出点云中每个采样点应取的邻域点集3个邻域Ω1、Ω2和Ω3的大小,设当前点为点p。首先在点p周围寻找与该点距离小于某一阈值的m个邻近点,由该m个邻近点组成点p的邻近域,根据邻近域点集构造点p的微切平面,可以确定三维人脸模型曲面在点p处的法向量n。

计算n与人脸Z轴的夹角α,根据α的大小来选取邻域。这里认为对于相同形状的点集,其法向量n越靠近Z轴,在XOY平面的投影面积越大,所以这里选取邻域点集的大小为number时,α越大则选取的number越小,反之number越大。即在XOY平面上投影的点云集数目number1=round((1-cos(|α|))*50)。同理,分别计算n与人脸X和Y轴的夹角β和γ,由于在人脸大部分的表面,β和γ一般都远大于α,如果用上述的公式求会使得点集过小,所以这里稍扩大权重。即number2=round((2-cos(|α|))*50),number3=round((2-cos(|α|))*50)。

步骤3.2.2  采样点的邻域点集提取

目标为搜索出点云中每个采样点的numberi,i=1,2,3个邻域点。这里以number1为例。设当前点为点p。划分栅格后,全局搜索就转化为在p的27个邻域栅格内搜索。搜索点p的邻域点就是计算点p与它的27个邻域栅格内各个点的距离,对这些距离进行排序,取与点p的距离大小排在前number1位的点,就得到点p的number1个邻域点。这里采用堆排序法。

堆排序的思想是先建k个数的堆,然后遍历后面的每个点时调整堆。该方法需要开辟一个大小为k(k=Nc)的空间A,用于存放堆数据;本文用数组实现A。

(1)遍历点云中的点pi,计算它在包围盒中所处栅格的索引m,n,l,得到点pi的27个邻域栅格;

(2)遍历选中的27个栅格中的点,对其中每个点pg

{

计算pg与pi之间的距离dis;

如果(curCloseNum小于Nc)

将pg放到数组A中;

否则如果(还未建堆)

对数组A建堆,建堆后A的第一个节点(即堆顶)到pi的距离最大;

否则如果(dis小于数组A的第一个节点(即堆顶)到pi的距离)

根据dis调整堆;

}

(3)判断点pi的邻域栅格遍历是否完毕,未遍历完毕则返回(2),继续遍历邻域栅格的下一个点;遍历完毕则把数组A中的元素放入该点的CloseDot链表中;

(4)判断点云是否遍历完毕,若没有则返回(1)继续遍历。

这样求出的number1个邻域点是无序的,当然我们计算投影面积时对点集的排序并没要求,所以无需再进行排序。

步骤3.2.3  投影面积的计算

上述步骤求出的当前点p的3个邻域Ω1、Ω2和Ω3也是三维的点云集合,这里分别将邻域Ω1内的点在XOY平面上进行投影,将邻域Ω2内的点在XOZ平面上进行投影,将邻域Ω3内的点在YOZ平面上进行投影。以邻域Ω1为例,邻域内每个点具有X、Y和Z三个坐标,只保留X和Y的坐标即得到点集在XOY平面上投影下来的二维点云。求出二维点云中最外围的点后进行直线连接就可以形成一个多边形的闭合区间,由一条边和p点即可确定一个三角形,求出每个三角形的面积相加后所得的结果即作为该点集在XOY平面上投影的面积,也就是该点的第一个局部特征值。在YOZ和XOZ平面上投影面积与上述相仿,这里只给出求在XOY平面上的投影面积的步骤。

(1)选取当前点集中Y坐标最小的点,置于PointSet[0],如果这样的点有多个,则选取最左边的那个点;

(2)选取与PointSet[i]点的极角最小的点,如果这样的点有多个,则选取距离最短的那个点,置于PointSet[i+1];

(3)遍历所有的点,如果PointSet[j]就是PointSet[0]时遍历完毕,否则返回Step2,这时PointSet数组中一共储存了k个点;

(4)计算点PointSet[i]、点PointSet[i+1]和点p所组成的三角形的面积,i=0,1,...,k-2;

(5)将k-1个面积相加即得到了该点在XOY平面上自适应选取的点集所投影下的面积。

在XOZ和YOZ平面上,采取以上相同的处理,分别得到第2和第3个局部特征值。

至此,得到了库集人脸与测试人脸相同的采样点数,设为n,每个采样点都具备一个3维的的局部特征desi[2],其中i=1,2,...,n为采样点的序号。

步骤4  识别

由于测试人脸和库集人脸处理是相同的,而且轮廓线的采样是按照一定顺序的,所以测试人脸上的采样点和库集人脸上的采样点之间,根据轮廓线上的采样顺序,具有一一对应的关系。因此,比较相对应的采样点间的局部特征即可作为测试人脸和库集人脸之间相似度用来识别。

通过步骤1、2和3所述,分别可以得到库集人脸的局部特征Gdesi[2]和测试人脸的局部特征Pjdesi[2],其中i=1,2,...,n为采样点的序号,j=1,2,...,n′为库集人脸的序号,n′为库集人脸的个数。以对应点间的局部特征的欧氏距离作为相似性度量,即

Distj=norm(Pdesi[2],Gjdesi[2])。

这里认为人脸之间欧氏距离距离Dist小的相似性高,人脸之间欧氏距离距离Dist大的相似性低。通过测试人脸与库集人脸间的匹配,得到比较的结果Dist1,Dist2,...,Distn′。从中求最小值dmin=min{Dist1,Dist2,...,Distn′},该最小值在剩余库集模型中对应的人脸模型即为识别结果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号