华为云文字识别服务关键技术、能力和产品落地需要注意的事宜(OCR系列二)

举报
谷雨润一麦 发表于 2019/10/01 16:10:10 2019/10/01
【摘要】 本文为OCR文字识别系列的第二篇。首先简单的介绍一下华为云文字识别服务,随后重点介绍产品的关键技术、关键能力,产品的优化之路,做产品需要注意到问题以及踩过的坑。其中很多点是整个人工智能或者以数据为驱动的产品都需要注意的。

下面首先简单的介绍一下华为云文字识别产品,随后重点讲我们的关键技术、关键能力,产品的优化之路,做产品需要注意到问题以及踩过的坑。其中很多点是整个人工智能或者以数据为驱动的产品都需要注意的。



华为云OCR技术团队是做产品的,但是也会参与一些比赛,或者是写一些论文,来提升技术影响力,比如说2019年ICDAR SROIE票据识别比赛,协同华中大联合一起参与了这次比赛。在端到端文字识别赛道上,以96.43的超高精度取得了世界第一,超过了2至5名大概是两个点左右,同时也会申请一些专利。因为我们的创新性,我们获得了2019数博会领先科技成果奖的新产品奖。


image.png


这是我们华为云文字识别服务的全景图,主要包含五大类,包括通用类,票据类,证件类,行业类,和定制类,通用类包括通用文字,通用表格,网络截图等。票据类呢,是指各种票,只是比如说是增值税发票,火车票,出租车票等。证件类呢,则是各种证件,比如身份证,驾驶证,行驶证,护照等。行业类是面向特定行业的,比如说物流行业的电子面单,纸质面单,比如说生活方面的燃气表,比如说医疗行业的医学检验单等。定制类呢,则是对客户进行特殊定制的,比如说是海外的身份证。助力企业生产效率提升,降低运营成本



image.png

华为的OCR处理流程,融合了多种图像处理技术,具有高精度,鲁棒性和自适应性等特点。文字识别精度特别高,支持错行,盖章,文字叠加等复杂场景,支持多种类型单据,自适应不同质量图片。整个流程呢,主要包括图像预处理,表格提取,有没有表格进一步处理,文字定位,其中可能会有文字矫正,文字识别,文字后处理等,最后返回给客户的是结构化的json数据。



那么这些能力是如何实现的呢。首先呢,是从硬件开始,我们协同华为云的昇腾(Ascend)芯片做了底层的优化。比如说LSTM多算子融合,比如说算子重写。其实做深度学习,最好能够从底层硬件优化开始,当然很多小公司做不到这一点,那就需要在上层优化算法了。还有一点是我们会对图像进行多种预处理,以提高训练速度,比如说是我们会把不同的文字成长度,基于多线程放在多个队列里,然后提高读取数据的速度。也会对累计梯度聚合优化等,一亿的切片数据,10小时完成训练。


image.png


做产品的时候会遇到各种各样的场景,比如说下图的的盖章检测。这是我们广东的一个客户的实际场景,需要识别盖章里的内容。盖章除了我图上的椭圆章,其实还有圆形章、方形章、三角形的章等。我们用了各种弧形文字检测算法,检测性能都达不到客户的需求,后来我们做了基于字符的一些优化之后,大概准确率达到了96%左右,基本上可以满足了客户的需求。所以说呢。无论是做写论文儿还是做产品,一定要针对性的持续优化算法。很多原始的论文即使实验证明性能很好,但在实际场景往往达不到论文里描述的效果。文字识别不优化算法,不如回家卖地瓜。



image.png


在深度学习时代,数据成为关键,对数据的需求量非常大。但是数据总是有限的,标注数据的成本也巨大,同时需要时间,合成数据基本上成了必选之路。最左边的是syntext,相信很多团队都在用,首先使用分割提取到了几何信息和分割结果,随后计算景深,然后找到平滑区域生成文字。


我们也会使用传统方法,比如说opencv、pillow等用来合成整张图片。我们针对文字自研了一套丰富的增强的算子库,增加了很多开源工程没有的算子。同时呢,我们会也会通过GAN转换一些切片。当然啦,GAN有的时候转换过的内容会比较莫名其妙。这也是深度学习的问题,很多时候因为不可解释,结果出来之前你永远不知道你得到的会是什么。

image.png



自动学习,可以锦上添花,比如说我们基于种群增强算法PBA。它能够快速高效的学到一个神经网络训练数据增强方法。在有的场景下,日常情况训练需要三天,通过PBA生成了生成的数据增强方法后,在实际情况下提高到半天左右。


