如何精准实现OCR文字识别?

nanqi 2019-06-28

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由云计算基础发表于云+社区专栏

如何精准实现OCR文字识别?

前言

2018年3月27日腾讯云云+社区联合腾讯云智能图像团队共同在客户群举办了腾讯云OCR文字识别——智能图像分享活动,活动举办期间用户耐心听分享嘉宾的介绍,并提出了相关的问题,智能图像团队的科学家和工程师也耐心解答可用户的疑问。以下就是活动分享的全部内容。

正文

在日常生活工作中,我们难免会遇到一些问题,比如自己辛辛苦苦写完的资料,好不容易打印出来却发现源文件丢了。难的收集了一些名片,却要很麻烦的一个一个录入信息。快递公司的业务越来越好,但每天却需要花费很多时间登记录入运单,效率非常的低。

那么,有没有什么技术能帮助我们解决这些难题呢?有的,那就是OCR文字识别技术。今天我们请到了腾讯云大数据AI产品中心的AI科学家冀永楠、产品经理Florali、陈英恬,高级工程师肖西华为咱们分享一下腾讯云近年来在这一领域的探索情况。

什么是OCR?

OCR 是实时高效的定位与识别图片中的所有文字信息,返回文字框位置与文字内容。支持多场景、任意版面下整 图文字的识别,以及中英文、字母、数字的识别。通俗的来说,就是将图片上的文字内容,智能识别成为可编辑的文本,例如:

如何精准实现OCR文字识别?

OCR的技术原理是什么?

OCR本质是图像识别。其原理也和其他的图像识别问题基本一样。包含两大关键技术:文本检测和文字识别。先将图像中的特征的提取并检测目标区域,之后对目标区域的的字符进行分割和分类。

以深度学习兴起的时间为分割点,直至近五年之前,业界最为广泛使用的仍然是传统的OCR识别技术框架,而随着深度学习的崛起,基于这一技术的OCR识别框架以另外一种新的思路迅速突破了原有的技术瓶颈(如文字定位、二值化和文字分割等),并已在工业界得到广泛应用。

首先文本定位,接着进行倾斜文本矫正,之后分割出单字后,并对单字识别,最后基于统计模型(如隐马尔科夫链,HMM)进行语义纠错。

OCR技术的难点是什么?

复杂背景、艺术字体、低分辨率、非均匀光照、图像退化、字符形变、多语言混合、文本行复杂版式、检测框字符残缺,等等。

如克服这些难点的?

从几个方面入手。一是使用场景,另一方面是从技术上的改进腾讯优图实验室在文本检测技术方进行了深度优化,提出了Compact Inception,通过设计合理的网络结构来提升各尺度的文字检测/提取能力。同时引入RNN多层自适应网络和Refinement结构来提升检测完整性和准确性。

如何精准实现OCR文字识别?img

腾讯云OCR目前支持什么功能?

基于腾讯优图实验室世界领先的深度学习技术,目前我们已支持: 身份证识别,银行卡识别,名片识别,营业执照识别,行驶证驾驶证识别,车牌号识别,通用印刷体识别,手写体识别。

大家可以扫文章头部的小程序二维码体验下我们的小程序。

通用印刷体的技术难点,使用场景

我们知道身份证识别可广泛应用在金融行业中,有用户的身份认证中,可以减少用户的信息输入,提升效率,提高用户体验,营业执照的识别完全省去了手工录入的繁琐,还可以为企业省去大量的人力资源成本,这些场景大家都已经比较熟悉。

对于通用印刷体,腾讯优图实验室自主设计一整套全方位多尺度文字识别引擎,可攻破模糊,散焦,透视,文字部分遮挡的问题,识别准确率高达90%以上,处于业界领先水平。使用场景广泛,例如对任意版面上图像的文字识别,可广泛应用在印刷文档、广告图、医疗、物流等行业中的识别。

对于通用印刷体有没有什么好的例子?

例如这个广告,内容多字体,中英文与数字混合,背景也比较随意。咱们的OCR通过透视矫正、去模糊等,能大幅还原图像真实度,极大提升算法的鲁棒性。

