俄罗斯圣彼得堡的本地旅行卡上有大量不易读取的身份证号码,并在网上填写卡片时输入网页。所以我想建立一个小应用程序,可以拍一张旅行卡的照片并解析出来。
这项任务比自由形式识别更容易:
你会怎么做?是否有任何图书馆不是针对一般的OCR进行调整,而是针对我需要的“暗示”OCR?
祝你好运, 阿尔乔姆。
P.S。
实际上,这项任务的免费/廉价网络服务也足够好
答案 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的开发人员之一。