主要观点总结
本文主要介绍了光学字符识别(OCR)技术及其应用场景。OCR技术能够识别纸质或电子文档、图片中的文字,并将其翻译成计算机可识别的文字。文章详细阐述了OCR技术的应用流程,包括预处理、灰度化、二值化、降噪、倾斜矫正等环节,并介绍了超分辨率技术和表格识别技术在OCR领域的应用。同时,文章还分析了OCR技术在实际应用中的难题和挑战,如复杂场景的文本识别、表格识别等。
关键观点总结
关键观点1: OCR技术简介
OCR是光学字符识别的缩写,指电子设备检查纸上打印的字符,通过特定的方法将其翻译成计算机可识别的文字的过程。
关键观点2: OCR的应用领域
OCR技术广泛应用于证件识别、文档检索、截图识别等领域,例如身份证、驾驶证、护照、名片、文档、票据、车牌等的识别。
关键观点3: OCR技术的工作流程
OCR的工作流程包括预处理、灰度化、二值化、降噪、倾斜矫正等环节,这些环节的处理质量和效果直接影响OCR识别的准确率和效率。
关键观点4: 复杂场景下的OCR识别
复杂场景下的文本识别是OCR技术面临的难题,包括模糊、泛黄的图像,背景丰富的图像,存在抖动、失焦等问题的图像等。超分辨率技术、传统图像算法等可以在一定程度上解决这些问题。
关键观点5: 表格识别技术的挑战
表格识别是OCR技术的另一个重要应用方向,但面临表格种类多样、样式复杂等问题,传统的表格识别方法难以满足现实需求,技术突破点包括减少表格处理时间、提高识别准确率等。
正文
文本是人类最重要的信息来源之一,自然场景中充满了形形色色的文字符号。OCR(Optical Character Recognition,光学字符识别)相信大家并不陌生,就是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。
工业场景的图像文字识别更加复杂,出现在很多不同的场合。例如医药品包装上的文字、各种钢制部件上的文字、容器表面的喷涂文字、商店标志上的个性文字等。在这样的图像中,字符部分可能出现在弯曲阵列、曲面异形、斜率分布、皱纹变形、不完整等各种形式中,并且与标准字符的特征大不相同,因此难以检测和识别图像字符。
对于文字识别,实际中一般首先需要通过文字检测定位文字在图像中的区域,然后提取区域的序列特征,在此基础上进行专门的字符识别。但是随着CV发展,也出现很多端到端的End2End OCR。
OCR的应用领域:
文字识别OCR通常应用在证件识别(身份证,驾驶证,护照,名片)、文档检索、截图识别等等。
OCR对图片都做了什么:
实际上我们预期的结果是把只有包含单个文字的图片交给计算机去翻译。
机器是怎么看到纸质或者电子文档或是图片上的文字的呢?接下来看一下他的工作流程。
工作流程:
首先要去掉杂质,这样程序就可以集中注意到文字上面。
预处理:
预处理主要包括灰度化,二值化,噪声去除,倾斜矫正等。
灰度化:
灰度图是只含亮度信息,不含色彩信息的图片。
在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值。
一般满足下面这个公式:
Gray=0.299R+0.587G+0.114B 这种参数考虑到了人眼的生理特点。
二值化:非黑即白
对摄像头拍摄的图片,大多数是彩色图像,彩色图像所含信息量巨大,对于图片的内容,我们可以简单的分为前景与背景,为了让计算机更快的,更好的识别文字,我们需要先对彩色图进行处理,使图片只前景信息与背景信息,可以简单的定义前景信息为黑色,背景信息为白色,这就是二值化图了。
经过灰度处理的彩色图像还需经过二值化处理将文字与背景进一步分离开。
二值化的过程中涉及到“阈值”的概念,简单来说就是想找到一个合适的值来作为一个界限,大于或小于这个界限的值变为白色或黑色即0或255。那么“阈值”是怎么选出来的?
有很多方法,这里先介绍下面两种:
方法1:
取阈值为127(相当于0~255的中数,(0+255)/2=127),让灰度值小于等于127的变为0(黑色),灰度值大于127的变为255(白色),这样做的好处是计算量小速度快,但是缺点也是很明显的,因为这个阈值在不同的图片中均为127,但是不同的图片,他们的颜色分布差别很大,所以用127做阈值,这种一刀切,效果肯定是不好的。
方法2:
使用直方图方法(也叫双峰法)来寻找二值化阈值,直方图是图像的重要特质。直方图方法认为图像由前景和背景组成,在灰度直方图上,前景和背景都形成高峰,在双峰之间的最低谷处就是阈值所在。
下图就可以将小于T的视为全部为黑色,大于T的为白色。
图像降噪:
现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。减少数字图像中噪声的过程称为图像降噪(Image Denoising)。
在演示的过程中可以看到当二值化之后的图片会显示很多小点,这些都是不需要的信息,会对后面进行图片的轮廓切割识别造成极大的影响,降噪是一个非常重要的阶段,降噪处理的好坏直接影响了图片识别的准确率。
最简单的降噪方法是算法中学到的DFS或者BFS(深度搜索和广度搜索)。我们对w*h的位图先搜索所有联通的区域(值为1的,我们看起来是黑色的,连接起来的区域)。所有联通区域算一个平均的像素值,如果某些联通区域的像素值远远低于这个平均值,我们就认为是噪点。然后用0代替他。
倾斜矫正:
拍照或者选取的图片不可能完全是水平的,倾斜会影响后面切出来的图片,所以要对图片进行旋转。
倾斜矫正最常用的方法是霍夫变换,其原理是将图片进行膨胀处理,将断续的文字连成一条直线,便于直线检测。计算出直线的角度后就可以利用旋转算法,将倾斜图片矫正到水平位置。
OCR在生活和工作中的应用:
1.证件OCR识别
证件OCR识别技术一开始是基于PC的,近几年开始向移动端发展,主要有android,ios平台的SDK,目前成熟的有身份证识别,行驶证识别,驾驶证识别,护照识别等。
2.银行卡OCR识别
银行卡OCR识别主要用于移动支付绑卡,是一项非常有技术含量的细分OCR技术,目前有一些APP已经在用,如支付宝,微信的实名认证,还有疫情期间扫描身份证录入信息等极大的便利了生活和办公。
3.名片OCR识别
名片OCR识别这一类技术也非常成熟了,目前市场上名片管理的APP大多已经使用过这类技术。
4.文档OCR识别
其实OCR技术最早的时候就是用于识别文档的,基于扫描技术,主要针对图书,报刊等,把这些纸质文档进行电子化,目前中英文识别率也非常高。近几年也开始用于移动端的文档识别,扫一扫就可以识别。
5.票据OCR识别
票据OCR识别顾名思义用于各式各样的票据识别,基于模板机制,需要针对不同的票据,定制不同的识别要素,这项技术也称要素识别OCR,最早的其实运用的是银行行业,现在企业、金融、电信机构都在使用。
6.车牌OCR识别
车牌识别技术主要应用在智能交通,小区停车场等,车牌识别的原理其实技术对车牌进行OCR识别,再进行比对的过程,现阶段也发展的相对成熟。生活中用于监测违章车辆,破获交通事故追根溯源等。
从OCR所识别图像的环境中分析,应用场景可分为清晰且具有固定模式的简单场景以及非清晰且模式不定的复杂场景。复杂场景的文本识别的难度极高,原因包括但不限于:图片背景极为丰富,经常面临低亮度、低对比度、光照不均、透视变形和残缺遮挡等问题,而且文本的布局可能存在扭曲、褶皱、换向等问题,其中的文字也会存在字体多样、字号字重颜色不一的问题。在很多实际情况下拍摄设备发生抖动、对焦偏差产生的失焦或者被拍摄对象处在运动中产生抖动模糊,还有文本印刷质量低下、书页陈旧破损、背景干扰过多或者光线条件差等问题,都会产生这类文本图像,这是目前的OCR技术的面临的一大难题。