如何精准实现OCR文字识别?

再例如识别文字密集,行间距小,透视畸变等的海报。人工识别需要不仅耗费时间,肉眼也比较难识别。但腾讯云OCR 设计了小而精的特征提取网络,配合先进的预处理技术,识别准确率高达93%以上。

如何精准实现OCR文字识别?

有时候也会遇到识别率不理想的情况,如何可以提高识别准确率?

首先会确认下当前的场景,造成准确度不高的原因。评估可提高的空间设计,之后做出相应的修改,列入预处理等等。

关于腾讯云手写体识别这块有没有什么案例?

腾讯是国内首家将手写体识别应用在复杂场景下的服务商,数字识别准确率高达90%以上,单字识别速度在15ms以内,复杂汉字准确率超过80%。

腾讯云手写体OCR已运用到的运单识别场景,解决了物流行业每日快递单人工输入工作量极大且极易出错,非常低效等问题。

如何精准实现OCR文字识别?img

运单识别与传统人工识别有什么区别呢?

如果传统人工识别按照3min/单,1000单需要6.25个人/天,保证运单时效则需要耗费大量人力,考虑人力成本则影响运单及时性,成本和服务难两全。

我们的运单识别速度可以达到毫秒级/单,并支持24小时识别服务 ,业务增长时只需要投入计算用服务器资源即可,弹性较大。

与传统识别相比,不仅成本可以降低,提高准确性,还可以保护用户的隐私泄露风险。

目前OCR应用现实中有很广泛的应用场景,腾讯云OCR有什么优势?

咱们的OCR文字识别技术,目前支持中文简繁体、英文、数字、标点共10000+标签,覆盖上百种字体,生僻字版本更支持2W+标签 。

那咱们在行业中也有不少落地客户了吧?

新版手Q就用到了咱们的技术,在扫一扫、聊天窗口和空间图片大图预览共三个入口上支持了提取图片中文字的功能。

方便用户阅读、编辑、保存图片上的文字,从而可以对提取出的文字进行翻译、搜索。在多种场景下可以极大提升用户对图片上文字的阅读和记录效率。

如何精准实现OCR文字识别?

企业微信中的名片识也用到了咱们OCR技术。用户只需拍照或选择名片图片,就能准确快速地识别出名片中的文字,并自动提取为对应的字段,极大简化了名片录入流程,也避免了手动录入过程可能出现的错误。

如何精准实现OCR文字识别?

互动QA

经过上面的分享,用户也提出了不少问题,我们来看看用户都问了什么?

Q:您好,我想问下OCR 识别是否支持H5开发呢?

A:支持,接口是基于http协议,只要支持http协议都可以使用。

Q:通用印刷体识别剩下的10%,有提高的思路吗?

A:整体思路还是要回到我们的三大引擎上。逐一进行优化。

  1. 背景识别
  2. 定位引擎
  3. 字段识别引擎

Q:目前印刷体识别上使用的思路是先分割后识别吗?OCR支持离线识别吗?

A:思路是先分割后识别,我们的OCR支持离线识别的。

Q:OCR遇到无法分割或者分割错误的情况如何处理呢

A:很少有无法分割的情况。分割错误肯定会对最后的结果又影响。我们的技术,即便是再字符重叠的情况下也可以做出正确的分割。

Q:我想问下如果针对运单识别场景,请问是否可以智能纠正客户的地址呢?例如深圳,写成了深土川。

A:我们会结合NLP技术,结合上下文进行智能纠错。

Q:目前市面已提供有相关服务,那么咱们在这块有什么与众不同的地方或者更有优势的一面呢?

A:我们在OCR上积累的很多的相关经验,也是国内首家将手写体识别应用在复杂场景下的服务商。

Q:那请问腾讯云OCR业务支持什么语言呀,对文字大小字体等有要求嘛?

A:中文(简体和繁体),英文及数字。

Q:之前有提到总的分类高达2w+,这种大分类模型是怎么训练的。

A:分级,分批训练。

Q:那我还想问您下车牌自动识别已应用于日常生活场景中。想了解下这个的技术难点是什么呢?

