OCR(光学字符识别)技术简介
OCR技术起源
OCR最早的概念是由德国人Tausheck最先提出的,1966年他们发表了第一篇关于汉字识别的文章,采用了模板匹配法识别了1000个印刷体汉字。早在60、70年代,世界各国就开始有OCR的研究,而研究的初期,多以文字的识别方法研究为主,且识别的文字仅为0至9的数字。以同样拥有方块文字的日本为例,1960年左右开始研究OCR的基本识别理论,初期以数字为对象,直至1965至1970年之间开始有一些简单的产品,如印刷文字的邮政编码识别系统,识别邮件上的邮政编码,帮助邮局作区域分信的作业;也因此至今邮政编码一直是各国所倡导的地址书写方式。
20世纪70年代初,日本的学者开始研究汉字识别,并做了大量的工作。中国在OCR技术方面的研究工作起步较晚,在70年代才开始对数字、英文字母及符号的识别进行研究,70年代末开始进行汉字识别的研究,到1986年汉字识别的研究进入一个实质性的阶段,不少研究单位相继推出了中文OCR产品.早期的OCR软件,由于识别率及产品化等多方面的因素,未能达到实际要求。同时,由于硬件设备成本高,运行速度慢,也没有达到实用的程度。只有个别部门,如信息部门、新闻出版单位等使用OCR软件。1986年以后我国的OCR研究有了很大进展,在汉字建模和识别方法上都有所创新,在系统研制和开发应用中都取得了丰硕的成果,不少单位相继推出了中文OCR产品。进入20世纪90年代以后,随着平台式扫描仪的广泛应用,以及我国信息自动化和办公自动化的普及,大大推动了OCR技术的进一步发展,使OCR的识别正确率、识别速度满足了广大用户的要求。(文章摘自百度百科)
OCR技术第一次商用及生活中的各类用途(车牌号识别、银行卡号识别、车架号识别,快递单号识别等),OCR技术的各家性能比较。
IBM公司最早开发了OCR产品,1965年在纽约世界博览会上展出了IBM公司的OCR产品——IBMl287。当时的这款产品只能识别印刷体的数字、英文字母及部分符号,并且必须是指定的字体。20世纪60年代末,日立公司和富士通公司也分别研制出各自的OCR产品。全世界第一个实现手写体邮政编码识别的信函自动分拣系统是由日本东芝公司研制的,两年后NEC公司也推出了同样的系统。到了1974年,信函的自动分拣率达到92%左右,并且广泛地应用在邮政系统中,发挥着较好的作用。1983年日本东芝公司发布了其识别印刷体日文汉字的OCR系统OCRV595,其识别速度为每秒70~100个汉字,识别率为99.5%。其后东芝公司又开始了手写体日文汉字识别的研究工作。
中国OCR技术领头羊是谁,做到什么程度?
中国在OCR技术方面的研究工作相对起步较晚,在20世纪70年代才开始对数字、英文字母及符号的识别技术进行研究,20世纪70年代末开始进行汉字识别的研究。1986年,国家863计划信息领域课题组织了清华大学、北京信息工程学院、沈阳自动化所三家单位联合进行中文OCR软件的开发工作。至1989年,清华大学率先推出了国内第一套中文OCR软件--清华文通TH-OCR1.0版,至此中文OCR正式从实验室走向了市场。清华OCR印刷体汉字识别软件其后又推出了TH-OCR 92高性能实用简/繁体、多字体、多功能印刷汉字识别系统,使印刷体汉字识别技术又取得重大进展。到1994年推出的TH-OCR 94高性能汉英混排印刷文本识别系统,则被专家鉴定为“是国内外首次推出的汉英混排印刷文本识别系统,总体上居国际领先水平”。上个世纪90年代中后期,清华大学电子工程系提出并进行了汉字识别综合研究,使汉字识别技术在印刷体文本、联机手写汉字识别、脱机手写汉字识别和脱机手写数字符号识别等领域全面地取得了重要成果。具有代表性的成果是TH-OCR 97综合集成汉字识别系统,它可以完成多文种(汉、英、日)印刷文本、联机手写汉字、脱机手写汉字和手写数字的识别输入。几年来,除清华文通TH-OCR外,其它如尚书SH-OCR等各具风格的OCR软件也相继问世,中文OCR市场稳步扩大,用户遍布世界各地。
可以说目前印刷体OCR的识别技术已经达到较高水平。OCR产品已由早期的只能识别指定的印刷体数字、英文字母和部分符号,发展成为可以自动进行版面分析、表格识别,实现混合文字、多字体、多字号、横竖混排识别的强大的计算机信息快速录入工具。对印刷体汉字的识别率达到98%以上,即使对印刷质量较差的文字其识别率也达到95%以上。可识别宋体、黑体、楷体、仿宋体等多种字体的简、繁体,并且可以对多种字体、不同字号混合排版进行识别,对手写体汉字的识别率达到70%以上。特别是我国的汉字OCR技术经过十几年的努力,克服了起步晚、汉字字符集异常庞大等困难,单字的识别速度(指在单位时间内所完成的从特征提取到识别结果输出的字数)可以达到70字/秒以上。
OCR技术的基本原理
所谓OCR(Optical Character Reconginition 光字符识别技术),是指电子设备检查纸上打印的字符,通过检测暗亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。以车牌识别为例(文章来自CSDN的一篇博客):
1、车牌识别预处理:噪声过滤、自动白平衡、自动曝光以及伽马校对、边缘增强、对比度调整等。
2、车牌识别车牌定位:在通过图像预处理今后的灰度图像上进行部队扫描,判定车牌区域。
3、车牌识别字符切开:在图像中定位出车牌区域后,通过灰度化道闸、二值化等处理,精判定位字符区域,然后依据字符尺度特征进行字符切开。
4、字符识别:对切开后的字符进行缩放、特征提取,与字符数据库模板中的标准字符表达形式进行匹配区别。
5、效果输出:将车牌识别的效果以文本格式输出。
比较成熟的OCR产品有证件识别SDK、车牌识别SDK、文档识别SDK、银行卡识别SDK、表格识别SDK、票据识别SDK、名片识别SDK、护照识别SDK、身份证识别SDK等。
OCR(光学字符识别)技术简介的更多相关文章
- [Xcode 实际操作]七、文件与数据-(22)使用OCR光学字符识别技术识别银行卡号码
目录:[Swift]Xcode实际操作 本文将演示如何使用光学字符识别技术,识别信用卡上的卡号. OCR技术是光学字符识别的缩写(Optical Character Recognition), 是通过 ...
- Ocrad.js – JS 实现 OCR 光学字符识别
Ocrad.js 相当于是 Ocrad 项目的纯 JavaScript 版本,使用 Emscripten 自动转换.这是一个简单的 OCR (光学字符识别)程序,可以扫描图像中的文字回文本. 不像 G ...
- 非黑即白--谷歌OCR光学字符识别
# coding=utf-8 #非黑即白--谷歌OCR光学字符识别 # 颜色的世界里,非黑即白.computer表示深信不疑. # 今天研究一下OCR光学识别庞大领域中的众多分支里的一个开源项目的一个 ...
- 【OCR技术系列一】光学字符识别技术介绍
注:此篇内容主要是综合整理了光学字符识别 和OCR技术系列之一]字符识别技术总览,详情见文末参考文献 什么是 OCR? OCR(Optical Character Recognition,光学字符识别 ...
- 6 个优秀的开源 OCR 光学字符识别工具
转自:http://sigvc.org/bbs/thread-870-1-1.html 纸张在许多地方已日益失宠,无纸化办公谈论40多年,办公环境正限制纸山的生成.而过去几年,无纸化办公的概念发生了显 ...
- 开源OCR光学字符识别
纸张在 许多地方已日益失宠,无纸化办公谈论40多年,办公环境正限制纸山的生成.而过去几年,无纸化办公的概念发生了显着的转变.在计算机软件的帮助 下,包含大量重要管理数据和资讯的文档可以更方便的以电子形 ...
- IT行业新名词--透明手机/OCR(光学字符识别)/夹背电池
透明手机 机身设计的一大关键部分是可替换玻璃的使用,利用导电技术,在看不到线路的环境下,让LED发光. 这样的玻璃内含液晶分子,对于内容的显示则是通过电流对分子的刺激来实现.当手机断电后,分子位置会随 ...
- OCR (光学字符识别技术)安装
一.安装homebrew 1)打开终端直接输入安装命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.c ...
- OCR光学字符识别--STN-OCR 测试
1.同文章中建议的使用ubuntu-python隔离环境,真的很好用 参照:http://blog.topspeedsnail.com/archives/5618启动虚拟环境:source env/b ...
随机推荐
- Oracle提高SQL查询效率where语句条件的先后次序
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处 ...
- Spring boot之配置server信息
知识点: 1.修改端口号 2.修改context-path 3.其它配置说明 配置端口号: Spring boot 默认端口是8080, 如果想要进行更改的话, 只需要修改applicatoin.pr ...
- 【Java基础】谈谈集合.List
摘自:https://www.cnblogs.com/54chensongxia/p/11722828.html 目录 1. ArrayList 1.1 ArrayList的构造 1.2 add方法 ...
- 前端开发——让算法"动"起来
正文 当然在我们不清楚具体操作细节前我们可以先假设一下,我们能够用什么来实现.按照以前看过的排序动画我将其分为 1.Js操作Dom,再搭配简单的css 2.Canvas动画 之后在查资料的时候发现还有 ...
- jquery数组的合并 对象的合并
直接转自:https://www.cnblogs.com/ooo0/p/7737678.html 1.数组的合并 1.1 concat方法 var a=[1,2,3],b=[4,5,6]; var c ...
- Android中@id与@+id区别和sharedUserId属性详解
Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等. 如果在@后 ...
- 11G 新特性之 密码延迟认证
11G 新特性之 密码延迟认证 11G 新特性之 密码延迟认证 Table of Contents 1. 特性简述 2. 特性潜在引发问题 3. 关闭特性 1 特性简述 为了防止用户密码的暴力破解,从 ...
- navivate 下载
https://www.jianshu.com/p/5f693b4c9468?mType=Group
- Link标签
Link标签的属性:rel定义当前文档与目标文档之间的关系. rev定义目标文档与当前文档之间的关系. Link和@import的区别: 1.隶属上的差别 link是一个html的一个标 ...
- Python学习笔记:(十三)错误和异常
一.语法错误 在Python中语法错误称之为解析错误. 在语法分析器指出了出错的哪一行,并且在最先找到错误的位置标记了一个小小的箭头. 二.异常 1.异常处理 try except else fina ...