基于S3C2440的人脸识别平台的设计
2014-05-10李鹏飞许金凯韩文波宋鸿飞
李鹏飞,许金凯,韩文波,宋鸿飞
(长春理工大学 光电工程学院,吉林 长春 130022)
1 引 言
随着近年图像数字化技术的深入发展,在安防、门禁、监控等诸多应用领域都开始使用生物识别技术对身份进行验证,特别是人脸识别技术,具有无需接触、识别准确、无法造假的优点,发展非常迅速。
目前国内智能人脸识别平台大都使用FPGA用于控制CCD摄像头进行视频采样、利用视频解码芯片信号进行AD转换,用DSP器件处理采集的数据,通常成本都比较高。
本文利用Samsung公司的S3C2440处理器和OmniVision公司的OV9650摄像头搭建了硬件实验平台[1-5]。
S3C2440微处理器是一款由Samsung半导体公司推出的高性能、低功耗、高集成度,并具有工业级温度范围和性能的微处理器,具有工业级温度范围,主频高达533MHz,具有数字摄像头接口,支持更多分辨率液晶屏,无需外围电路的触摸屏接口。
OV9650是OmniVision公司的COMS摄像头,分辨率1 300×1 028,像素130万。CMOS感光器是一种可记录光线变化的半导体。其制造技术和一般大规模集成电路芯片制造技术一样,利用CMOS上共存着PN节互补所产生的电流即可被处理芯片纪录和解读成图像,成本很低。
程序开发使用通用性很强的C语言,并利用成熟的Harris角点提取算法进行人脸的检测,同时开启Cache加速程序,以较低的成本实现了对人脸图像的实时采集—匹配。
2 总体设计
平台的硬件部分由S3C2440微处理器、OV9650摄像头和480×272分辨率的TFT电阻触屏组成。总体硬件设计如图1所示。
图1 总体硬件设计Fig.1 Design of overall hardware
总体软件设计的框架主要包括人脸检测、特征点生成、数据库图像匹配3部分,算法流程如图2所示。
图2 总体软件流程Fig.2 Process of overall software
3 硬件驱动设计
硬件驱动部分主要包括显示屏的驱动和摄像头的驱动两部分。
3.1 显示屏驱动设计
为了把采集到的人脸视频图像显示在液晶显示屏上,需要设置处理器的显示接口时序,LCD一般需要3个时序信号:VSYNC、HSYNC和VCLK。
(1)VSYNC是垂直同步信号,在每一个帧(即一个屏)的扫描之前,该信号就有效一次,由该信号可以确定LCD的场频,即每秒屏幕刷新的次数(单位 Hz)。
(2)HSYNC是水平同步信号,在每一行的扫描之前,该信号就有效一次,由该信号可以确定LCD的行频,即每秒屏幕从左到右扫描一行的次数(单位 Hz)。
(3)VCLK是像素时钟信号。相互关系如图3和图4所示。
图3 LCD时序信号关系1Fig.3 Relationship of LCD timing signal 1
LCD的时钟源是HCLK,通过寄存器LCDCON1中的CLKVAL可以调整VCLK频率大小,相互关系为:
VCLK=HCLK/[(CLKVAL+1)×2]
图4 LCD时序信号关系2Fig.4 Relationship of LCD timing signal 2
同时在每一帧时钟信号中,还会有一些与屏显示无关的时钟出现,包括在HSYNC信号先后会有水平同步信号前肩(HFPD)和水平同步信号后肩(HBPD)出现,在VSYNC信号先后会有垂直同步信号前肩(VFPD)和垂直同步信号后肩(VBPD)出现,在这些信号时序内,不会出现有效像素信号,而且HSYNC和VSYNC信号电平要保持一定的时间,分别叫做水平同步信号脉宽HSPW和垂直同步信号脉宽VSPW,这段时间也没有有效像素信号。这些值是通过寄存器LCDCON2、LCDCON3和LCDCON4来配置,只要把这些值配置成与所要驱动的LCD中相关内容的数据一致即可。
3.2 OV9650驱动设计
由于S3C2440提供了一个摄像接口,要实现其功能,需要利用SCCB(串行摄像控制总线)对OV9650内部寄存器配置[6-10]。
SCCB由两条数据线组成:一个是用于传输数据信号的SIO_D,另一个是用于传输时钟信号的SIO_C。SCCB的传输数据时一次要传输9位数据,前8位为有用数据,而第9位数据在写周期中是不需关心的,在读周期中是空位。
SCCB数据传输的基本单元为相,即一个相传输一个字节数据,一次只能读或写一个字节。SCCB包括3种传输周期,即3相写传输周期(3个相依次为设备从地址,内存地址,所写数据),2相写传输周期(两个相依次为设备从地址,内存地址)和2相读传输周期(两个相依次为设备从地址,所读数据)。在写操作时,应用3相写传输周期;在读操作时,依次应用2相写传输周期和2相读传输周期,如图5所示。
S3C2440摄像模块有两个相互独立的DMA通道:C通道(编解码通道)和P通道(预览通道)。C通道主要是存储用于编解码的YCbCr图像数据,P通道主要是存储用于视频显示的RGB图像数据。平台是把OV9650采集到的视频信息实时显示在LCD上,因此使用P通道。
图5 SCCB传输时序Fig.5 SCCB transfer timing
使用P通道前首先要进行相关的设置,S3C2440需要在内存中各开辟四块乒乓存储区域,寄存器CIPRCLRSA1-4分别用于表示这四块内存的首地址。同时使用DMA传输数据,还要设置DMA传输方式,即一次传输多少个字节,还需要设置在完成每一帧视频采集后,会触发一个视频中断。
其次设置视频分辨率。由OV9650采集到的原始视频分辨率为640×480,把这两个值分别放入输入源格式寄存器CISRCFMT的第16位至第28位,和第0位至第12位内即可。
把实际显示的视频称为目标,目标的分辨率即目标水平像素数和目标垂直像素数,这个分辨率就是平台所用的4.3寸LCD分辨率,为480×272,把这两个值分别放入预览DMA目标图像格式寄存器CIPRTRGFMT的第16位至第28位,和第0位至第12位内即可。另外还需要把这两个值的乘积放入预览缩放目标面积寄存器CIPRTAREA内。源分辨率和目标分辨率通常不一致,还需要设置偏移量,即水平偏移量和垂直偏移量,应该把这两个值分别放入窗口偏移寄存器CIWDOFST的第16位至第26位,和第0位至第10位内,其中这个寄存器的第31位用于控制是否需要设置偏移量,当偏移量为0或不需要设置偏移量时,这一位为0,否则为1,在本设计中该值为1。
4 人脸检测与识别
目前的人脸识别方法都是基于二维图像的,通过检测人脸并定位面部关键特征点确定人脸的主要区域,经过预处理之后,通过测量眼睛、颧骨、下巴等之间的间距来进行人脸特征的认证,并与数据库中存储的人脸图像进行比对,完成最终的分类。特征点提取算法使用已经广泛使用的Harris算法,该算法成熟可靠,运算量较小,利用该算法提取特征点的分布如图6所示。
图6 人脸特征点和特征区域的分布Fig.6 Distribution of facial feature points and characteristic region
为了检测图像特征区域是否匹配,使用了基于图像灰度值匹配的归一化互相关匹配法算法。该算法是通过计算原有图和新采集图的归一化互相关值来确定匹配程度,当原有图和新采集图所计算出的互相关值R(u,v)最大时,就认为此原有图就是与新采集图是相匹配的图像,归一化互相关匹配算法的计算公式如下:
通常,这种算法需要对图像的每个像素进行灰度运算,故运算量比较大,处理速度比较慢,为了加快判断速度,在算法中,使用了图像的中心区域来代替整帧图像,减小了计算量;在硬件上为了加快显示程序的执行速度,开启处理器的Cache模块。
Cache也称作高速缓存,是基于程序访问的局部性,在内存和处理器通用寄存器之间设置一个高速的、容量相对较小的存储器,把当前正在执行指令附近的一部分指令或数据从内存调入这个存储器,供处理器在一段时间内使用,可以极大的提高程序的运行速度。
平台的实测结果如图7所示,红色箭头处是OV9650摄像头,可以看出,实验平台能够识别出数据库中已有的人脸。
但该平台识别时间较长,还有进一步提升的潜力。
图7 平台的实测结果Fig.7 Actual test result of platform
5 结 论
通过实验验证,本系统实现了低成本人脸识别的解决方案,系统采用S3C2440处理器驱动OV9650和TFT液晶屏,把采集到的人脸图像与数据库中已有的数据进行匹配,较好地实现了设计要求。但是由于图像运算量比较大,所以处理速度比较慢,可以使用专用的DSP处理器加速图像运算以取得更好的效果。
[1] 但永平,彭红涛,王东云,等.EDMA在图像数据快速传输中的应用[J].液晶与显示,2013,28(1):99-104.Dan Y P,Peng H T,Wang D Y,et al.Application of EDMA in rapid transmission of image data[J].Chinese Journal of Liquid Crystals and Displays,2013,28(1):99-104.(in Chinese)
[2] 赵星,王芳,杨勇,等.集成成像三维显示系统显示性能的研究进展[J].中国光学,2012,5(3):209-221.Zhao X,Wang F,Yang Y,et al.Research progress of display performance of integral imaging three-dimensional display system [J].Chinese Optics,2012,5(3):209-221.(in Chinese)
[3] 姜漫,吴志勇,曹腾.基于SOPC技术的 VGA字符和图像显示系统[J].液晶与显示,2013,28(1):120-126.Jiang M,Wu Z Y,Cao T.Characters and images VGA display system based on SOPC technology [J].Chinese Journal of Liquid Crystals and Displays,2013,28(1):120-126.(in Chinese)
[4] 邓春健,安源,吕燚,等.显示信息高速串行传输的差错控制[J].光学精密工程,2012,20(3):632-642.Deng C J,An Y,Lv Y,et al.Error control of high speed serial display data transmission[J].Optics and Precision Engineering,2012,20(3):632-642.(in Chinese)
[5] 刘希佳,陈宇,王文生,等.小目标识别的小波阈值去噪方法[J].中国光学,2012,5(3):248-256.Liu X J,Chen Y,Wang W S,et al.De-noising algorithm of wavelet threshold for small target detection[J].Chinese Optics,2012,5(3):248-256.(in Chinese)
[6] 王健,陈洪斌,周国忠,等.改进的Brenner图像清晰度评价算法[J].光子学报,2012,41(7):855-858.Wang J,Chen H B,Zhou G Z,et al.An Improved brenner algorithm for image definition criterion[J].Acta Photonica Sinica,2012,41(7):855-858.(in Chinese)
[7] 张传胜,郑寒雨,邓江东.基于SOPC的通用液晶触摸屏控制器的设计[J].液晶与显示,2013,27(5):638-641.Zhang C S,Zheng H Y,Deng J D.Control unit design for tft touching screen based on SOPC [J].Chinese Journal of Liquid Crystals and Displays,2013,27(5):638-641.(in Chinese)
[8] 程少园,胡立发,曹召良,等.液晶自适应光学在人眼眼底高分辨率成像中的应用[J].中国激光,2009,36(10):2524-2527.Cheng S Y,Hu L F,Cao Z L,et al.Application of liquid crystal adaptive optics system on human eye fundus imaging with high spatial resolution[J].Chinese Journal of Lasers,2009,36(10):2524-2527.(in Chinese)
[9] 熊根良,陈初海,梁发云,等.物理性人-机器人交互研究与发展现状[J].光学精密工程,2013,21(2):356-370.Xiong G L,Chen C H,Liang F Y,et al.Research and development statue of physical human-robot interaction[J].Optics and Precision Engineering,2013,21(2):356-370.(in Chinese)
[10] 韩瑞雨,王晋疆,聂凯,等.不同对比度下自适应的自动调焦新算法[J].光子学报,2012,41(2):222-227.Han R Y,Wang J J,Nie K,et al.Adaptive autofocus technique under different contrast[J].Acta Photonica Sinica,2012,41(2):222-227.(in Chinese)