DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1379|回复: 0
打印 上一主题 下一主题

[待整理] 基于计算机视觉的手写字符输入

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 14:50:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
手写字符输入方法已广泛应用于移动电话、掌上电脑等移动设备,其目的在于增强用户体验、提高输入效率和减小设备体积。但该方法需要在显示屏上覆盖一个电容式或电阻式触摸屏才能进行接触式输入,这无疑增加了设备成本。目前,移动设备普遍都配有摄像头,如果用户使用发光笔在空中不接触屏幕手写字符,运用计算机视觉的理论和方法实现输入,则可以降低设备成本、延长设备使用寿命。近几年已经有相关方面的研究,参考文献[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%。可见,本文所用的非接触式手写字符输入方法是可行的。

相对于触摸屏输入法,非接触手写字符输入法不仅提高了输入效率,而且降低了设备的要求,同时达到无机械磨损,对一些移动设备和多媒体教学系统有较大的应用前景。本文的设计虽能够比较准确地识别出手写字符,但仍需要做进一步地研究和改进。本文只选了单色简单背景进行实验,对于复杂变化背景还需进一步研究;对于正常书写速度输入的字符有较高的识别率,但对于快速输入或者输入比较潦草的字符识别还存在一定的困难;文中使用了单色背景屏,如果用发光笔直接对着摄像头书写,其效果如何还需进一步研究和验证。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-9 22:13 , 耗时 0.142368 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表