ABBYY OCR技术教电脑阅读缅甸语(上)
缅甸联邦共和国,原名缅甸,是东南亚的一个国家,从1962年到2010年,缅甸一直被政变后上台的军政府统治,直至最近5年它才对外界开放,与其他国家建立了贸易与文化联系。
缅甸语由很多方言组成,但所有方言都共享一个核心字母表,该核心字母表主要用于正式文本和印刷媒体,有33个辅音和12个辅助字符,地区方言可能还使用其他字符,完整列表大约有核心字母表的三倍大。幸运的是,我们的工作是识别使用流行的至少10点大小的缅甸3字体书写的标准缅甸文本,文本图像可以是灰度、黑白或彩色的,分辨率至少有300dpi,下面是典型的缅甸文本样板:

在项目初步阶段,我们必须实现75%的OCR准确度,最小目标准确度为94%。
缅甸脚本就是所谓的alphasyllabary,在这里每一个辅音字母也都传达“默认”元音声,其他元音声使用特殊字符和辅音上面、下面、前面、后面的变音符号甚至辅音周围的变音符号转录。
字母大多由半圆组成,因为在过去,文本都是写在棕榈叶上,很容易被直线切口损坏。
缅甸语是一种有声调的语言,有三个主要声调—高、低和嘎吱声,和两个次要声调—入耳调和降调。

由于声调也要在书写中进行转录,缅甸脚本实际上有两种可分辨的符号,可能放在主要字母上面、下面或同时放在主要字母的上面和下面,这两种层叠的可分辨系统给OCR软件带来了重大挑战,但不仅仅如此。
若要让事情变得更复杂,有些字母组合可以融合在一起形成新字符。
在大多数常规术语中,光学字符识别如雷贯耳。当OCR软件收到图像文件时,它会使用OCR技术执行一些初步处理,将图像转换为黑白文本并纠正看得见的扭曲,接下来检测包含不同类型文本(标题、正文、脚注)、照片和表格的区域,文本块随后解析成行,行再到单词,单词再到字母,单个字母识别完成之后,文本将自下至上重组,缅甸文本的图像处理和板块检测和大多数其他语言里的操作一样,但是检测文本行是一件棘手的事。
由于变音符号的丰富性,教电脑识别短文本行非常困难,这就是原因所在,我们的运算法则使用很多功能体现文本行,其中的一个功能是虚构的基线,所有主要字符都位于这个基线上,电脑需知道在哪里画一条基线,以便生成有关单个字符的合理假设。
电脑使用统计数据检测基本文本行,为了收集必要的数据,要观察构成字母的黑点生成的直方图上的峰值,在欧洲字母的直方图上,有三个清晰可见的峰值对应于基线和小写字母的高度:

然而在缅甸语中,文本行正常宽度以外的众多变音符号在直方图中导致额外的统计学上有意义的峰值,为此,我们的最初面向欧洲脚本的运算法则,无法正确地识别缅甸文本行的重要参数。
在下面的图形中,程序正确地检测到了前两行,但没有检测到第三行:

