安卓系统中的手写字符识别

4
我们正在开发一款与手写字符识别有关的 Android 应用程序。该应用程序要求学生在 Android 屏幕上绘制字母的手写图像,然后应用程序会处理所绘制的图像并返回所写字母的准确度。
我们正在考虑两个选项: a. 使用 Tesseract。 b. 使用我们自己的算法,我们仍在研究中。
问题: a. Tesseract 对于手写字符的识别没有任何帮助。如何训练 Tesseract 进行相应的识别将不胜感激。 b. 我们的所有算法都未按我们的期望工作。

那么,你的问题到底是什么? - brthornbury
2个回答

2
Tesseract实际上不适合识别屏幕上书写的字符,因为它无谓地丢弃了一些非常有价值的信息:图像最初是如何绘制的,如何分解成笔画,每个笔画的顺序/方向等。当你的软件已经知道这些信息时,Tesseract必须花费大量时间来尝试找出每个字符的基本结构。
你需要的是一个真正的“手写识别”库,而不仅仅是像Tesseract这样的OCR库;你特别需要一个“在线”手写识别库,“在线”意味着你可以捕获用户在屏幕上实际绘制的点序列。有许多开源库可用于此,例如UnipenLipiTk

谢谢你的回复。你能否指出在Android代码中使用这个的可能教程/参考资料吗?谷歌没有返回有用的东西。 - bashrc
我相信那些是用C语言编写的,所以您需要通过Android NDK访问它们;谷歌“Android NDK教程”,您会找到很多相关指南。(Tesseract也是使用本地代码,所以这与您使用它的方式类似) - Ertebolle

0
您可能想要查看内置的手势识别支持和训练工具:

http://developer.android.com/reference/android/gesture/package-summary.html

他们提供了一个可插拔的叠加层,使用预定义形状的“字典”来检测和识别手势。它不像OCR那样自动化,并且需要训练,但是在这一点上(自Android 1.6以来已经可用),可能会有免费或商业手写手势字典可用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接