OCR文字识别
Posted thethomason
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OCR文字识别相关的知识,希望对你有一定的参考价值。
参考链接
- MATLAB参考文档:功能不会或无法实现可以查询
- OCR识别的开源分析:包含开源代码
- OCR技术系列之一:字符识别技术总览
- OCR技术系列之二:文字定位与分割
- OCR技术系列之三:大批量生成文字训练集
- OCR技术系列之四:基于深度学习的文字识别(3755个汉字)
- 腾讯OCR:自动识别技术
- 腾讯:OCR技术之检测篇
- 腾讯:OCR技术之识别篇
- 腾讯:OCR技术之系统篇
- 腾讯:OCR技术之数据篇
- 腾讯OCR—自动识别技术,探寻文字真实的容颜
整体流程
- 图片预处理:局部自适应去噪、字符区域检测、对字符尺寸进行评估、二值化处理、平滑去噪、倾斜校正
- 分割每个字符并构造最小外接矩阵
- 版面分析:区分图像部分和文字部分特征描述
- 将提取出来的字符与字模库中的字符进行对比(进行必要的动态调整)
- 结果输出
为什么要进行二值化处理
通过搜索产生0和1的跃变位置,可以快速准确的提取目标区域的边界像素点。边缘检测和处理
去噪
- 原始图像数据与二维高斯滤波模版进行卷积运算(模糊化)
- 高斯滤波可以减弱或者消除图像中的低频分量,但是不影响高频分量。低频分量对应于图像中灰度值变化缓慢的区域。因此高斯滤波可以时图像反差增加,边缘明显。
处理细小干扰:将灰度值低于30的值去掉
字符匹配可用的方法
- 欧氏距离
- 余弦距离(推荐)
- QDA
- L1范数
结果输出
区分相似字符(如W-w, Z-z, 0-O-o,1-l等),单纯依靠特征匹配很难区分出来,需要加入语言模型进行校正。
针对单字的识别方法的准确度不高问题,可以有下面的解决方案:
- 方案一:
对汉语文本识别处理中加入联想、词组信息,取得了较好的结果。但是准确的分词问题并未得到解决。如果单字识别错误,分词就会更加困难。
- 方案二:
将基于统计的MARKOV语言模型方法应用到中文文本识别处理中,利用语料统计得到中文相邻字的同现概率矩阵,把具有确定性边界的一个汉字序列(多数情况为一个句子)作为一个处理单元,用动态规划方法求出最佳选择。此方案更加高效。
引用论文:
计算机语言学方法在中文文字识别后处理中的应用
字符分割
- 分割单个字符
字符之间的像素理想情况下为零,如果存在噪声,只要噪声不大,就可以实现字符分割。
- 分割单行
利用差分差分方程计算每行的开头和结尾
字符识别
和字模库中的文字进行匹配,利用相关系数进行处理
后处理
相近字形处理和上下文关系
引用论文:
对电商平台图片中文字的识别模型研究
概念补充
ODE是常微分方程的英文缩写,即ordinary diffrential equation,如果在微分方程中,自变量的个数只有一个,这就是ODE方程,例如形如F(x,y,y‘,y")=0的方程就是一个二阶ODE方程;
PDE方程指偏微分方程,即:partial differential equation,指的是自变量的个数为两个或两个以上的微分方程,如y"(t)+y‘(x)=0(这里的导数指的是y对t及x的偏导数)。
从图像中检测目标
两个基本步骤:
检测可能的文字候选区
利用Hough变换方法分析候选区内扫描线灰度分布对候选区进行证实,并对候选区的形状进行修剪,使其尽可能紧凑的包含文字
现有的提取方法:
文理分析。Gabor滤波,空间方差分析等,提取文字区域,具有一定的通用性,但是对于文本的字体和风格比较敏感,存在定位不准和算法复杂度高的缺点
连通元素分析技术。具有很高的处理速度和定位精度,但是只适用于二值图像,不适用于彩色和灰度图像。
下面的算法可以检测出不同大小、方向、排列方式、字体的文本,对弱对比度情况下的文本也比较有效
文本检测技术
基于连通域的方法
基于滑动窗口的方法
基于深度学习的方法
首选基于Region Proposal的方法
其次是基于图像分割的方法
数平精准推荐
先检测文本区域,再找出文本行,获得了相比传统检测方法更好的结果。
实验证明,通过CNN提取深度特征,并结合RNN进行序列学习,能够大幅提高检测精度,尤其对于长文本(水平及具有一定倾斜角度的长文本)的检测。
以上是关于OCR文字识别的主要内容,如果未能解决你的问题,请参考以下文章