OCR字符切割

原创 2016年06月02日 00:10:05

字符分割是OCR中相当重要的环节,  直接关系到最后的识别准确率.


最近一直在做车牌检测,  用颜色与edge定位中一直没有办法避免某些特殊情况的干扰,  

且样本来源未知,  没办法去设定一个相对较优的参数. (绝大部分时间用在这了=.=!)

用机器学习? 这方面我还不怎么懂而且也没有好的样本去训练, 准确率肯定还不如老方法.  

有点奇怪为什么那些论文对算法本身局限的解决并不谈及


有一种用先验的参数来分割字符的,  比如说先尺寸的归一化,  

利用每个字符的宽度间距是固定的这一特性来进行分割.


还有一种是利用垂直投影,  类似下面

图片来源:A Method of Multi-License Plate Location in Road Bayonet Image


当然还看到有用霍夫变换的,  用于字符倾斜矫正就不提了,  下面这篇文章利用hough变换进行分割

A New Algorithm for Character Segmentation of License Plate


更多的字符分割方法综述可以参看下面几篇文章,  点击可看原文, 多看看说不定会有什么启发

A SURVEY OF METHODS AND STRATEGIES IN CHARACTER SEGMENTATION

FEATURE EXTRACTION METHODS FOR CHARACTERRECOGNITION | A SURVEY

SEGMENTATION OF TOUCHING CHARACTERS IN PRINTEDDOCUMENT RECOGNITION 

Cursive Word Recognition: Methods and Strategies

An Overview of Character Recognition Focused on Off-Line Handwriting


我比较在意的部分是,  对于尺寸未知,  有噪声干扰且字符粘连的情况怎么解决?

推荐一篇很有价值的的文献:Text-based CAPTCHA Strengths and Weaknesses

还有一篇自然场景下的字符识别 Reading Digits in Natural Images with Unsupervised Feature Learning

下面都是第一篇综述的字符切割部分
首先它归纳了三大类字符分割方法, 他们之间可以互相结合
1.经典方法,  即把图像进行切割,  把可能的字符切割出来
2.基于识别的分割方法,  即搜索待识别的图像以找出可能的字符
3.将整个单词(word)作为整体来识别

关于切割的方法:

1.固定间距切割




2. 垂直投影,  相连的情况



3. Connected Component

  1.  Bounding Box (opencv中可以用boundingRect函数)
  2.  Splitting of Connected Components(often work as a follow-on to bounding box)
  3.  Landmarks(貌似不太靠谱)

关于字符分割的第一大类方法,  看了几天资料,  一般用的就是上面三种(如果有别的我应该有印象)

看大家识别验证码也是用的上述三种,  当然还有更高级的,  不用切割直接用CNN识别,  网上说很火很有效


关于切割前的预处理可能就要具体看应用了吧.

看到有用中值滤波去噪点的,  有用直方图均衡化来增强前景的.


也有用腐蚀去噪的,  多次腐蚀然后多次膨胀,  每次腐蚀、膨胀一个像素,  当干扰被腐蚀去除, 且在接下来的膨胀中

不再出现时说明干扰被去除(此文中所提到的开运算应该不是先腐蚀紧接着膨胀,  印象里多次的开闭运算是和进行一次一样的)

注意这个仅对干扰比待识别的字符小(细或大小不相近)时有用


相较之下 MRF aka Gibbs algorithm更有效(Text-based CAPTCHA中提到的,  我还没有研究过)


我想知道复杂背景比如不规律的网格怎么去除的?  暂时还没有找到方法


有一个方法要提一下,  针对车牌检测

         A License Plate-Recognition Algorithm for Intelligent Transportation System Applications

中提到用两个同心的滑窗,  判断两个M的比值是否大于给定数值


where M is the statistical measurement (mean value or standard deviation)



投影法切割字符http://blog.csdn.net/traumland/article/details/51586614

版权声明:本文为博主原创文章,未经博主允许不得转载。

ocr识别中的图像分割方法小结

ocr识别中的图像分割方法小结 Email:whowhoha@outlook.com       ocr 字符图像的特点是:背景复杂,存在如底纹、水印、底线、框线、加盖印章干扰叠加 ,同时...

Halcon中使用OCR时字符的分割以及字符粘连的处理方法

字符的分割是指在原图中将字符分割为单个的字符区域。这样,这些单个的字符才能被当作字符样本来训练分类器。因此,样本字符分割的好坏很大程度上影响mlp分类器的分类效果。...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

OCR字符切割实例

我们来看个字符分割的实例吧 如图我们能看到字符与线粘连 text-based captcha推荐的方法: 1. 水平或垂直投影的直方图分析  对于细小直线  J. Yan and A.S.E. A...

OCR字符识别

OCR字符识别   2012-07-23 16:36:34|  分类: 图像处理与计算机 |  标签:ocr   |字号大中小 订阅 简单、直观的实现优于复杂、难懂的实现,...

【OpenCV学习笔记】【教程翻译】五 (车牌识别之OCR分割)

车牌识别: 车牌识别的第二步主要是提取出车牌中的字符。对于每个被检测出的车牌,我们对车牌进行分割获取每个字符,然后用神经网络机器学习算法实现字符的识别。在这个过程中,我们也可以学习到如何评估一个分类算...

[机器学习笔记]Note16--应用示例:图像文字识别

继续是机器学习课程的笔记,本节课是最后一节内容了,主要是介绍一个应该–图中文字的识别。...
  • lc013
  • lc013
  • 2016年08月06日 21:55
  • 2310

字符级卷积神经网络(Char-CNN)实现文本分类--模型介绍与TensorFlow实现

本篇博客主要用于记录“Character-level Convolutional Networks for Text Classification”论文的模型架构和仿真实现方法。这是一篇2016年4月...

深度卷积网络CNN与图像语义分割

转载请注明出处: http://xiahouzuoxin.github.io/notes/级别1:DL快速上手级别2:从Caffe着手实践级别3:读paper,网络Train起来级别3:Demo跑起来...

拆图算法/切图算法/不粘连图片切割/验证码图片切割

借鉴了解验证码解析的论文,从中我了解了验证码解析的基础.
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OCR字符切割
举报原因:
原因补充:

(最多只允许输入30个字)