OCR的英文全称是Optical Character Recognition,中文叫做光学字符识别;它是一种存在已久的计算机视觉任务,在某些特定领域它表现的非常好,根本不需要如今火热的深度学习的技术。在2012年如日中天的深度学习之前,OCR有许多不同的实现,这可以追溯到1914年。可能会有人说,OCR技术的挑战已经都被解决了?答案是:NO!使用深度学习的神经网络来训练OCR的任务会更精准,应用领域更多。通常来说,任何实践过计算机视觉或者机器学习的人都知道,不存在已经解决的任务,这种情况也不例外。相反,在一些特定的领域,OCR会产生一个很好的结果,所以某一些OCR的任务,还是非常具有挑战性的,所以使用深度学习来训练OCR的识别任务还是非常有挑战性的。看完本篇文章你会知道:1.你的车在北京,为什么收到来自上海的超速罚款?2.为什么一些app上扫描银行卡号时,个别字母识别不出来?3.深度学习比传统的OCR技术要好吗?4.深度学习的识别文字原理和框架是什么?5.如何直接使用OCR文本识别功能?我会尽量说的小白一点,方便不同专业的同学都能看懂^_^
二、OCR的种类OCR的应用有多种领域,之前也提过。简单的说,就是在图片上提取文字,图片上的文字排版越标准,识别的就越精准,比如印刷的书的某一页,或者标准的打印文档;当然也能识别涂鸦,也就是在极不规范的原素材上识别。我们日常中常见的OCR应用领域有车辆牌照、自动识别验证码、街景标志等等。每种OCR任务都有自己不同的难度,俗话说“in the wild”是最难的。
Adam Geitgey提供了一个很好的教程,可以通过深度学习解决一些验证码,包括再次合成人工数据。Tutorial :https://medium.com/@ageitgey/how-to-break-a-captcha-system-in-15-minutes-with-machine-learning-dbebb035a710