如何转换/匹配手写的名单? (HWR)

时间:2017-11-14 21:18:28

标签: ocr tesseract handwriting-recognition

我想看看我是否可以扫描一个班级的登录表。好消息是我知道可能写的90%的名字。

我的想法是使用tessaract来解析名称的图像,然后使用Levenshtein算法将每一行与我的数据库中的名称列表进行比较,如果我得到相当接近的匹配,则该名称是正确的。

这种方法听起来不错吗?如果没有,其他想法?

我尝试在样本表上使用tesseract(见下文)

enter image description here

我用过:

tesseract simple.png -psm 4 outtxt
Tesseract Open Source OCR Engine v3.05.01 with Leptonica
Warning. Invalid resolution 0 dpi. Using 70 instead.
Error in boxClipToRectangle: box outside rectangle
Error in pixScanForForeground: invalid box

我认为它不像第2行,因为我走到了线下。

我得到的结果是:

1.. AM: (harm;

l. ’E (J 22 a 00k

2‘ wau \\) [HQ

4. KIM TAYLOE
5. LN] Davis

6‘ Mzflé! Ha K

显然不是最好的,我的猜测是4&的距离匹配。 5会起作用,但其余的都不会接近。

我控制了我的登录表,但没有人员的笔迹,所以如果有任何改变,我可以帮忙,请告诉我。

2 个答案:

答案 0 :(得分:6)

Microsoft为handwritten text提供OCR API(向下滚动页面,标准文本ocr api):

预览:从图像中读取手写文本 这项技术(手写OCR)允许您从笔记,字母,散文,白板,表格等中检测和提取手写文本。它适用于不同的表面和背景,如白纸,黄色便签和白板。

手写文本识别功能可以节省时间和精力,并且可以让您拍摄文本图像,而不必转录文本,从而提高工作效率。它可以对笔记进行数字化,从而使您可以快速轻松地进行搜索。它还可以减少纸张杂乱。

注意:此技术目前处于预览状态,仅适用于英文文本。

要尝试此光学字符识别演示,请上传本地存储的图像或提供图像URL。除非您允许,否则我们不会存储您为此演示提供的图像。

编辑:这是我的测试结果,它对您的输入数据几乎完美:

enter image description here

答案 1 :(得分:0)

由于你的目标只是获取名字 - 我建议你将tessedit_char_whitelist缩减为英文字母(“ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.”),这样你就不会得到你不期望的字符输出如\\) [

如果您成功从手写图像中提取文本(这对于tesseract来说是一项艰巨的任务),那么计算L距离的初始方法就可以了。

我还建议对你的图像进行一些预处理。例如,您可以删除水平线并提取它们周围的文本ROI。在最好的情况下,您将能够提取分离的字符,但即使您不这样做 - 您将获得更好的结果&将能够“逐行”区分结果名称。

您还应该尝试其他推荐的输出质量改进阶段,您可以在Tesseract OCR wiki(link)中找到