这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » [分享]基于DSP人脸识别系统的设计与实现

共1条 1/1 1 跳转至

[分享]基于DSP人脸识别系统的设计与实现

助工
2020-06-08 13:31:01     打赏

随着计算机技术和模式识别等相关技术的飞速发展, 使运用当今先进技术来研制安全监测系统成为可能, 人脸识别是安全监测系统中身份识别的一种最方便、最直接的方法。传统的人脸图像识别系统是由大规模或超大规模集成电路来完成的, 图像采集依赖于较大型设备, 速度比较慢, 实时性较差, 在小范围内使用价格比较昂贵。随着数字信号处理器DSP的飞速发展, 它以其高速、准确的性能为图像获取带来了新的途径, 而且用硬件来实现人脸图像识别价格比较低廉。  

  DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

  1 人脸检测的算法

  人脸检测系统可以分为人脸检测和人脸识别模块,这两大模块又进一步可划分为人脸检测与定位、规范化、特征提取和人脸识别4个模块。其详细结构,如图1所示。

人脸识别算法流程

  1.1 人脸的定位

  通过已获得的样本来判断人脸的位置,选取合适的人脸,截取出做样本是重要的步骤。首先确定人眼的坐标(x1,y1)和(x2,y2),由此可间接得到正方形人脸的左上顶点和右下顶点的坐标,设其分别为(X1,Y1)和(X2,Y2),计算方法如下:

公式

  式中,RH和RV均为经验常数,在设计过程中将其分别取值为2.0和3.5。如此可在原图中得到人脸的区域座标,其尺寸随眼距Widtheyes的大小而变化,作为PCA的输入,要求输入样本的维数相同,所以必须对图片进行归一化处理。

  1.2 人脸特征提取

  特征脸分类的方法是将一幅图像投影到一个特定“脸空间”的一个点。这个“脸空间”由一股互相正交的向量组成。这些向量便是表征各个人脸聚类的重要组成部分。不同人脸的图片在此空间的相差较远,相同人脸的不同图片在此空间上的投影相距较近。可以使用PCA的方法为整个人脸识别系统打下基础。

  第一步,采集到N个样本用作训练集X,求出样本平均值m,如式(1)所示

公式

  其中,xi∈样本训练集X=(x1,x2,…,xN)。

  第二步,求出散布矩阵S,如式(2)所示

公式

  根据PCA的基本原理,必须求出散布矩阵的特征值λi和对应的特征向量ei。其中,ei便是主分量,且其对应的特征值的大小代表它包含信息的多少。所以需要将特征值从大到小依次排列λ1,λ2,…。如图2所示,左边是由λ1对应的特征向量重建的人脸图像,右边是由λ100对应的特征向量重建的图像,如果将其应用到系统中,对识别是不利的。

重建人脸图像

  假设取出p个值,λ1,λ2,…,λp可以确定出脸空间E=(e1,e2,…,eP),在此脸空间上,训练样本X中,每个元素投影到该空间的点可以由式(3)得到:

公式

  由上式得到的是将原向量经过PCA降维后的p维向量,下一步将其输入KNN分类器进行分类。

  1.3 KNN分类器的构建

  KNN的实现分训练和识别两步。训练时,把每类样本降维后的结果作为KNN的输入。如图3所示,圆圈表示待识别数据所处的位置,选择K值为3时,选中实线圆中的3个数据,识别结果为三角形代表的类;选择K值为5时,选中虚线圆中的5个数据,识别结果为正方形代表的类。

KNN分类器

  2 系统硬件设计

  系统设计时选用DSP6713,这是TI公司生产的C6000系列的浮点处理器,其采用了VLIW体系结构,指令运行的等效周期数较低,运行速度较快。数据暂存使用CPLD和SRAM实现。设计系统构成,如图4所示。

 

系统硬件设计

  2.1 TVP5147芯片

  系统上电时,DSP首先对TVP5147初始化,其通过I2C总线实现,DSP自带I2C总线控制器。芯片I2C地址是由芯片引脚I2CA的电平控制的,如该引脚接高电平,则I2C写地址为0xB8,否则为OxBB。

  假如系统初始化为从Y[9..O]端口输出10位的YUV混合视频数据,则可知道其输出符合以下时序,如图5所示。

TVP5147输出时序

  图中第一行为DATACLK信号,其为TVP5147芯片提供的数据时钟信号,第二行为数据Y[9…0],当每一行图像开始之前,会有4个SAV信号,如图5所示,数据是YCbCr格式,每个像素点的数据为4个数据组成,一次为Cb,Y,Cr,Y。而由图5中可以看出AVID信号为高电平时,表明当前的数据为有效数据。这为CPLD采集有效数据提供了参考信号。同时TVP5147芯片还输出FID信号,该信号为奇偶场指示信号。

  2.2 CPLD读写SRAM

  存储器选择了DS1265AB,它是SRAM存储器,具有存储速度快的优点,并能够在系统掉电时保存数据10年。DS1265具有1 MB的容量,20根地址线,8根数据线,另有WE,OE,CE信号输入端。

  CPLD选用EPM7128具有价格便宜、计数频率高等优点。将存储器SRAM接到CPLD的IO引脚上,配合时序便能达到对SRAM读写的要求,原理图,如图6所示。

