Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >深入浅出了解OCR识别票据原理

深入浅出了解OCR识别票据原理

作者头像
Techeek
发布于 2017-12-20 08:19:56
发布于 2017-12-20 08:19:56
12.6K0
举报
文章被收录于专栏:人工智能人工智能

本文翻译自dzoneIvan Ozhiganov 所发文章Deep Dive Into OCR for Receipt Recognition 文中版权、图像代码等数据均归作者所有。为了本土化,翻译内容略作修改。

光学字符识别技术(OCR)目前被广泛利用在手写识别、打印识别及文本图像识别等相关领域。小到文档识别、银行卡身份证识别,大到广告、海报。因为OCR技术的发明,极大简化了我们处理数据的方式。

同时,机器学习(ML)和卷积神经网络(CNN)的快速发展也让文本识别出现了巨大的飞跃!我们在本文的研究中也将使用卷积神经网络CNN技术来识别零售店的纸质票据。为了方便演示,我们本次将仅采用俄语版的票据进行测试。

我们的目标是项目开发一个客户端来识别来获取相关文档,在有服务器端去识别解析数据。准备好了吗?让我们一起去看看怎么做吧!

预处理

首先,我们需要接收图像相关数据,使其水平竖直方向垂直,接下来使用算法进行检测是否为票据,最终二值化方便识别。

旋转图像识别收据

我们有三种方案来识别票据,下文对这三种方案做了测试。

1. 高阈值的自适应二值化技术。 2. 卷积神经网络(CNN)。 3. Haar特征分类器。

自适应二值化技术

首先,我们看到,图中图像上包含了完整的数据,同时票据又与背景有些差距。为了能更好识别相关数据,我们需要将图片进行旋转。使其水平沿竖直方向对齐。

我们使用Opencv中的自适应阈值化函数adaptive_threshold和scikit-image框架来调整收据数据。利用这两项函数,我们可以在高梯度区域保留白色像素,低梯度区域保留黑色像素。这使得我们获得了一个高反差的样本图片。这样,通过裁剪,我们就能得到票据的相关信息了。

使用卷积神经网络(CNN)

起初我们决定使用CNN来做相关位置检测的接收点,就像我们之前做对象检测项目一样。我们使用判断角度来拾取相关关键点。这种方案虽然好用,但是和高阈值对比检测裁剪更差。

因为CNN只能找到文本的角度坐标,而文字的角度变化很大,这就意味着CNN模型不是很精准。详情请参考下面CNN测试的结果。

使用Haar特征分类器来识别收据

作为第三种选择,我们尝试使用Haar特征分类器来做分类筛选。然而经过一周的分类训练和改变相关参数,我们并没有得到什么比较积极的结果,甚至发现CNN都比Haar表现好得多。

二值化

最终我们使用opencv中的adaptive_threshold方法进行二值化,经过二值化处理,我们得到了一个不错的图片。

文本检测

接下来我们来介绍几个不同的文本检测组件。

通过链接组件检测文本

首先,我们使用Opencv中的find Contours函数找到链接的文本组。大多数链接的组件是字符,但是也有二值化留下来嘈杂的文本,这里我们通过设置阈值的大小来过滤相关文本。

然后,我们执行合成算法来合成字符,如: Й和=。通过搜索最临近的字符组合合成单词。这种算法需要你找到每个相关字字母最临近的字符,然后从若干字母中找到最佳选择展示。

接下来文字形成文字行。我们通过判断文字是否高度一致来判断文本是否属于同一行。

当然,这个方案的缺点是不能识别有噪声的文本。

使用网格对文本进行检测

我们发现几乎所有票据都是相同宽度的文本,所以我们设法在收据上画出一个网格,并利用网格分割每个字符:

网格一下子精简了票据识别的难度。神经网络可以精准识别每个网格内的字符。这样就解决了文本嘈杂的情况。最终可以精确统计文本数量。

我们使用了以下算法来识别网格。

首先,我在二值化镜像中使用这个连接组件算法。

然后我们发现图中左下角有些是真,所哟我们通过二维周期函数来调整网格识别。

修正网格失真背后主要的思想是利用图形峰值点找到非线性几何失真,换句话说,我们必须找到这个函数的最大值的和。另外,我们还需要一个最佳失真值才行。

我们使用ScipyPython模块中的RectBivariateSpline函数来参数化几何失真。并用Scipy函数进行优化。得到如下结果:

总而言之,这个方法缓慢且不稳定,所以坚决不打算使用这个方案。

光学字符识别

我们通过组连接识别发现文本,并识别完整的单词。

识别通过连接组发现的文本

对于文本识别,我们使用卷积神经网络(CNN)接收相关字体进行培训。输出部分,我们通过对比来提升概率。我们那个几个最初的几个选项多对比,发现有99%的准确识别率后。又通过对比字典来提高准确度,并消除相关类似的字符,如"З" 和 "Э"造成的错误。

然而,当涉及嘈杂的文本时,该方法性能却十分低下。

识别完整的单词

当文本太嘈杂的时候,需要找到完整的单词才能进行单个字母的识别。我们使用下面两个方法来解决这个问题:

  • LSTM网络
  • 图像非均匀分割技术

