刘 嵩,谭建军
(湖北民族学院 信息工程学院,湖北 恩施445000)
人脸识别是计算机视觉中的一个热点,其较为关键的技术就是特征提取。主元分析法(Principle Component Analysis,PCA)是经典的特征提取方法,它提取的特征是代数特征,满足投影方差最大的原则,且是相互正交的[1]。但PCA 方法没有利用样本数据的高阶信息,而高阶信息更有利于人脸分类。基于核的非线性变换因其在支持向量机(SVM)中出色应用而引起众多研究人员关注,为了利用样本的高阶信息,研究人员将核函数的思想引入到人脸识别中。Scholkopf 提出了核主元分析(Kernel Principle Component Analysis,KPCA)的方法来提取特征,并应用于人脸识别[2]。KPCA 基本思想是:首先通过非线性映射将原始样本数据从低维空间变换到高维特征空间,然后在这个新的空间中使用PCA 方法。为避免“维数灾难”问题,引用支持向量机(Support Vector Machine,SVM)中的核函数,即用满足Mercer 条件的核函数来计算特征空间中向量的内积[3-5],避免了显式的求解映射函数。实验结果表明,KPCA不仅能够抽取非线性特征,而且有着比主成分分析更好的识别效果。
然而,基于KPCA 的人脸识别方法需要多次计算内积来求解核矩阵,其耗时占总识别时间的80%以上,特别是在样本维数较高的时候更为明显。另外考虑到在工程实践中对成本、体积、后期升级等方面的要求,传统的基于PC 机的人脸识别算法在实际应用中受到很大限制。随着数字信号处理(Digital Signal Processing,DSP)技术的快速发展,其运算能力显著提高,能实时处理海量数据,同时拥有较高的性价比[6]。鉴于此,本文提出了一种利用DSP 实现核主元分析的方法,实验结果证明了该方法的有效性。
假设空间映射为Υ,x1, x2, …, xM为训练样本,则映射可以定义如下:
假设特征空间数据满足中心化的条件,即
则特征空间中的协方差矩阵为
现求Q 的特征值λ≥0 和特征向量ν满足下式:
即有
考虑到所有的特征向量可表示为 Υ(x1),Υ(x2), …, Υ(xM)的线性张成,即
则有
定义M×M 维矩阵K:
则式(7)可以简化为
显然满足
求解式(10)就可以得到特征值和特征向量,对于测试样本在特征向量空间Vk的投影为
将内积用核函数替换则有
当式(2)不成立时,需进行调整:
则核矩阵可修正为
常见的核函数有线性核函数、d 阶多项式核函数和高斯径向基函数核函数3 种,分别为
TI 公司的TMS320C6000 系列DSP 具有较强的数据处理能力,特别适合做图像处理。考虑到后期的升级和总的开发成本,本系统选择TMS320C6201芯片作为核心处理器搭建硬件平台。TMS320C6201是一种高性能的定点数字信号处理器[7]。
系统实现的硬件平台总体框图如图1 所示,系统以DSP 为核心, 包括DSP 处理模块、电源模块、LED 显示模块、存储模块和扩展接口等部分,其中电源模块为系统提供电能供应,显示模块显示识别结果,存储模块包括SDRAM 模块和FLASH 模块,分别用来运行程序和固化程序,接口模块是为了后期系统升级预留的接口。
图1 系统总体框图Fig.1 Diagram of system hardware
移植到TMS320C6201 平台上的人脸识别算法实现流程如图2 所示。系统上电后,首先进行初始化,然后按预先设定的程序读取训练图像,在预处理阶段运行几何归一化和灰度归一化程序。几何归一化是指将图像中人脸变换到同一位置和同样大小,得到大小、位置相当的图像。灰度归一化将图像的灰度值和方差归一化到一个特定的区间,从而将减少光照变化对人脸识别率的影响。训练图像和测试图像经过预处理后再通过核主元分析方法提取人脸图像的高维非线性特征,最后经过分类器进行分类识别并显示识别结果。
图2 算法流程图Fig.2 Algorithm flow chart
优化是指通过提高硬件资源的并行利用程度,提高代码运行速度,减少运行时间[8]。DSP 的算法优化一般经过3 个阶段,流程如图3 所示。
图3 算法优化流程图Fig.3 Algorithm op timization flow chart
第一阶段是直接使用C 语言实现算法功能。TI公司提供了片上支持库(Chip Support Library,CSL)来简化程序开发。CSL 是一个C 语言程序库,给出了配置和控制片上外设的C 语言接口。虽然也可以用写汇编程序的方法来操作片上外设,但使用片上支持库可以带来以下好处:使外设的使用变得容易、缩短开发时间、提供了所有外设寄存器和寄存器字段的字符表示、方便将代码移植到其他DSP。
第二阶段是C 语言程序的优化。对于耗时较长的程序段,采取从软件入手, 兼顾硬件的优化原则,重新组织程序结构。
第三阶段是汇编语言优化。找出不能满足效率要求的代码段,用线性汇编语言改写,利用汇编优化器进行优化。
在本实验中主要采取了如下优化手段。
(1)存储器优化
DSP 内部存储空间不大,在优化过程中需要合理配置片内存储器,避免反复的搬移数据增大程序运行时间。因为图像数据都比较大,可以存储在外部存储器,而求得的特征矢量因为要反复使用,可以存储在内部存储器,同时开辟一部分片内程序作为cache,提高程序访问数据的速度。
(2)编译器优化
编译器选项用来控制编译器的行为,选择不同的编译器选项,通过设置参数来优化编译过程, 可以提高编译后汇编代码的效率。
(3)EDMA 技术
高效的数据处理能力也需要高效的数据供给,DMA 数据搬移技术可在没有CPU 参与的情况下进入后台操作,达到高效搬移的功能。
(4)软件流水
在人脸识别中有大量的循环运算,软件流水是用来安排循环指令,使这个循环的多次迭代并行执行的一种技术,是提高代码性能的最关键优化方式。可以采用人工的干预,使编译器生成效率更高的软件流水,这些干预包括消除冗余循环、向编译器传递循环次数信息、循环展开等。
(5)线性汇编
在识别程序中,内积运算的C 语言程序效率较低,使用线性汇编重新改写,可以大大提高计算速度。
(6)定点运算
由于TMS320C6201 是定点系列的DSP,使用浮点数运算势必会加大DSP 的运行时间,不利于DSP算法的运行效率,所以在程序中将运算转为定点运算,可以节约运算时间。
实验使用的人脸图像集来自ORL 人脸数据库。该数据库的人脸图像分别是在不同时期、不同光照、不同头部角度和不同表情条件下摄制而得,由40 个人每人10 幅共400 幅构成,是目前使用最广泛的标准图像。在实验中随机抽取数据库中的部分图像作为训练样本,在余下部分中选择相同数目的图像作为测试样本,训练样本数目与测试样本数目相等,而且统一选择高斯径向基函数作为核函数,核函数的参数取值为10,选择的分类器是最小距离分类器。每一个实验都重复30 次,对实验结果取平均值。
实验中首先对比了KPCA 算法在PC 机运行和本硬件平台运行的人脸识别率和识别时间,并且也对比了程序优化对算法的改善。样本数目和测试数目都为200,实验结果如表1 所示。从表1 可以看出,在两种平台之上运行KPCA 算法,其识别率没有变化,均为93%,但是DSP 平台在识别时间方面大为减小,PC 平台平均消耗时间为7.8 s,而DSP 平台的平均消耗时间在优化前是5.0 s,而优化后仅仅需要1.6 s,识别速度提高了68%,效率显著提高。
本文也比较了在DSP 平台上不同的样本数目对算法移植的影响。表2 对比了样本数目分别为100 和200 时算法的优化效果。从表2 可以看出,样本数目越大, 优化效果越明显,主要原因在于DSP在处理大量数据的时候优势更为明显。
表2 DSP 平台不同样本数目的识别时间对比Tab le 2 Recognition rate comparison between different sample numbers
本文将基于核主元分析的人脸识别算法移植到TI 公司的TMS320C6201 DSP 平台,并进行了相关优化。经过优化后的移植算法在保证识别率的前提下,节约了大量的识别时间,效率优势明显,而且硬件系统运行稳定,可扩展性强,有一定的参考价值。如何在DSP 平台上进一步提高人脸识别率和运行效率是下一步研究工作的重点。
[ 1] 俞宁.一种用于人脸识别的新PCA 算法[J] .电讯技术,2009,49(12):65-69.
YU Ning.A Novel PCA Algorithm For Face Recognition[ J] .Telecommunication Engineering, 2009, 49(12):65 -69.(in Chinese)
[2] Scholkopf B, Smola A.NonlinearComponent Analysis as a Kernel Eigenvalue Problem[ J] .Neural Computer, 1998, 10(2):1299-1319.
[3] Gu Y F, Liu Y, Zhang Y.A Selective KPCA Algorithm based on H igh -order Statistics for Anomaly Detection in Hyperspectral Imagery[ J] .IEEE Geoscience and Remote Sensing Letters,2008, 5(1):43-47.
[4] LIU Chang-ping.Gabor based kernel PCA with fractional power polynom ial models for face recognition[ J] .IEEE Transactions on Pattern Analysis and M achine Intelligence, 2004,26(5):572-581.
[5] 杜卓明, 屠宏,耿国华.KPCA 方法过程研究与应用[ J] .计算机工程与应用, 2010,46(7):8-10.
DU Zhuo-ming,TU Hong,GENG Guo-hua.KPCA Method Research and Application Process[ J] .Computer Engineering and Applications,2010,46(7):8-10.(in Chinese)
[6] 舒红霞, 王继红.分布式DSP 实时操作系统的设计与实现[J] .小型微型计算机系统,2010,31(7):1407-1410.
SHU Hong-xia,WANG Ji-hong.Design and Implementation of a Distributed DSP Real Time Operating System[ J] .Mini-Micro Systems,2010,31(7):1407-1410.(in Chinese)
[7] Eyre J, Bier J.The Evolution of DSP Processors From Early Architectures to The Latest Developments [ J] .IEEE Signal Processing Magazine, 2000, 17(2):43-51.
[8] 邹土土土, 张超.基于DSP 的人脸识别算法实现与优化[ J] .计算机应用,2010,30(3):854-856.
ZOU Yao, ZHANG Chao.Implementation and Optimization of Face Recognition Algorithm based on DSP[ J] .Journal of Computer Applications,2010, 30(3):854-856.(in Chinese)