CPLD与SRAM连接示意图

  编写CPLD程序使得输出时序满足SRAM的存储要求,当然对于设计的具体要求,利用两片SRAM分别存储奇偶场的数据,SRAM的切换是由奇偶场信号FID控制多片74HC245实现的,详细过程,如图7所示。当FID处于高电平时,此时M1和M4使能,此时CPLD将地址信号CPLDaddr输入SRAM1中,DSP将地址信号DSPaddr输入至SRAM2中,同时M6和M8使能,由图中可以看出,此时CPLD正向SRAM1写入数据,而DSP正从SRAM2中读取数据,同时M10使能,CPLD的信号CPLDctl控制SRAM1的读写,而DSP的信号DSPctl控制SRAM2的读写,当FID转为低电平时,正好将SRAM1和SRAM2实现了交换。所选择的SRAM数据位为8位,当放弃Y0和Y1位后,降低了图像数据的精度,但对识别效果的影响却很小,然后随着DATACLK每次上升沿的来临,CPLD将地址单元加1,这样实现每一场数据的写入。

SRAM切换电路图

  2.3 图像输出系统的设计

  系统设计时为了减轻负担,采用电视监控的方法,将小型电视机通过TI公司的视频编码芯片THS8135连接至DSP总线,将得到的YUV数据通过THS8135直接输出至电视AV的视频接收端,并且通过DSP可以将一些信息显示到电视屏幕上,这样使得识别的过程更加人性化。

  3 系统软件设计

  3.1 DSP的图像预处理

  TVP5147芯片输出的图像数据并非RGB格式,而是以YUV格式输出的。需要通过DSP处理器转换成RGB格式,才能进行图像的预处理,转换公式如式(4)所示

公式

  DSP将图像数据读入内存空间,然后对其进行运算,将得到的RGB分别放到对应的存储单元,并算出灰度值Gray,运算公式如式(5)所示

公式

  将最后得到的灰度值存放到对应的数组当中。每张图片由两场图片构成,所以完整的图片分辨率为720×576。但是对于系统本身无需对其每一个像素都进行转换,所以截取其中320×240进行存储,这样每场的分辨率为320×120。

  3.2 人脸判别流程

  将得到的320×240的图片经过人脸的检测后,将截取人脸的部分作为人脸样本。设计时,人脸的所有样本都将在显示器上显示出来,降低了人脸错误检测的可能,一定程度上提高系统的准确性。

  人脸的样本分辨率为24×24,作为576维的一维向量输入至PCA。图8(a)为计算PCA投影矩阵的流程图,图8(b)为KNN分类器的工作流程图,其中训练样本经过PCA投影后的数值,可以作为初始化时的计算,也可存储于掉电非易失介质中,如Flash存储器中,可以提高设备的运行效率,降低运算量。

 

PCA与KNN流程图

  如图8所示,KNN分类器可以判断最接近的分类,但是并不能拒绝分类,于是产生了任何人的脸都将被分到内置样本集的一类中。这样的分类方式是不可取的,所以必须加入是否拒绝的判定,流程图如图9所示。

人脸分类流程图

  如流程图中显示,当样本点经过PCA降维后,输送至KNN分类器进行分类,先求出待测点与K类标号的样本点的欧氏距离之和sum。定义两个阈值a和b,如果sum<a值则判定为第一类;如果sum>b值则判定为拒绝类;如果sum介于a和b值之间,则引入精度控制量accuracy,计算出sum与a的差值,如若小于精度控制量accuracy,则判定为第K类,否则拒绝分类。

  4 试验结果

  实验中,选定a的值为12 400,b的值为16 200,这两个值的确定需要进行大量的实验,从中找出规律。x的值的大小直接影响识别的效果,文中分别选取x=4和x=5进行了测试。

  (1)x=4时:程序在测试可识别库中的分属12个人的36幅人脸图像时,正确识别出其中的33幅,其余3幅图像均被判否,0个判错。程序在测试不可识别库中的分属3个人的33幅人脸图像时,22幅图像被成功判否,11幅被误判;

  (2)x=5时:程序在测试可识别库中的分属12个人的36幅人脸图像时,正确识别出其中的25幅,其余ll幅图像均被判否,O幅判错。程序在测试不可识别库中的分属3个人的33幅人脸图像时,28幅图像被成功判否,5幅被误判。

  分析上面的实验数据可知,x=4时,可识别库的识别率为91.6%,不可识别库的判否率为66.7%。x=5时,可识别库的识别率为69.4-%,不可识别库的判否率为84.8%。应用于不同的场合时,应选择不同的x值,当要求尽可能拒绝外来人脸时,可选x值为5,当要求尽量识别已知人脸时,可选x值为4。

  5 结束语

  此人脸识别系统,没有采用USB摄像头作为图像采集设备,而以通用视频标准的模拟摄像头取而代之,因此用户在摄像头选择的时候更加自由。本系统经过了运行检验, 具有速度快, 成本低, 可靠性高, 扩展性好等优点, 具有很广的应用前景。




关键词: 人脸     识别     系统    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]