基于Nios II软核的人脸目标实时跟踪系统
2015-12-18金纯
金 纯
(西安电子科技大学物理与光电工程学院,陕西西安 710071)
随着智能监控系统的发展,人脸跟踪技术在视频处理、安全监控、人机交互等方面发挥着重要作用。由于人脸本身属于复杂多变的非刚体模式,在运动过程中,其大小和形状都会发生变化,因此实现实时且可靠的跟踪具有一定挑战性。经典算法有,基于特征匹配的人脸跟踪,如姚鸿勋[1]等人提出基于彩色图像的色系坐标变换的面部定位与跟踪算法;基于区域匹配的人脸跟踪,如Harihara将运动目标分割成16×16块,通过运动估计与块匹配方法实现人脸跟踪;基于模型匹配的跟踪,如Gregroy D[2]提出基于有效运动区域的几何参数模型跟踪方法。
随着可编程逻辑阵列的快速发展,使得FPGA在具备灵活硬件可配置能力的同时还具备微处理器丰富的软件资源和良好的人机交互能力,进而利用Nios II软核处理器完成人脸目标跟踪成为可能,进一步提高了系统设计的可重构性,缩短了开发周期。
本文研究的人脸目标实时跟踪采用基于FPGA作为主处理器配置外设模块,相关的算法软件移植于Nios II嵌入式软核处理器。结合帧间差分算法预测当前帧人脸目标位置,同时考虑到人脸目标由于光照、形态变化、远近距离等因素,采用改进的序贯相似性(SSDA)算法能较好地实现实时跟踪。该系统体积小、功耗低,在实时人脸检测跟踪方面有较好的应用前景。
1 系统硬件设计
1.1 硬件系统架构
按照人脸跟踪系统的功能要求,整个系统主要由视频采集,视频缓存,视频输出,人脸跟踪算法以及LCD显示5个模块组成;在不影响系统功能的基础上,可以添加相关通信模块,便于后续与其他设备的对接,主要框架如图1所示。
系统由CCD摄像头采集到模拟PAL制视频信号,经过TI公司的TVP5150视频解码芯片进行同步分离、A/D转换、滤波,并压缩成8位BT.656数字视频数据流输入到Altera公司EP3C40系列的FPGA主控芯片,将其分成两路:一路经过系统中的Nios II软核处理器相关算法做自动跟踪处理;另一路通过采集和显示模块将视频格式转换成RGB色彩空间通过VGA显示于LCD显示器用来观察系统跟踪情况。
图1 系统硬件结构图
1.2 Nios II软核处理器的设计
基于32位RISC嵌入式软核Nios II,拥有灵活的外设配置、地址映射以及终端设置,硬件的可重构性等优点,用户将不局限于一般的处理器技术,而是根据自己的标准裁减和定制处理器,按照需要选择合适的外设、存储器和接口,轻松集成DSP,用户逻辑等专有功能。
Nios II处理器负责人脸目标位置预测、跟踪等算法以及系统状态的控制。通过Alvalon总线访问通信控制器来获取候选人脸目标和模板大小等信息,分析确定当前系统的工作状态,并将工作状态等参数写入通信控制器。若存在人脸目标,则输出;若不存在,则等待读取逻辑功能模块对下一帧图像的处理结果。在确定模板是否更新后,执行人脸目标预测算法,逻辑功能电路确定待匹配区域大小[3]。
Nios II处理器接受逻辑功能电路输出的人脸目标信息,对其进行处理,并将最终位置以及系统状态等信息传递给逻辑功能模块,彼此间通过Avalon总线进行通信。Nios II处理器作为主端口,控制着数据的宽度和方向;而逻辑功能电路作为通信的从端口,等待Nios II处理器读取数据后接受Nios II处理器发送的数据。Avalon总线将接受到的命令编码为控制信号,通过接口发送给逻辑功能电路。
2 系统算法设计
人脸的实时跟踪是对给定的动态图像序列或静态图像序列进行分析,从中检测并提取出有用的特征信息,确定人脸的位置和状态,并预测其运动轨迹和大小变化的过程。系统算法是决定整体性能的关键因素之一,算法的选取不仅要考虑其性能,同时还需要考虑算法的复杂度、运算量以及实时性等实际因素。本系统主要为帧间差分检测算法和改进SSDA跟踪算法。
2.1 帧间差分算法
帧间差分法是将图像序列中连续两帧或三帧图像对应的像素灰度值进行差分运算,在差分图像中,灰度不发生变化的部分被剪掉。由于运动目标在相邻两帧中的位置不同,且与背景灰度有所差异,所以两帧相减后就使运动目标突显,从而提取出图像中的运动区域,并大致确定运动目标在图像中的位置[4]。
帧间差分法是基于目标的运动,体现在图像序列变化上,以直接比较图像序列相邻帧对应像素点发生的相对变化为基础进行目标检测,其原理如图2所示。
首先,利用式(1)计算出第k帧图像与第k-1帧图像之间的差值,得到差分后的图像Dk
对人脸运动目标的视频序列进行差分后,再对差分图像进行二值化处理,逐点检测判断背景与人脸目标。设定阈值T,当差分值<T时,判断为背景像素;反之为人脸目标像素。二值化公式如式(2)所示
如果检测结果没有出现人脸,则根据前一帧图像中是否有人脸以及人脸大小和位置,来判断当前帧情况。如果前一帧图像存在人脸,而当前帧运动区域检测没有,由于人体运动在时间上的连续性,且帧间时间较短,可以判断在但前帧中人脸依然存在,与前一帧相比,在大小和位置上几乎没有变化。
帧间差分法受光线变化的影响较小,能较好地适应场景中光照的变化;但受运动目标速度的影响较大,只能检测相对运动的目标,很大程度上依赖目标的运动速度。如果运动速度过快,目标选取的时间间隔过大,就会造成两帧之间无覆盖区域,而无法分割出运动目标。
图3为部分序列差分效果图,虽然检测出了完整的人脸目标,但存在前景内部空洞严重的现象。这是由于人脸目标运动速度缓慢时,过渡覆盖导致的。
图3 帧间差分法效果图
2.2 改进SSDA跟踪算法
传统的模板匹配算法如图4所示,将大小为m×n目标模板g在当前帧图像f的带匹配区域内按照一定的偏移量进行移动匹配;然后利用相似度测量准则计算在不同位置的相似度,相似度最大值所对应的位置为目标位置[6],如式(3)所示,其中 f(x0+i,y0+j)为图像(x0+i,y0+j)处得像素值,g(i,j)表模板在(i,j)处像素值。但由于算法运算量大,实时性差。为降低运算量,Barnea提出了序贯相似性检测算法(SSDA),对相似度量值进行累加,预先设定阈值,超过阈值则该点对应的区域为非匹配点,反之作为候选点保留。
图4 相关匹配示意图
本文对经典的SSDA算法进行改进[8],使其能对环境具有良好的适应性,基本原理是对人脸模板g在像素点(i,j)处赋予一个权值 c(i,j),如式(4)所示。对于人脸目标的特征区域,像素点对应的权值尽可能大;而在目标的非特征区域,像素点的权值尽可能小。非特征区域的变化对相似度量值v的贡献较小,只要图像序列中的特征匹配区域未发生明显变化,人脸目标就不会丢失,鲁棒性得到较好的提高
3 实验结果
采用图像大小为720×576的视频序列,通过Nios II软核系统,改变焦距以及人脸目标形变等情况验证系统的可实时性。图5(a)~图5(c)为不同焦距下正脸目标跟踪效果,可以明显看到虽然人脸目标大小不同导致检测跟踪区域不同的特征点,但都能达到理想的跟踪效果。图5(d)和图5(e)为侧脸跟踪效果,对待检测区域中侧脸权值增大,其他部分权值减小,由于权值是认为验证选取,本例中部分权值过大,导致跟踪框出现漂移。图5(f)基本人脸目标已丢失,结合改进的SSDA算法,通过设置合理的权值,结合帧间差分法,在静态目标下能实时跟踪相关目标,具有鲁棒性和实时性。
图5 实验结果
表1为在Maltab7.8下系统算法的仿真结果,采用140帧序列图,比较了传统模板匹配,SSDA,以及改进SSDA的3种跟踪算法,可以看出,无论在跟踪帧数,还是在算法时间上,改进的SSDA算法都具有明显优势,但误差率依然存在,主要由于特征区域权值是通过多次经验选择,且还得进行验证。后续可以在算法中改进实时自动设置权值。
表1 算法比较
[1]姚鸿勋,刘明宝,高文.基于彩色图像的色系坐标变化的目标定位与跟踪法[J].计算机学报,2000,23(2):158-165.
[2]Gregory D Hager.Efficient region tracking withparametric models of geometry and iiiumination[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1998,10(20):1025-1039.
[3]吴长江,赵不贿,郑博.基于FPGA的动态目标跟踪系统设计[J].电子技术应用,2010,27(3):45 -47.
[4]林雯.新型基于帧间差分法的运动人脸检测算法研究[J].计算机仿真,2010,27(10):238 -241.
[5]郑青碧.基于图像的人脸检测方法综述[J].电子设计工程,2014,22(8):108 -110.
[6]宋刘非,郑丽.一种图像相关匹配算法的改进及实现[J].光电技术应用,2013,28(4):61 -64.
[7]党晓军,伊俊文.一种基于模板匹配的运动目标跟踪方法[J].计算机工程与应用,2010,46(5):173 -176.
[8]刘晓光,陈曦,陈政伟.基于图像灰度的SSDA匹配算法[J].航空计算技术,2010,40(1):54-57.