一种基于计算机视觉的手指特征识别算法研究及其FPGA实现

冯清娟+何志宽



摘 要: 为了提高视频图像中手指特征识别的精度和速度,提出一种基于矩形模板的动态阈值算法。该算法采用矩形模板平滑图像,用灰度阈值法提取目标边缘,实现对手指特征的准确识别。Matlab仿真结果表明,该算法受环境噪声影响较小,能清晰准确地分割出手指边缘。在FPGA平台上设计了一套基于计算机视觉的手指特征识别系统,并对该系统的实时性、手指识别精度等性能进行了测试。测试结果表明,该系统的运行速度与摄像头摄取图像的速度基本同步,可满足系统对实时性要求。系统对手指位置识别的坐标偏差约为3个像素,基本满足系统对识别精度的要求。
关键词: 计算机视觉; 手指特征识别; 动态阈值算法; 矩形模版
中图分类号: TN911?34; TP37 文献标识码: A 文章编号: 1004?373X(2017)12?0113?04
Abstract: In order to improve the accuracy and speed of the finger feature recognition in video image, a dynamic threshold algorithm based on rectangle template is proposed. The rectangle template is used in the algorithm to smooth the image, and the gray threshold method is used to extract the edge of the target to recognize the finger feature accurately. The Matlab simulation results show that the algorithm is lightly influenced by environmental noise, and can segment the edge of the finger clearly and accurately. A finger feature recognition system based on computer vision was designed on FPGA platform. Its real?time performance, finger recognition accuracy and other performances were tested. The test results show that the running speed of the system is synchronous with the speed of capturing the image by camera, which can meet the real?time requirement of the system. The coordinates deviation of the finger position recognized by the system is about 3 pixels, which can basically meets the accuracy requirement of the system.
Keywords: computer vision; finger feature recognition; dynamic threshold algorithm; rectangle template
隨着科学技术的飞速发展,人与计算机之间的交互活动越来越密切,并逐渐成为人们日常生活的重要组成部分。传统触摸屏是现阶段一种最常见,也是最重要的人机交互方式,其是通过一种附加在显示器表面的透明介质,依赖使用者的手指触摸该介质来实现对计算机的输入控制[1?2]。目前,这种触摸屏技术已经相当成熟,但是,技术上不容易做到大尺寸,且成本相对较高,也易于破损。为了突破传统触摸屏这种人机交互方式的局限,把任何成像平面变成可用手指进行交互的系统,本文提出了一种基于计算机视觉的手指特征识别算法,并在FPGA平台上建立了一套基于计算机视觉的手指特征识别硬件系统。这种基于计算机视觉的手指特征识别方法可为基于视觉的人机互动提供一种新的技术解决途径。其与传统触摸屏的区别在于,不需要在成像屏幕上安装任何特殊介质,使用寿命得到大幅延长,应用范围有了很大扩展。
1 图像采集平台
本文所采用的图像采集平台如图1所示,在任何与计算机连接的显示设备(如投影屏幕、等离子电视等)的左上角、右上角安装两个摄像头,通过这两个摄像头便可确定手指在屏幕上的二维坐标信息(x1,x2)。然后,将此坐标点传至计算机,并与Windows系统的鼠标程序关联即可实现人机交互功能。图2是图像采集平台的侧视图。其中虚线框表示摄像头视野中系统需要处理的区域,即手指出现的区域。
2 手指特征识别算法及仿真
在系统实现过程中,如何从摄像头所拍摄的画面中准确地识别并提取出手指信息是其难点之一。在目前的图像处理技术中,用于识别背景图案中目标物体的算法很多,本文在分析基于色彩聚类的肤色识别算法的基础上,结合课题特殊需求,提出一种基于矩形模板的动态阈值算法,并在Matlab中对上述算法的处理效果进行了仿真。
从图像采集平台可以看出,本系统只关心距屏幕很近的小视野内是否出现区别于背景的目标物体。因此,只需从摄像头拍摄的图像当中截取一部分,如图3中的小矩形框所示。
2.1 基于色彩聚类的肤色识别算法
肤色是人体区别于其他物体的一个重要特征,人体肤色特征不受位置、角度、大小等因素影响,具有较强的稳定性。因此,本文首先选定基于色彩聚类的肤色提取识别算法进行研究。在色彩聚类方法中,Anil K.Jain的Cb,Cr椭圆聚类方法最为典型[3?4]。采用非线性分段肤色分割得到的肤色区域在Cb,Cr空间中近似于椭圆,如下:
由图5可知,利用该算法分割手指信息的效果尚可,能从比较友好的环境中迅速准确地识别出手指信息。图6为利用椭圆聚类肤色分割算法对从图像采集平台读取图像的手指识别效果。可见,该算法在普通环境下对手指的识别效果良好。但当屏幕上的颜色影响手指肤色时,该算法的识别能力就会有所降低。可见,该算法对皮肤颜色的纯度要求较高,适用范围受限。图7为屏幕出现大面积蓝色时对手指识别造成的影响效果。
2.2 基于正方形模板的动态阈值算法
基于正方形模板的动态阈值算法,即采用灰度阈值法,用正方形模板平滑图像[5?6]。图8(a)是3×3模板动态阈值算法平滑图像的过程。
应用基于3×3模板的动态阈值算法对原图4进行边缘提取的仿真效果如图9(a)所示。可见,应用3×3模板可以提取出目标物体的边缘,但不够清晰。虽然可以通过增大模板取得比较理想的效果(图9(b)为采用基于101×101模板的动态阈值算法的处理效果),但会使计算量剧增,同时也缩小了模板所能完全覆盖的范围,使图像边缘产生无效的白色区域。
2.3 基于矩形模板的动态阈值算法
根据课题实际需要,即所要处理的目标区域为长方形窄条区域(如图3所示),本文提出一种基于矩形模板的动态阈值算法。该算法与基于正方形模板算法的区别在于,平滑图像时所用的模板为窄条形,如3×5模板,3×15模板,3×41模板等。图8(b)是3×9模板动态阈值算法平滑图像的过程。
图10给出了采用基于3×9模板、3×14模板、3×81模板、3×101模板动态阈值算法对原图4进行手部边缘提取的仿真效果。由仿真效果可知,基于矩形模板的动态阈值算法在模板取值为3×9的情况下,便能够清晰提取出目标物体的边缘。而且,随着模板取值的增加,目标物体边缘的提取效果更加清晰准确。与基于正方形模板的动态阈值算法相比,基于矩形模板的动态阈值算法计算量较小,节约了系统的计算资源。
3 基于FPGA的手指特征识别算法的系统测试
为了验证本文所提出的基于矩形模板的动态阈值算法能否满足屏幕交互系统的整体要求,本文通过编写软件程序在FPGA开发板上对这种算法进行了硬件实现和系统测试。
3.1 硬件实现
本文所采用的硬件实现系统主要是基于美国Altera公司生产的型号为EFA?CY1C12的“红色飓风”(Red Cyclone)系列FPGA开发板,并另外集成了用Ommvison公司的型号为OV9655的CMOS数字摄像头,以及ISSI公司的型号为IS61LV25616AL的SRAM存储器[7?10]。最终搭建的硬件系统如图11所示。
3.2 系统测试
本文主要对系统的实时性、手指提取精度、资源占用情况等影响系统运行的重要技术指标进行了测试。
(1) 实时性
OV9655摄像头在1 280×1 024分辨率下,能提供15 f/s的图像采集速率,课题所设计的软件程序可以在一帧图像的处理时间内完成了数据的采集、手指边缘的识别等运算,实现了系统执行速度与摄像头拍摄速度的同步,达到了系统对实时性要求。
(2) 手指识别精度
由于课题在软件设计过程中编入了图像采集防抖动处理程序,提高了图像采集的稳定性,也提高了手指识别的精度。经过测试,本系统得到的手指位置信息的坐标偏差为3个像素,基本满足大屏幕交互系统对识别精度的需求。
(3) 资源占用情况
从Quartus Ⅱ的编译报告中可以看出,本系统的软件运行已占用FPGA的9 702个逻辑单元,占逻辑单元总数的80%。可见,该硬件系统的FPGA运算资源基本能满足系统的实际需要。
4 结 语
本文通过对基于矩形模板的动态阈值算法的研究和基于FPGA的手指特征识别硬件系统的实现,建立了一套基于计算机视觉的手指特征识别系统。该算法受环境噪声影响较小,能清晰准确地分割出手指边缘,且随着矩形模版取值的增大,算法的识别效果会更加良好。该系统的实时性、手指识别精度及资源占用情况均可满足系统要求。这种基于计算机视觉的手指识别方法成本低、灵活性好,为基于视觉的人机交互提供了一种新的技术途径。
参考文献
[1] 吕明,吕延.触摸屏的技术现状、发展趋势及市场前景[J].机床电器,2012,39(3):4?7.
[2] 陈康才,李春茂.电阻式触摸屏两点触摸原理[J].科学技术与工程,2012,12(18):4525?4529.
[3] MAITRE H.现代数字图像处理[M].北京:电子工业出版社,2006:79.
[4] 帕科尔,景丽.图像处理与计算机视觉算法及应用[M].2版.北京:清华大学出版社,2014:104.
[5] GONZALEZ R C,WOODS R E,EDDINS S L.数字图像处理的Matlab实现[M].2版.北京:清华大学出版社,2013:301.
[6] RUSS J C.数字图像处理[M].6版.北京:清华大学出版社,2014:216.
[7] 于枫.Altera可编程邏辑器件应用技术[M].北京:科学出版社,2014:68.
[8] 姚智刚,付强.基于低成本CMOS摄像头智能监控系统的设计[J].现代电子技术,2006,29(3):126?128.
[9] 方彦军,王运涛.一种机器人视觉系统模块的设计[J].微计算机信息,2005(14):93?94.
[10] 刘彬,谢伟,谷京朝,等.SRAM型FPGA系统的设计与实现[J].电子元器件应用,2007(7):43?46.