同时呢,在一些算法模型上,性能也得到了一定的提高,比如说是。在我们一个模型上,它的性能提高了大概三个点左右。我们会基于华为自研的ModelArts平台进行NAS搜索。然后自动的找出最优的模型。我们的一个海外研究所,在进行模型剪枝的优化等。


image.png


自动化是未来,因为现在很多产品都是需要定制的,在人工智能界流传着有一句话叫做有多少人工就有多少智能,所以说是很多工作是需要大量人工的。为了快速迭代我们的产品,我们构建了自定义平台。输入的一定量的原始图片之后,会进行迅速的用这些图片儿进行数据增强,然后基于模型进行训练,得到一个可部署的API接口。我们也会把我们的模型通过模型市场共享出来。


客户可以继续我们的模型进行fine-tuning,形成他们独有的模型,或者是用这些模型来提供服务。


image.png


速度和性能需要同时兼顾。下面也是我们实际的一个场景,就是从视频中识别文字,我们如果基于逐帧进行检测,然后前后联系的话,可以大幅度提高性能。大家可以看一下这这个视频。其中有一部分视频文字是漏检的、或者基本识别不出来的,但是我们基于前后联系,可以修正一部分错误结果。但是这里有个问题,因为大部分视频,一秒大概是25帧,如果我们逐帧识别的话,会对大大地提高了我们的成本。所以说,我们会基于抽帧等优化措施来提高速度。如果我们做产品不考虑成本和速度的话,很多时候是没有意义的。


image.png


对数据怀有敬畏之心,深度学习时代数据很重要,但是切莫贪心,取之有道。我们在海外市场严格遵守当地的法律,比如说遵循欧盟的GDPR等隐私保护条例,图片在内存中运行后,返回结果,图片直接销毁。这也是华为30多年服务经验留下的经验和教训,如果我们不注意这一点,很多时候会造成名誉和经济上重大的损失。


更可怕的是,很多时候这个就可能转换成政治事件,对我们公司、对我们团队都带来了不可估量的影响和损失。而且中国近些年来也越来越注意隐私保护,最近也有相关的立法等。这可能跟我的安全方面的工作经历也有关,以前我们在给法国电信、德国电信提供华为云PaaS产品服务的时候,任何一点隐私方面的问题都可能牵扯到很多东西。还有一个例子,比如说5g,现在华为就在反复在向全世界证明我们是安全的,是非常尊重客户隐私的。


image.png


方案跟着需求走。这也是实际情况教育我们的。最开始的时候,我们的服务是API的形式,在云上更供客户调用。但是我们后来遇到了很多客户,比如说是金融的,比如说是保险的,比如说是医疗的。他们虽然相信华为会遵循数据保护条例。但是依然不会把数据传出他们的系统。所以说这个时候我们就需要考虑一些其他的服务模式,比如说是边侧,比如说是端侧。


除了云侧服务器,我们会在边侧提供基于Atlas等的边侧服务器。客户不需要把他们的数据传出系统就可以在边侧进行推理,如果客户对性能要求没有那么高,也可以使用端侧的一些设备,比如说Hilens盒子,比如智能摄像头等。现在我们做的是云边端协同部署。基于客户需求调整业务模式,也是产品成功的关键之一。


image.png


最后想说的是产品很多时候不仅仅是产品。今年上半年,华为云OCR团队协助办了一次文化传承汉字书法多场景识别的比赛,这也是数字中国大赛的一部分。数字中国大赛中国是工信部和福建省人民政府指导,主题是软件赋能数字经济,创新驱动数字中国。这是数字中国的一部分,数字中国是***近几年提出的,是要把中国建设成数字化社会。


我们的大赛中协助出题,数据,答疑,现场点评等全程参与。我们本来的目的是既宣传了华为的产品,也看看能不能得到一些新技术。但是大赛之后呢,很多高校的古文系。或者博物馆都找到了我们,希望我们共同来做一些古代文识别的项目,帮助他们来解决问题。因为现在很多人不愿意从事这方面的工作,而且很多字认识的人也不是很多,比如小篆。


当然,也遇到了很多难点,比如说是古代很多书法文字,为了避讳,多写了或者少写了几划。在这里我特别提一下这个事情,就是说是很多时候我们做了产品,是用来赚钱的。但是很多时候也可以用来做一些更有意义的事情,比如说是来解决一些社会问题,比如说来传承一些文化。当然,这也可能是我们作为技术人员的一种情怀吧。这个事情我们非常高兴和自豪,所以特地单独提一下。



image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。