从图像中读取人物

时间:2010-06-10 05:08:35

标签: c# .net image-processing image-manipulation

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

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

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

非常感谢任何想法。

5 个答案:

答案 0 :(得分:3)

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

链接:

答案 1 :(得分:1)

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

祝你有愉快的一天! 奥斯卡。

答案 2 :(得分:1)

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

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

所以我的意见是,你无法真正实现这一过程的自动化。至少你可以通过手动输入值来编写一个程序来帮助人类(也可以看一下Amazon Mechanical Turk):

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

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

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

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

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

答案 3 :(得分:1)

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

这个问题/答案说OCROpus有ICR

FOSS Intelligent Character Recognition (ICR)

答案 4 :(得分:1)

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

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