LSTM网络

您可以阅读这些文章,以更加深入了解使用卷积神经网络识别序列中的文本 ,或我们可以使用神经网络建立与语言无关的OCR吗? 为此,我们使用了OCRopus库来进行识别。

我们使用了等宽的字体来作为人工识别样本进行训练。

训练结束后,我们由利用其他数据来测试我们的神经网络,当然,测试结果非常积极。这是我们得到的数据:

训练好的神经网络在简单的例子上表现十分优秀。同样,我们也识别到了网格不适合的复杂情况。

我们抽取的相关的训练样本,并让他通过神经网络进行训练。

为了避免神经网络过度拟合,我们多次停止并修正训练结果,并不断加入新数据作为训练样本。最后我们得到以下结果:

新的网络擅长识别复杂的词汇,但是简单的文字识别却并不好。

我们觉得这个卷积神经网络可以细化识别单个字符来使文本识别更加优秀。

图像非均匀分割技术

因为收据字体是等宽的字体,所以我们决定按照字符分割字体。首先,我们需要知道每个字母的宽度。因此,字符的宽度尤为重要,我们需要估计每个字母的长度,利用函数,我们得到下图。选择多种模式来选取特定的字母宽度。

我们得到一个单词的近似宽度,通过除以字符中的字母数,给出一个近似分类:

区分最佳的是:

这种分割方案的准确度是非常高的:

当然,也有识别不太好的情况:

分割后我们在使用CNN做识别处理。

从收据中提取含义

我们使用正则表达式来查找收据中购买情况。所有收据都有一个共通点:购买价格以XX.XX格式来撰写。因此,可以通过提取购买的行来提取相关信息。个人纳税号码是十位数,也可以通过正则表达式轻松获取。同样,也可以通过正则表达式找到NAME / SURNAME等信息。

总结

  1. 不论你选择什么方法,LSTM或者其他更加复杂的方案,都没有错误,有些方法很难用,但是有些方法却很简单,因识别样本而异。
  2. 我们将继续优化这个项目。目前来看,在没有噪声的情况下,系统性能更加优秀。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
