《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于计算机视觉的手写字符输入
基于计算机视觉的手写字符输入
来源:电子技术应用2011年第10期
薛瑞恒, 种兰祥
(西北大学 信息科学与技术学院, 陕西 西安710127)
摘要: 提出了一种非接触式的手写字符输入方法。利用摄像机捕捉发光笔在一固定的单色背景平面上“书写”的运动轨迹,根据发光笔光斑坐标的位置恢复出“书写”字符的图像,最后识别输出。实验结果表明,该方法简单实用,对大写英文字母和数字的识别率均达到98%以上。
中图分类号: TP334.2+1
文献标识码: A
文章编号: 0258-7998(2011)10-0114-03
Handwritten character input based on computer vision
Xue Ruiheng, Zhong Lanxiang
College of Information Science and Technology, Northwest University, Xi′an 710127, China
Abstract: A method of non-contact handwritten character input was proposed. A camera was used to capture the moving track of light spot that were projected by a laser pointer on a fixed plane with simple background. The image with a character can be recovered by determine the coordinate of light spot on every frame. The results show that the method is simple and practical and the recognition rate on the capital letters and numbers is more than 98%.
Key words : non-contact; handwritten character input; topology; moment invariants


    手写字符输入方法已广泛应用于移动电话、掌上电脑等移动设备,其目的在于增强用户体验、提高输入效率和减小设备体积。但该方法需要在显示屏上覆盖一个电容式或电阻式触摸屏才能进行接触式输入,这无疑增加了设备成本。目前,移动设备普遍都配有摄像头,如果用户使用发光笔在空中不接触屏幕手写字符,运用计算机视觉的理论和方法实现输入,则可以降低设备成本、延长设备使用寿命。近几年已经有相关方面的研究,参考文献[1]提出了一种虚拟手写字符的方法,通过检测指尖的运动轨迹来恢复字符图像,但该方法对手指书写的抬笔、落笔检测比较困难,使得手指阴影影响较大,恢复出来的字符图像凌乱,正确识别率低。
    本文采用普通教学用的激光笔通过单色屏幕以正常速度写字,同时摄像头记录光斑的移动过程,利用一系列的光斑恢复出一幅完整的字符图像,最后对该字符进行识别。该方法简便快捷、识别率高,且无机械磨损,系统整体流程框图如图1所示。其中,光斑是波长约为650 nm的红色光斑,视频图像的采集速度为25 s/s,每帧图像为320×240的RGB图像。

1光斑检测与轨迹恢复
    实际应用的移动设备和移动投影设备的背景不是白色或黑色,因此通常本文仅讨论白色和黑色背景下的光斑检测及轨迹恢复,不需要建立复杂的背景模型。
1.1光斑检测
    光点或光斑检测近几年已有不同的方法出现,参考文献[2]结合激光点的颜色特征、运动信息和形状特征来定位激光点的位置。参考文献[3]利用拟合算法精确定位光斑位置,但该方法还需要降维处理,算法复杂度较高。本文采用根据激光笔发出的红色或是绿色来提取RGB图像的特定分量方法,将其转化成灰度图像,然后利用灰度重心法找出光斑的中心位置,最后以光斑的中心位置为基础恢复出光斑。
    本文使用红色激光笔,激光投射在屏幕上后形成一个非常亮的红色光斑。因此,提取图像的R分量,将RGB图像转化成灰度图像。实验发现,在白色背景和黑色背景中不同光照条件下,光斑的灰度值分布在255附近。文中只对灰度级大于180的像素作了灰度分布描述,其结果如图2、图3所示。

 

 

    图2、图3中像素灰度值的比例在255附近陡增,这是由于激光光斑的强度远高于自然光。而图中每个灰度级像素个数的比例也不相同。由此可以看出,同一种背景在不同光照条件下光斑像素灰度的分布是不同的,不同背景在同一种光照条件下光斑像素灰度分布也是不同的。
  传统的重心法是先将图像二值化后再找光斑的中心,由此丢失了光斑灰度分布细节。本文采用灰度重心法,可以认为是以灰度为权值的加权重心法[4]。灰度图像I(i,j)中目标S的灰度重心(x0,y0)为:

