高手论技
编者按:目前,OCR技术在各行业中的应用方兴未艾。我们可以在通讯软件、办公软件甚至在线网站中找到OCR的使用方法,极大地方便了我们的工作和生活。当然,目前人工智能还处于初级阶段,更好的场景文字识别将随着人工智能的发展而不断发展。
应用沙龙
主持人:
刘宗凡 广东省四会市四会中学
嘉 宾:
邱元阳 河南省安阳县职业中专
金 琦 浙江师范大学附属中学
倪俊杰 浙江省桐乡市凤鸣高中
杨 磊 天津市第五中学
从1929年德国科学家Taushek取得的一项光学字符识别(Optical Character Recognition,简称OCR)的专利算起,OCR已经发展了将近100年。汉字的OCR技术从20世纪70年代末开始进入研究阶段,也经历了近50年。OCR技术的成熟,使得汗牛充栋的书籍变成电子图书馆,我们足不出户就可以在网上检索海量书籍。OCR技术推动了文化的保存、整理、普及、研究,是数字化浪潮中一朵漂亮的浪花。
随着工人智能的发展,OCR技术更是如虎添翼,在各行各业得到了广泛的应用,极大地方便了我们的工作和生活。
人工智能(AI)影响下的OCR
杨磊:典型的OCR的技术路线如图1所示。其中识别准确率的关键技术是文字检测和文本识别,这两部分是OCR技术的核心。
以深度学习为主要特征的人工智能,改善了OCR的准确度和速度,使得OCR走出了印刷体文字的识别范畴,我们随手一拍的场景文字,都可以被OCR较为准确地识别出来。
随着人工智能对科技的全方位影响,OCR在人工智能的助力下迈进了一个新领域。基于深度学习的keras-ocr库提供了方便易用的OCR模型和端到端的训练流程来构建新的OCR模型。keras-ocr库支持Python3.6和TensorFlow2.0.0。
首先安装库:
pip install keras-ocr
加載库
import matplotlib.pyplot as plt
import keras_ocr
加载预训练模型
detector and recognizer.pipeline = keras_ocr.pipeline.Pipeline()
导入图片
images = [keras_ocr.tools.read(img) for img in ['./1.jpg','./2.jpg'] ]
预测文本
prediction_groups = pipeline.recognize(images)
显示结果
fig,axs=plt.subplots(nrows=len(images),figsize=(10,20))
for ax,image, predictions in zip(axs,images,prediction_groups):
keras_ocr.tools.drawAnnotations(image=image,
predictions=predictions,ax=ax)
由识别结果可以看出,当图2中文字发生扭转,识别的准确率变低。上述程序是一个训练好的模型,由于其使用的数据集与当前所识别图片相差过大,导致原模型泛化能力下降。如果想对特定图片进行识别,可以通过特定图片训练模型,对参数进行微调。本例使用的是英文OCR,中文识别相对而言难度有所增加,有兴趣的读者可以继续研究。
OCR技术在各行各业的应用
倪俊杰:1.OCR在银行中的应用
票据凭证是银行账务处理流程的重要内容。银行票据电子影像数据库是银行业务信息化的数据基础,有了这个数据基础,才有可能开展银行业务的各种信息化处理工作。但由于银行票据业务复杂,多数银行仍停留在“人工分散处理+纸质库房保存+人工查询”的阶段,成为阻碍金融电子化的薄弱环节。而借助OCR识别技术,可以使票据处理达到“自动集中处理+电子安全保存+数据有效应用”的目标,不但保留了原始单据的图像文件,而且对图像文件进行OCR识别后可以自动建立票据索引,还可以通过系统接口进一步完成单据与前台数据的勾对工作,快速找出有问题的单据,并能根据建立的索引很快找出原始图像,进行查询和审核,能高效、快捷准确地完成事后监督的工作,从而大大减轻操作员的工作量,减少差错率,提高银行业务的自动化和智能化水平。
2.OCR在快递行业的应用
OCR识别技术不仅能够快速从快递单据上提取识别手机号码,让快递员快速联络快递主人,还能快速提取快递面单上的联系人、目的地城市、地址等重要信息,并与系统数据进行匹配,实现自动分拣,可以在短时间内,准确完成大量包裹的自动分拣,让工作变得更简单快捷,切实满足中小型快递物流分发网点快速发展的诉求。
3.OCR在图书资料管理中的应用
在图书资料管理中,OCR文字识别可以代替人工录入,将图片上的文字识别出来,即将图片上的文字变为可编辑的文本,以便于检索分类,大大提高了工作效率,同时避免对珍贵的史料造成损坏,文字识别对纸质材料的数字化转型有重要的意义。
4.OCR在视频审查中的应用
借助OCR识别技术,可以识别视频中的文字,对互联网视频内容进行识别审核、监控,筛除掉违规的视频、广告,如一些敏感、不健康的词汇等,达到高效审查的目的。
值得注意的是,2020年9月28日,在2020AIIA人工智能开发者大会上,主办方正式发布国内首份智能文字识别(OCR)能力测评与应用白皮书。白皮书指出,OCR技术已在金融、保险、医疗、交通、教育等诸多行业有了深入成熟的应用。未来随着传统行业的数字化转型,OCR应用范围和场景将进一步扩展,市场规模将进一步增大。有权威机构预测,2025年全球OCR市场规模将达到133.81亿美元。
方便易用的文字识别工具—— QQ
邱元阳:虽然各种OCR软件层出不穷,软件功能也越来越强大,识别速度和准确率也在不断提高,但是很多时候,我们需要的是一款随手可用的文字识别工具。
在PC版的QQ中,新增了“屏幕识图”功能,可以用屏幕截图的方式来识别屏幕上任意可见区域的文字。这一功能位于截图功能组,快捷键是“Ctrl+Alt+O”。
QQ的屏幕识图其实就是一种OCR功能,只是内置到QQ软件中了。对办公一簇来说,QQ是计算机上必备的软件,有了文字识别功能,可以非常方便地解决网页文字不能复制、图片文字不能提取等常见问题,只要是屏幕上能看到的文字,都可以通过它来识别并复制下来。这比很多OCR软件需要加载图片和文件来进行识别要简便得多,并且不需要安装专门的软件。
在手机版的QQ中,也有类似的文字识别功能。点击右上角的“+”号,用手机“扫一扫”,再点击屏幕下方的“转文字”,按提示拍下需要提取的文字,软件即开始进行文字识别。识别完成后,可以复制文字,或者提取全文,导出文档。
无论是PC版还是手机版QQ,其文字识别功能都能在识别后进行编辑,以纠正识别错误,并且还能即时进行文字翻译。
日常办公软件中的OCR工具——OneNote和WPS
金琦:从OCR使用体验上来说,我们日常都喜欢放将办公素材在Office软件中编辑,如果能脱离第三方软件,即在办公文档里中添加图片,就可以随用随取图片中的文字素材,在需要用的时候复制粘贴即可,这样办公操作岂不是更加方便?那怎么识别办公文档中的图片文字呢?我们从两大办公软件,即微软Office系列和金山WPS Office来说明。
在安装最新的微软Office产品时,大家可以看到是有OCR文字识别工具安装选项,但读者会发现安装完毕后找不到单独的OCR文字识别工具。事实上OCR文字识别功能可在微软Office中的OneNote组件中调用。以微软OneNote 2016为例,可以右击要识别的图片,选择“复制图片中的文本”,就可以直接复制出来,为其他Office办公套件所用,这就是OCR文字識别工具在微软办公产品中的功能体现。
而金山WPS Office则更进一步,直接可以使用WPS Office打开各种文档,如w文字(相当于微软Word)、P演示(相当于微软PowerPoint)等,选择需要转换的图片,在“图片工具”中点击“图片转文字”,会进入到“金山OCR文字识别”功能。而且相对于微软办公产品有更多的转换方式(提取文字、转换文档、转换表格)可选。
随手可用的OCR——在线识别
刘宗凡:如果我们不想在计算机上安装软件,只要能连上网络,就可以尝试直接在线进行文字识别。笔者推荐两个网站。
(1)OCR Spaceh(网址 ttps://ocr.space/)。
操作步骤如下:
①在 Upload image or PDF file (.png,.jpg,.webp or .PDF)后的文本框点击“选择文件”。
②在Language后的下拉框中选择语言,如果是中文选择“ChineseSimplified”。
③在“Select OCR Engine to use:”选择OCR引擎。默认引擎1速度快,支持语言多;引擎2对数字和特殊符号识别更好。
④点击“Start OCR!”,开始进行识别,结果将在下面的文本框中显示。可以下载相应的文本文件(TXT)。
这个网站的优点是没有任何限制,对中、英文印刷体的识别率非常高。不足之处是识别结果只有文本文件下载,对排版的保留不是很完美;另一个不足是对中文手写体基本无法识别。
(2)极客在线OCR(网址:http://www.gkocr.com/)。
极客对印刷体的识别率非常高,但有每天10张图片识别的限制,另外识别结果也只有文本文件格式。极客对中文手写体的识别率可以达到85%左右。
OCR软件的不足之处
邱元阳:目前的OCR软件,其文字识别还不够智能化,对识别后的结果没有进行语法校对,经常会把“一”“-”“_”等类似符号混淆,这几乎是所有常见OCR软件的通病。
识别错误在所难免,但是纠错过程完全交给用户,不仅会加重用户的负担,还会出现错误遗漏。错误较多时,甚至比重新输入一遍都耗时耗力。目前的语音输入识别率非常高,当需要OCR识别的内容比较短小时,普通话较好的用户可以直接把屏幕上的文字朗读一遍,基本上就能完全识别了。
智能化不足还体现在对背景的识别和处理上。大多数OCR软件并不能直接忽略背景,而是通过二值化和降噪算法来消除背景的影响,但是并不能完全去除复杂的背景,因而会直接影响最终的识别结果。特别是背景中有杂乱的线条甚至是干扰字符时,几乎无法处理。这个缺陷在进行网络用户登录时身份验证的设计上被利用起来,开发所谓的“图片验证码”,用于解决避免程序化登录的问题。这些图片验证码,用人眼是可以识别的,用机器的OCR几乎都无法识别,很好地解决了防止用机器和程序代替人进行网上批量登录的问题。
二值化处理的另一个问题是,有时要识别的主体文字是一种特殊的颜色,人工肉眼识别时可以很方便地判断谁是文字谁是背景,但二值化的结果,却忽略了文字颜色,自己给自己设置了识别障碍。
优秀的智能化OCR软件,应该能够判断出文字主体与背景,直接将文字主体与背景区分开来,忽略背景和排除干扰图形之后再进行识别,并利用相应语言的语法规则,对识别结果进行自我纠错。
当机器的OCR识别能力与人工识别接近时,OCR的应用领域就会更进一步地拓展,甚至会促进计算机视觉研究的进步。这可能需要人工智能的参与,而不是传统的识别算法。
OCR虽然在近一百年取得了长足的进展,印刷体的识别达到了非常高的准确度,但是在目前人工智能正处于初级阶段的情况下,OCR功能同样受到很大的制约。可以预见,当人工智能技术得到突破的时候,OCR同样会在实用性上取得突破,期待这一天早日到来。