使用OpenCV构建光学字符识别系统
OCR系统在几十年前建造起来是非常昂贵和繁琐的,但随着计算机视觉和深度学习领域的进步意味着我们现在可以建立自己的OCR系统了!
总览
光学字符识别(OCR)是计算机视觉领域中广泛使用的系统,了解如何为各种任务构建自己的OCR,我们将利用OpenCV库和Tesseract来构建OCR系统。
介绍你还记得考试期间我们必须填写正确答案的日子吗?或者你还记得在开始第一份工作之前进行的能力测验呢?我可以回忆起奥林匹克竞赛和多项选择测试,大学和组织会使用光学字符识别(OCR)系统对答卷进行大量评分。老实说,OCR在广泛的行业和功能中都有应用,因此从扫描文档(包括银行对帐单,收据,手写文档,优惠券等)到阅读自动驾驶汽车的路牌,都在OCR的范畴内。OCR系统在几十年前建造起来是非常昂贵和繁琐的,但随着计算机视觉和深度学习领域的进步意味着我们现在可以建立自己的OCR系统了!
但是,建立OCR系统并不是一件容易的事,对于初学者来说,面临着诸如图像中的字体不同,对比度差,图像中有多个对象等问题。因此,在本文中,我们将探讨OCR任务的一些非常著名且有效的方法,以及如何自己实施。如果你不熟悉目标检测和计算机视觉,建议你先阅读以下资源:基本目标检测算法的介绍https://www.analyticsvidhya.com/blog/2018/10/a-step-by-step-introduction-to-the-basic-object-detection-algorithms-part-1计算机视觉课程https://courses.analyticsvidhya.com/courses/computer-vision-using-deep-learning-version2目录什么是光学字符识别(OCR)现实世界中流行的OCR应用使用Tesseract OCR进行文本识别文本检测的不同方法什么是光学字符识别(OCR)首先,让我们了解一下什么是OCR。OCR,或称光学字符识别是一种识别图像内文本并将其转换为电子形式的过程。这些图像可以是手写文字,文件,收据,名片等印刷文字,甚至是自然场景照片。OCR有两个部分,第一部分是文本检测,确定图像中的文本部分,文本在图像中的定位对于OCR的第二部分文本识别非常重要,其中文本是从图像中提取出来的。结合使用这些技术可以从任何图像中提取文本。
没有什么是完美的,OCR也不例外。但是,随着深度学习的到来,对这一问题有可能得到更好、更普遍的解决方案。在我们深入研究如何构建自己的OCR之前,让我们先看看OCR的一些流行应用程序。现实世界中流行的OCR应用OCR在各行各业有着广泛的应用(主要是为了减少人工操作)。它已经融入到我们的日常生活中,以至于我们几乎没有注意到它!但它肯定会努力带来更好的用户体验。
OCR常用于在手写识别任务中提取信息。该领域正在进行许多工作,也取得了一些非常重大的进步。Microsoft提出了一个很棒的数学应用程序,该应用程序以手写的数学方程式作为输入,生成解决方案,并逐步解释其工作原理。OCR越来越多地被各个行业用于数字化,以减少人工工作量。这使得从业务文档,收据,发票,护照等中提取和存储信息非常容易且高效,此外,当你为KYC(Know Your Customer,了解客户)上传文档时,OCR用于从这些文档中提取信息并存储它们以供将来参考。OCR还用于书籍扫描,它将原始图像转换为数字文本格式。许多大型项目,例如Gutenberg项目,Million Book Project和Google Books,都使用OCR扫描和数字化书籍并将作品存储为档案。银行业也越来越多地使用OCR来归档与客户相关的文书工作,例如入职资料,以轻松创建客户资料库,这显着减少了上线时间,从而改善了用户体验。此外,银行使用OCR从支票中提取诸如帐号,金额,支票号码之类的信息,以加快处理速度。
说到OCR的应用,就必须提及它们在自动驾驶汽车中的使用。自动驾驶汽车在很大程度上依赖OCR来阅读路标和交通标志,对这些标志的有效理解可以使自动驾驶汽车对行人和其他在道路上行驶的车辆保持安全。还有很多OCR应用,例如车牌识别,将扫描的文档转换为可编辑的Word文档等等。使用OCR进行数字化显然具有广泛的优势,例如易于存储和处理文本,更不用说可以应用到此数据的大量分析了!OCR绝对是计算机视觉最重要的领域之一。现在,让我们看看最著名的和广泛使用的文本识别技术之一——Tesseract。使用Tesseract OCR进行文本识别Tesseract:https://tesseract-ocr.github.io/tessdoc/Documentation.htmlTesseract是一个开源的OCR引擎,最初是由HP(Hewlett-Packard)作为专有软件开发的,但后来在2005年被开源,从那时起,谷歌就采用了这个项目并赞助它的开发。