论文部分内容阅读
人脸识别发展到现在,仍然是生物识别领用中的研究热点。在人脸识别中,原始图像的维数相当高,直接对原始图像处理会增加算法的复杂度,使得处理时间增加。尽管有很多用于降维的算法出现,但是降维算法在降维的同时会丢失一些有用的信息,因此维数的大小就受到了限制,这也是人脸识别速度在算法上的瓶颈。对人脸识别算法进行并行化可以在不影响算法识别率的基础上,提高人脸识别的速度。到目前为止,人们给出的人脸识别的方法已经非常精简,提高人脸识别系统运行速度的主要途径是对算法进行改进,这样收效甚微,速度的提高有限。多核计算机的出现,为人脸识别系统的速度提升带来了契机。本文通过对人脸识别系统进行线程划分和数据分组来改进人脸识别的运行速度,大幅度提高了人脸识别系统的运行效率。本文实现了一种基于PCA(Principal Component Analysis)和多BP神经网络的人脸识别系统,并对该系统进行了多线程并行化、SSE指令并行化、多线程和SSE指令相结合的并行化:首先对原始人脸图像进行预处理,然后用PCA算法对其进行特征提取,最后用多BP神经网络作为分类器对特征参数进行训练以及识别,在系统完成后对其进行多线程划分,数据分组以完成多线程和SSE指令并行化。由于BP网络分类器不易进行多线程并行化且收敛速度慢的局限性,本文对其进行了一些改进,得到了多BP神经网络。本文实现的人脸识别系统是基于ORL人脸数据库,其识别率达到了92.5%,与单纯的PCA算法相比提高了5%,与基于PCA和BP神经网络的人脸识别系统相比提高了2%。以Intel CoreTM2双核计算机为平台,在特征训练上,串行的多BP神经网络需要111秒,比BP神经网络少了29秒。对人脸识别系统进行多线程并行化后系统的运行速度提高了1.77倍;对人脸识别系统进行数据并行化后系统的运行速度提高了3.795倍;对人脸识别系统进行多线程并行化和数据并行化后系统的运行速度提高了5.972倍。