式中T为区分背景与光斑的阈值。
  在不同背景下,根据图像灰度的分布情况确定阈值选取权值M(i,j)。图4所示为选取阈值T前后光斑图像灰度分布。

    图4中横、纵坐标表示含有光斑图像的大小,图4(a)中背景也参与灰度重心的计算,由于光斑像素个数较少,计算结果不够准确;图4(b)中取阈值T后,大部分背景灰度值都为零,大大提高了计算结果的准确度。
  光斑的大小对后续的轨迹恢复和字符识别会产生影响,如果检测出来的光斑太小,则在恢复轨迹时会产生断断续续的不连续点;如果检测出来的光斑太大,恢复出字符图像的笔迹比较粗,则不利于后续的字符识别。以灰度重心为圆心,r为半径做圆,即为恢复出来的光斑,为了保证字符的识别率,再结合国家标准字符相关规定,实验中r采用10个像素的光斑半径。
1.2 轨迹恢复
    本文运用的轨迹方法是把每帧图像中确定的光斑迭在一起或连接起来组成一个字符,然后利用八连通区域标记方法去除噪声。首先,将得到的光斑图像转化为二维矩阵,然后把所有的二维矩阵中相对应的值进行“或”运算,得到字符图像的二维矩阵,再将该矩阵转化为二值图像,得到字符图像,其效果如图5所示。

    在输入字符时,可能有噪声干扰或者由于激光笔操作不当产生类似于噪声的单独的点或短线。为了保证字符识别的准确性,需要对恢复出轨迹的二值化图像进行八连通区域标记,并计算标记区域像素为1的个数。当像素为1的个数小于某个给定值n时,则认为该区域为噪声删除。当标记区域的像素个数大于给定值n时,则认为是字符区域。图6所示表明了光斑半径与光斑区域像素个数的关系。
    实验中采用的光斑半径为10个像素,在图6对应的光斑区域的像素个数n为300。实验过程中出现的类似噪声的光斑区域往往不是一个单独的斑点,而是一条短线或者几个光斑组成的区域,因此结合实验过程中出现的噪声区域的大小和图6中的关系曲线,本实验中取n的值为700。
    

    利用二阶和三阶规范化中心矩导出的7个不变矩组,结合拓扑结构的8个特征,能比较准确地识别出大写英文字符和阿拉伯数字,识别率达98%。可见,本文所用的非接触式手写字符输入方法是可行的。
    相对于触摸屏输入法,非接触手写字符输入法不仅提高了输入效率,而且降低了设备的要求,同时达到无机械磨损,对一些移动设备和多媒体教学系统有较大的应用前景。本文的设计虽能够比较准确地识别出手写字符,但仍需要做进一步地研究和改进。本文只选了单色简单背景进行实验,对于复杂变化背景还需进一步研究;对于正常书写速度输入的字符有较高的识别率,但对于快速输入或者输入比较潦草的字符识别还存在一定的困难;文中使用了单色背景屏,如果用发光笔直接对着摄像头书写,其效果如何还需进一步研究和验证。
参考文献
[1] 金连文,徐睿,杨端端,等.一种虚拟文字识别人机交互新方法[J].电子学报,2007,35(3):396-401.
[2] 刘芳,林学訚,史元春.基于激光笔的远程人机交互技术[J].中国图像图形学报,2003,11(8):1356-1360.
[3] 秦义,付小宁,黄峰.激光光斑定位的多园拟合算法的研究[J]. 西安科技大学学报,2006,26(4):519-523.
[4] 周中亮,周冰,何永强,等.成像型激光探测系统中光斑精确定位方法研究[J].激光技术,2008,32(3):248-251.
[5] 杨慧英,杜文斌,张璐.Hu不变矩识别算法在自动浇注系统中的应用[J].沈阳理工大学学报,2009,28(5):35-37.
[6] 杨金伟,段会川.拓扑机构特征提取及其在脱机手写数学符号识别中的研究与应用[D].山东:山东师范大学,2009.

此内容为AET网站原创,未经授权禁止转载。