A:相比于证照类输入图来说,车牌输入图受限于实际场景配置的摄像监控设备,及车辆位置的随机变化,产生各种极端角度及光照案例,其质量变化范围远大于证照类采集图像。

Q:您刚才展示都是平整的图片,对于手机拍的纸质文档有一定弧度,比如折过的纸没压平,就会有一定弧度,这个能处理吗?

A:轻微的弧度我们可以通过技术处理,严重变形的相对比较困难。

Q:除了支持标准车牌,我们支持识别新能源车吗?

A:支持的,我们目前已支持蓝牌、黄牌、军牌、警牌、教练车牌、新能源车牌等,目前识别率可达到97%-98%~

Q:请问针对物流公司司机手机拍的照片,一是面单不平整,二是光线有的不理想,三是拍照角度有倾斜。针对以上情况技术方面有没有解决办法?

A:拍照角度可以通过几何算法矫正。光线的问题也可以通过图像的归一化增强。单面不平整,这个得看不平整到什么程度了。

Q:车辆运行中,您这个80%的准确率是指车辆运动过程中拍摄下来的图还是车辆停止时候拍的图?

A:我们是按帧处理的。

Q:是否可以经过一定数据积累,纠错等训练,从而使其能识别手写文字?

A:我们已实现手写体识别~

Q:OCR对运动模糊的场景识别率有多高

A:模糊的程度差异性很大。不好做标准化的统计。图像质量不佳,最直白的处理方法是做图像的增强。

Q:贵司技术有相关paper可以查阅吗?

A:

https://cloud.tencent.com/dev...

https://cloud.tencent.com/dev...

https://cloud.tencent.com/dev...

可以看看咱们社区的文章哦~很多文章都是鹅厂的精华呢~

Q:图片有点模糊,能不能说下比较好具体算法,这个太笼统了

A:有很多的滤波器都可以处理不同程度的模糊图像。也有采用神经网络的的方式处理。

我们看到不管是复杂文字识别场景还是小程序应用腾讯云OCR都可以解决,对本文提问有任何疑问的同学,大家都可以去腾讯云问答社区(https://cloud.tencent.com/developer/ask)提出自己的疑问,届时会有邀请相关的产品同学回答您的问题。

感谢大家对腾讯云云+社区及腾讯云智能图像的支持,如需了解更多腾讯云OCR识别,请点击:https://cloud.tencent.com/pro...)。

如何精准实现OCR文字识别?

腾讯云OCR接入流程

第 1 步:登陆账号注册并通过实名认证后,您可以登录【腾讯云控制台】(链接:https://console.cloud.tencent.com/ai)进行使用。如果没有账号,请参考 【账号注册教程】(链接:https://cloud.tencent.com/document/product/378/9603)。

第 2 步:创建秘钥完成注册后,您需要在【访问管理】(链接:https://console.cloud.tencent.com/cam/capi )创建秘钥。AppID、SecretID和SecretKey是您进行应用开发的唯一凭证,请妥善保管。

第 3 步:生成签名通过签名来验证请求的合法性,用户可以使用AppID、SecretID和SecretKey生成签名,具体签名生成方法请参阅【签名鉴权】(链接:https://cloud.tencent.com/document/product/641/12409

第 4 步:调用API我们为您提供了丰富多样的API接口,您可以查看并调用【OCR】(链接:https://cloud.tencent.com/document/product/641/12407)服务。

第 5 步:查看调用您可以登录【腾讯云控制台】(链接:https://console.cloud.tencent.com/ai/ocr/namecard),查OCR的各服务调用情况。

问答
OCR文字识别技术有哪些应用?
相关阅读
文字识别OCR知识资料全集(入门/进阶/论文/综述/代码/专家,附查看)
我的AI之路 —— OCR文字识别快速体验版
借你一双“慧眼”:一文读懂OCR文字识别︱技术派
【每日课程推荐】机器学习实战!快速入门在线广告业务及CTR相应知识

此文已由作者授权腾讯云+社区发布,更多原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区

相关推荐