原创:PinkFeet
近日,“大学生用OCR+正则表达式快速核查学生核酸报告”的新闻火了,细心观察我们就能发现,生活里OCR的身影到处都是:文档扫描、车牌识别、证件识别等等。在这个信息技术高速发展的时代,越来越多的小事可以“智能化”、“信息化”,曾经需要浪费诸多人力物力才能完成的事,可以通过新的技术轻松地解决。
OCR是解决什么问题的技术
文章开头提到的新闻里,OCR技术到底解决了什么问题?上图是一张上海市健康云截图,复旦大学博士生使用OCR技术监测到文本,再提取其中的文字信息,每次核查数百人的截图仅需几分钟。抽象的字符让人感觉技术深不可测,但是等读者们稍作了解之后,会发现高科技是非常亲切实用的。OCR中文名叫做“光学字符识别”,它可以将名片、票据、身份证、驾照等文档资料中的文字和数字信息转换成文本信息,以电子形式保存,实现信息采集的快速录入。现在有非常多实现OCR功能的免费接口,传入图片路径,就可以调用接口函数,识别图片中的文字信息。
OCR的常见流程
常见OCR方法的具体过程通常分为以下四个步骤:
预处理:是对图像进行初步的处理,目的是减少图像中的无用信息,方便提取特征。常用的步骤有:灰度化、降噪、二值化、字符切分、归一化等。
特征提取和降维:是识别文字、数字的关键步骤之一。特征是识别文字的关键信息,每个不同的文字通过特征来和其他文字进行区分。数字和英文字符相对中文字符来说更容易区分。为了提高后续分类器的效果和效率,往往还要进行降维,进一步减少特征中的无用信息,同时把有用信息尽可能多地保留下来。
分类器设计:对特征进行识别,是进行文字、数字识别的关键步骤之一。在这一步中,分类器对特征进行分类,将其识别成对应的字符。分类器一般需要提前训练,常见的分类器有:支持向量机、神经网络等。
后处理:是对分类结果进行优化处理的步骤。经过分类器分类得到的结果是不完全准确的,比如对形近字的识别错误率比较高、识别结果存在排版错误,后处理就可以有针对性地解决这些问题。例如,通过语言模型校正将“存哪里”校正为“在哪里”,并对识别结果进行格式化。
正则表达式是什么
正则表达式在人物场景中承担的是什么责任呢?经过前面叙述的流程,从图片中提取出来的文字信息,需要进一步整理提取,实现自动化核查。正则表达式通常被用来检索、替换符合特定模式的文本。正则表达式可以提取出文本中的特定文本,即:姓名、证件号码、采样时间、检测结果等,再输出到Excel中。
OCR数据集
目前主流的OCR任务会使用深度学习方法,这意味着数据集是其中的关键。
文本检测数据集SynthText:https://www.robots.ox.ac.uk/~vgg/data/scenetext/
ICDAR是竞赛数据集,2003年、2013年、2015年、2017年分别开放了以下数据集:
http://www.iapr-tc11.org/mediawiki/index.php/ICDAR_2003_Robust_Reading_Competitions
https://rrc.cvc.uab.es/?ch=5&com=introduction
谷歌图像中收集整理得到的IIIT 5K words数据集:http://cvit.iiit.ac.in/projects/SceneTextUnderstanding/IIIT5K.html
还有一些公开数据集,如:SVT、CUTE等。Github上有一个OCR数据汇总可以查看:https://github.com/WenmuZhou/OCR_DataSet
大多数OCR数据集包含的图像数量比较少,并不足以训练出一个模型,需要合成新的数据集使用。
小结
OCR技术不算是最新的技术,早在十年前它就火过,随着近年深度学习的迅速发展,基于深度学习的OCR技术也逐渐成熟,能够更好更灵活地应对不同场景,已经成为科技公司的能力标配。
网友评论