深入浅出了解OCR识别票据原理
光学字符识别技术(OCR)目前被广泛利用在手写识别、打印识别及文本图像识别等相关领域。小到文档识别、银行卡身份证识别,大到广告、海报。因为OCR技术的发明,极大简化了我们处理数据的方式。
机器学习AI算法工程
2020/03/26
1.5K0
【光学字符识别】OCR 浅述
文字是信息的重要载体之一。通过书写、印刷、电子设备等方式,文字可以被记录下来并传递给他人。文字也是语言的重要组成部分,人们可以通过文字来表达自己的思想、感情和意图。在信息化时代,文字仍然是最基本、最重要的信息传递方式之一,也有着其不可替代的优势,如:简短明了、方便快捷、易于编辑、可归纳整理等。
青橙.
2023/08/25
9080
美团的OCR方案介绍
近年来,移动互联、大数据等新技术飞速发展,倒逼传统行业向智能化、移动化的方向转型。随着运营集约化、数字化的逐渐铺开,尤其是以OCR识别、数据挖掘等为代表的人工智能技术逐渐深入业务场景,为用户带来持续的经济效益和品牌效应。图书情报领域作为提升公共服务的一个窗口,面临着新技术带来的冲击,必须加强管理创新,积极打造智能化的图书情报服务平台,满足读者的个性化需求。无论是高校图书馆还是公共图书馆,都需加强人工智能基础能力的建设,并与图书馆内部的信息化系统打通,优化图书馆传统的服务模式,提升读者的借阅体验。
机器学习AI算法工程
2021/10/14
1.8K0
美团的OCR方案介绍
【深度学习】OCR文本识别
OCR(optical character recognition)文字识别是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程;即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
天天Lotay
2023/04/26
7.8K0
【深度学习】OCR文本识别
OCR检测与识别技术
在过去的数年中,腾讯数平精准推荐(Tencent-DPPR)团队一直致力于实时精准推荐、海量大数据分析及挖掘等领域的技术研发与落地。特别是在广告推荐领域,团队自研的基于深度在线点击率预估算法及全流程实时推荐系统,持续多年在该领域取得显著成绩。而在用户意图和广告理解上,借助于广告图片中的文本识别以及物体识别等技术手段,可以更加有效的加深对广告创意、用户偏好等方面的理解,从而更好的服务于广告推荐业务。 OCR(Optical Character Recognition, 光学字符识别)是指对输入图像进行分析识
用户1263954
2018/06/22
25.4K1
【AI in 美团】深度学习在OCR中的应用
AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技术应用于搜索、推荐、广告、风控、智能调度、语音识别、机器人、无人配送等多个领域,帮助美团3.2亿消费者和400多万商户改善服务和体验,帮大家吃得更好,生活更好。
美团技术团队
2018/08/01
2.1K0
【AI in 美团】深度学习在OCR中的应用
7大核心技术:智能OCR如何助力市政单位文档处理数字化转型
文档数据质量参差不齐,模糊、倾斜、印章遮盖等问题是智能识别的主要障碍。OCR通过以下技术模块解决这些难题:
思通数科
2024/11/24
2730
7大核心技术:智能OCR如何助力市政单位文档处理数字化转型
【Dev Club 分享】深度学习在 OCR 中的应用
Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。 本期,我们邀请了 腾讯 TEG 技术工程师“文亚飞”,为大家分享《深度学习在OCR中的应用》。 下面是分享实录整理: ---- 大家好,我是文亚飞,来自腾讯TEG,目前负责图像识别相关的工作。OCR(光学字符识别)旨在从图片中检测和识别文字信息,本次分享将介绍我们在OCR技术研发过程中的一些方法和经验总结。 一,OCR背景及基本框架介绍 OCR技术从上世纪60年代就开
腾讯Bugly
2018/03/23
3.7K0
OCR技术的昨天今天和明天!2023年最全OCR技术指南!
OCR是一项科技革新,通过自动化大幅减少人工录入的过程,帮助用户从图像或扫描文档中提取文字,并将这些文字转换为计算机可读格式。这一功能在许多需要进一步处理数据的场景中,如身份验证、费用管理、自动报销、业务办理等都显得尤为实用。现如今,OCR解决方案会结合AI(人工智能)和ML(机器学习)技术,以自动化处理过程并提升数据提取的准确性。本文将介绍该技术的前世今生,一览该技术的阶段性发展:传统OCR技术统治的过去,深度学习OCR技术闪光的现在,预训练OCR大模型呼之欲出的未来!
合合技术团队
2023/07/13
3K0
OCR技术的昨天今天和明天!2023年最全OCR技术指南!
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景
OCR(Optical Character Recognition,光学字符识别)是指对图像进行分析识别处理,获取文字和版面信息的过程,是典型的计算机视觉任务,通常由文本检测和文本识别两个子任务构成。
汀丶人工智能
2023/06/11
3.4K0
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景
OCR技术简介
同时在本微信公众号中,回复“SIGAI”+日期,如“SIGAI0515”,即可获取本期文章的全文下载地址(仅供个人学习使用,未经允许,不得用于商业目的)。
SIGAI学习与实践平台
2018/10/18
7.5K0
OCR技术简介
腾讯数平精准推荐 | OCR技术之识别篇
本文介绍了腾讯数平精准推荐团队的OCR识别算法,包括识别算法的演进之路以及4个代表性方法。
腾讯大数据
2018/05/08
13.1K4
腾讯数平精准推荐  | OCR技术之识别篇
【玩转OCR有奖征文】文字识别技术原理
在日常生活工作中,我们难免会遇到一些问题,比如图片上不合规的文字信息,却要一个一个地审核,很麻烦;快递公司的业务越来越好,但每天需要花费很多时间登记录入运单,效率非常的低。
程序员法医
2023/08/30
6770
OCR技术简介
光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。
SIGAI学习与实践平台
2018/09/26
17.1K0
OCR技术简介
01. OCR 文字识别学习路径
由于最近在接触一些OCR的工作,所以本期《晓说AI》和大家分享一下我的一些总结,先从基本的概念讲起。如有错误,还请指正,谢你3千遍。如有疑问,欢迎留言,我会第一时间答复。
Aalto
2019/10/12
13.3K0
01. OCR 文字识别学习路径
OCR大突破:Facebook推出大规模图像文字检测识别系统——Rosetta
作者 | Fedor Borisyuk,Albert Gordo,Viswanath Sivakumar
AI科技大本营
2018/09/28
2.7K0
OCR大突破:Facebook推出大规模图像文字检测识别系统——Rosetta
EAST、PixelLink、TextBoxes++、DBNet、CRNN…你都掌握了吗?一文总结OCR必备经典模型(二)
本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
机器之心
2023/08/08
1.3K0
EAST、PixelLink、TextBoxes++、DBNet、CRNN…你都掌握了吗?一文总结OCR必备经典模型(二)
自然场景文本检测识别技术综述
0629封面.jpg 番外 青蛇: 姐, 图像文本检测和识别领域现在的研究热点是什么? 白蛇: 白纸黑字的扫描文档识别技术已经很成熟,而自然场景图像文本识别的效果还不理想。倾斜字、艺术字、变形字、模
SIGAI学习与实践平台
2018/06/30
7.9K1
自然场景文本检测识别技术综述
使用深度学习的端到端文本OCR
在当今这样的时代,任何组织或公司要扩大规模并保持相关性,都必须改变他们对技术的看法,并迅速适应不断变化的形势。已经知道Google如何将图书数字化。还是Google Earth如何使用NLP识别地址。或者如何读取发票,法律文书等数字文档中的文本。
代码医生工作室
2020/04/20
2.2K0
【OCR技术系列一】光学字符识别技术介绍
注:此篇内容主要是综合整理了光学字符识别 和OCR技术系列之一】字符识别技术总览,详情见文末参考文献
闪电gogogo
2018/08/10
6.1K0
相关推荐
深入浅出了解OCR识别票据原理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档