从iOS上的图像解析一个众所周知的格式字符串的方法是什么(某些专门为此目的创建的库)?

时间:2016-07-11 16:10:04

标签: ios api rest ocr

俄罗斯圣彼得堡的本地旅行卡上有大量不易读取的身份证号码,并在网上填写卡片时输入网页。所以我想建立一个小应用程序,可以拍一张旅行卡的照片并解析出来。

Podorozhnik travel card

这项任务比自由形式识别更容易:

  • 卡是众所周知的尺寸
  • 身份证号码已知大小,位于卡片上非常着名的位置,它们只是数字,没有字母(好吧,我认为有两种变化,未来可能还会增加1-2种)
  • 甚至提前知道字体
  • 即使前几个数字对于大部分卡都是相同的(到目前为止只使用了两个前缀)

你会怎么做?是否有任何图书馆不是针对一般的OCR进行调整,而是针对我需要的“暗示”OCR?

祝你好运, 阿尔乔姆。

P.S。

实际上,这项任务的免费/廉价网络服务也足够好

2 个答案:

答案 0 :(得分:0)

是的Google有一个名为Tesseract的库,Github上有一个iOS SDK可以导入到您的应用程序中。所以你可以使用这个SDK,它有一些你可以阅读的文档,将解释如何在你的应用程序中设置它。它有一些方法可以返回一个字符串,其中包含字符串中卡片的文本。但它将是卡片中的所有文字。所以最好的办法是:

1 clip”用于提取子图像的原始图像,该子图像仅显示 要从中获取数字的卡部分。< / p>

2 通过Tesseract处理此子图像以检索您要查找的字符串。

3 然后解析字符串并挑选出您需要的数据。

但是请注意,它可能有点古怪。此SDK倾向于从扫描的图像中识别最佳单词,而不是“拍摄”。因为虽然它是一项先进的技术,但并不完美。因此,为了让它尽可能完美地工作,请尝试获取原件的扫描副本。

祝你好运。

答案 1 :(得分:0)

理想的解决方案有三个组成部分:

1)检测卡。这很有用,因为如果您有检测功能,那么最终用户可以更轻松地实际使用扫描仪,因为他们可以将手机放在卡上方任意方向

2)准确的OCR组件。理想情况下,可以根据卡上的确切位置自定义卡片上的确切位置。

3)解析机制。这将使您能够获得写在卡上的确切字符串,而无需编写大量的OCR解析代码。

BlinkID SDK拥有这一切。它具有ID-1格式的检测卡预设。它集成了OCR引擎。它提供了RegexParser,您可以在其中定义您尝试从文档中提取的文本的确切格式。

BlinkID最初是为扫描ID文档而构建的,这些文档的属性与您尝试解决的问题非常相似。

请注意。我是开发BlinkID的开发人员之一。