返回列表
OCR识别系列之一——基础介绍

OCR识别系列之一——基础介绍


1、OCR定义

  OCR,中文又叫光学字符识别,它是利用光学技术和计算机技术将目标上的文字信息提取出来。OCR识别是计算器视觉研究领域之一,目前生活中的应用也比较成熟,比方说,身份证识别,车牌号识别,拍题搜答案等应用。

2、OCR分类

  目前主要根据识别字体分成两类:印刷体识别和手写体识别。印刷体识别相对简单些,字体比较规则,有几十种字体规则。但是也有一些因为字符印刷墨迹的断裂,粘连,遮挡等造成识别困难,总的来说,印刷体的识别目前识别情况已经相当不错了,但是还没能达到100%识别准确。

  手写字体一直是OCR界想攻克的难关,主要因为手写字体比较多样化且具有个人特色,就比方说医生开的药方,人眼都很难辨认写的是什么,机器也很难理解。

3、OCR识别方法

典型的OCR技术流程:

输入——>图像预处理——>文字检测——>文本识别——>输出

传统的OCR识别技术流程:

图像预处理(彩色图像灰度化,二值化处理,图像变化角度检测,矫正处理等)——>版面划分(直线检测,倾斜检测)——>字符定位切分——>字符识别——>版面恢复——>后处理——>校对等

深度学习OCR识别技术流程:

输入图像——>深度学习文字区域检测——>预处理——>特征提取——>深度学习识别器——>深度学习后处理

传统机器学习和深度学习的相似点:

传统机器学习:数据预处理——>特征提取——>选择分类器

深度学习:数据预处理——>模型设计——>训练

  在深度学习没有发展起来前,对于复杂的场景基本都是采用传统方法做字符的特征提取,然后输入分类器,得到OCR模型。第一步特征设计和提取,我们需要对字符进行设计它独有的特征,来为后面分类做准备,字符有哪些特征呢?结构特征:字符端点,交叉点,圈的个数,线条数等,第二步将这些特征送入分类器(SVM)做分类,得出识别结果。这种方式的缺点是需要大量时间做特征设计,通过人工设计的特征(HOG)来训练字符识别模型。这种方法,一旦字符变化,模糊或者背景干扰等情况出现时,模型的泛化能力迅速下降,过度依赖字符切分的结果,在字符扭曲,粘连,噪声干扰的情况下,切分的错误尤其突出。这也就是为什么现在基本都会选择深度学习去做OCR。

  暴力的字符模板匹配法,通常应用在字体统一,清晰度高,识别场景简单,识别字符简单的基于深度学习的字符识别(文字检测+文字识别),目前来说用的效果比较好的就是先利用神经网络对文字区域进行定位,然后对定位到的文字进行字符识别。

  目前现有的可以直接使用的OCR主要有以下两种:
  l、谷歌开源OCR引擎Tesseract,因为是外国人开发的,所以中文识别效果并不好,但是在英文及数字识别上效果不错。
  2、百度公司开发的OCR的API,通过写一个python脚本就可以对其进行调用实现文字识别,但是并不是免费,少量调用不收费,大量调用就要收费了。用来进行汉字识别效果还不错。

 


网站编辑:小优智能科技有限公司 发布时间:Aug 02,2023
给我们留言
验证码