针对文本行检测运算法则,我们必须要做一些调整,让其同样适用于缅甸文本。
ABBYY OCR技术教电脑阅读缅甸语(上)的更多相关文章
- ABBYY OCR技术教电脑阅读缅甸语(下)
文本行检测到之后,我们开始寻找单词和字母之间的间隙,这一次,我们运用了水平直方图,将大的间隙假设为单词之间的空隙,小的间隙理解为字母之间的空隙,检测缅甸文本中的空隙几乎没有出现问题,不像泰语,几乎没有 ...
- OCR技术浅析-无代码篇(1)
图像识别中最贴近我们生活的可能就是 OCR 技术了. OCR 的定义:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打 ...
- OCR技术
"起初我写这篇教程是在情人节,OCR可以带给你一整年的爱". 你之前肯定已经见过,OCR技术被应用于在平板电脑上将扫描文件处理成手写字迹,还被应用于谷歌最近添加到他们的Transl ...
- 教你阅读 Cpython 的源码(二)
第二部分:Python解释器进程 在上节教你阅读 Cpython 的源码(一)中,我们从编写Python到执行代码的过程中看到Python语法和其内存管理机制. 在本节,我们将从代码层面去讨论 ,Py ...
- [Mugeda HTML5技术教程之2] Mugeda HTML5富媒体平台简介
[Mugeda HTML5技术教程之2] Mugeda HTML5动画平台简介 摘要:Mugeda提供基于云的平台,供开发人员和设计人员快速的开发.发布和统计基于HTML5的,包含丰富动画和交互的移动 ...
- Python爬虫入门教程 56-100 python爬虫高级技术之验证码篇2-开放平台OCR技术
今日的验证码之旅 今天你要学习的验证码采用通过第三方AI平台开放的OCR接口实现,OCR文字识别技术目前已经比较成熟了,而且第三方比较多,今天采用的是百度的. 注册百度AI平台 官方网址:http:/ ...
- OCR技术浅探:特征提取(1)
研究背景 关于光学字符识别(Optical Character Recognition, 下面都简称OCR),是指将图像上的文字转化为计算机可编辑的文字内容,众多的研究人员对相关的技术研究已久,也有不 ...
- 10、技术经理要阅读的书籍 - IT软件人员书籍系列文章
技术经理是项目组中的重要角色.他需要负责软件项目中的重要部分,如果项目组没有架构师的话,技术经理还需要担负起架构师的职责.同时,技术经理要对项目中的所有重要的技术问题进行处理. 但是,在项目组内部,软 ...
- [Mugeda HTML5技术教程之16]案例分析:制作跨屏互动游戏
本节我们将要做一个跨屏互动应用的案例分析,该应用时给一家商场做活动使用的,是一个跨屏爱消除游戏.PC端页面显示在连接在PC的大屏幕上,参与活动的玩家可以用自己的手机扫描PC端页面上的二维码,连接成功后 ...
随机推荐
- C++ 动态存储空间的分配和释放 new与malloc的区别
使用new申请空间: 特点: 1.没有名字,只能通过指针间接访问它们. 2.从堆中申请空间 分类: 变量: 语法:指针变量 = new 类型名; Delete 指针变量 举例:int *p; p=ne ...
- Redis管道理解
Redis管道理解 简介 管道并不是Redis本身提供的功能,通常是客户端提供的功能: 管道就是打包多条无关命令批量执行,以减少多个命令分别执行消耗的网络交互时间(TCP网络交互),可以显著提升Red ...
- c++内存管理的一些资料
C++内存分配方式详解--堆.栈.自由存储区.全局/静态存储区和常量存储区 如何动态调用DLL中的导出类 在dll中导出类,并结合继承带来的问题 如何更好的架构一个界面库,欢迎大家一起讨论 pim ...
- android: 使用本地广播
前面我们发送和接收的广播全部都是属于系统全局广播,即发出的广播可以被其他任何 的任何应用程序接收到,并且我们也可以接收来自于其他任何应用程序的广播.这样就很容 易会引起安全性的问题,比如说我们发送的一 ...
- java判断传进来的是否是图片
public static void main(String[] args) throws IOException { String filePath = "C:\\Users\\80975 ...
- 如何让FireFox/chrome新打开的标签页在后台打开,而不是立即跳转过去
firefox: 地址栏输入about:config 找到下面三项,全部设为true browser.tabs.loadInBackground browser.tabs.loadDivertedIn ...
- centos安装EPEL repo
What is EPEL EPEL (Extra Packages for Enterprise Linux) is open source and free community based repo ...
- Machine、Swarm、Compose、SocketPlane这些Docker生态圈软件各解决了哪些问题?
Machine:解决的是操作系统异构安装Docker困难的问题,没有Machine的时候,CentOS是一种,Ubuntu又是一种,AWS又是一种.有了Machine,所有的系统都是一样的安装方式. ...
- 使用Buildozer部署Kivy到移动设备上
在安装好Buildozer软件之后,我们在包含main.py的文件夹下运行buildozer init这个命令,然后我们就会看到在该文件夹下有一个buildozer.spec这个文件,这个文件主要是用 ...
- 【Java】MyBatis与Spring框架整合(二)
本文讲解 Spring 注入映射器及事务功能的实现. 注入映射器实现 MyBatis 可以使用 SqlSession 的 getMapper ( Class<T> type ) 方法,根据 ...