从图像中读取人物

我正在开发一个应用程序,它需要将扫描图像文件中的数字与数据库条目进行匹配,并使用匹配结果更新数据库。

说我有image- employee1.jpg。 此图像将有两个两个手写条目 – 员工编号和支付给员工的金额。 我必须从图像中读取员工编号并在数据库中查询该编号,使用从图像中获得的支付金额更新员工。 员工编号和支付金额都写在图像上指定位置的两个方框内。

有没有办法自动化这个。 基本上我想用.net中的.net解决方案。 我知道这可以使用人工神经网络来完成。

任何想法将不胜感激。

您可以使用Office 2003/2007中包含的Microsoft Office Document Imaging Library(MODI)。

链接:

  • OCR与Microsoft®Office – 代码项目 – 使用MODI的示例
  • Microsoft Office Document Imaging – Wikipedia – 包含VB.NET中的一个简单示例

模式识别是研究神经网络时的基本例子。 我不知道是否有任何库/框架在C#中使用AI。 如果你找到一个,首先你需要做的是训练网络(监督学习),为此你需要准备一个大的样本集图像; 更多例子 – >结果更准确。 另一方面,您可以使用OpenCV(C / C ++,Python和Java),这是一个专门从事计算机视觉的库,并具有实现AI方法的模块。

祝你今天愉快! 奥斯卡。

我认为这很难实现自动化。 问题只是因为你需要某种非常好的OCR软件。 即使你得到了这个,如果它读错了什么,导致某人的手写错误呢? 如果身份证错了,付款被记录给错误的员工,如果金额错误,他的工资就会错!

两者都是你不会真正发生的事情。 只是为了向您展示一个好的ocr有多难找到,只需看看validation码的工作原理。 原则只不过是难以阅读的文字形象。

所以我的意见是,你不能真正自动化这个过程。 至少你可以编写一个程序来通过手动输入值来帮助人类(另请参阅Amazon Mechanical Turk ):

  • 在右侧显示带有手写值的图片,或者如果它们始终位于相同位置或特别标记(周围有一个方框等),请尝试自动查找这些位置并将其显示给用户。
  • 在左侧提供两个文本框,用户可以在其中输入值。

为了使这个过程快速流畅,您必须非常谨慎地使用键盘,用户可以轻松输入值:

  • 显示新图片时,将焦点设置为id文本框
  • 如果用户ID始终为特定长度,则在输入所有数字时切换到下一个框
    • (如果你允许这个,那么空的下一个框中的退格应该重新回到前一个框)
  • 否则,通过点击标签返回允许更改下一个文本框
  • 通常这些文本框排列在彼此之上(不是并排),因此您应该支持使用向上向下箭头键在它们之间切换。
  • 完成最后一个文本框中的条目后,将自动显示下一个图像。
    • 此外,在这种情况下,新的新条目(未输入任何内容)允许使用退格键或左箭头键轻松切换回旧条目

通过使用这样的过程,一个人可以在数据库中输入许多条目,并且成本比之后在数据库中查找错误条目便宜得多。

最后一个建议:
因为这对于人类来说是一个无聊的过程,很容易导致错误,也许让两个人输入这些值,并且只有两者都输入相同而不是将此值视为已批准。 这应该导致正确率高于99%。 如果您需要绝对100%考虑让4-5人检查一个条目,并且只有当所有条目输入相同的值时才将其视为已批准。 为了得到关于你的ocr软件有多好的比较,只需让它运行你的图像并将这些结果与人类输入的值进行比较,以获得一个想法,当你真的只能依靠你的ocr时。

OCR引擎未经过培训,无法读取手写文本,因此您可能无法使用MODI。 你想尝试找一个ICR引擎。 即便如此,其中最好的只有80%的准确输入。 你可能会变得更好,因为你知道你的文字总是数字。

这个问题/答案说OCROpus有ICR

FOSS智能字符识别(ICR)

有针对OCR / ICR的LeadTools SDK。 这在识别手写字符方面非常方便。 我正在做这个可行的研究,直到现在我认为它会成功。 leadTools提供了可在您的应用程序中使用的组件,它支持C,C ++,C#,VB.Net等。

您可以访问以下链接: http : //www.leadtools.com/downloads/default.htm?category =