浅谈OCR文字识别
OCR简介
OCR 是英文Optical Character Recognition的缩写,意思是光学字符识别,也可简单地称为文字识别,是文字自动输入的一种方法。它通过 扫描 和摄像等光学输入方式获取纸张上的文字图像信息,利用各种 模式 识别算法分析文字形态特征 可以将票据、报刊、书籍、文稿及其它印刷品转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。可应用于银行票据、大量文字资料、档案卷宗、文案的录入和处理领域。适合于银行、税务等行业大量票据表格的自动扫描识别及长期存储。
OCR流程
机器学习
图像预处理:去噪、灰度化、图像增强等
文本检测: 滑动窗口算法遍历整张图片
字符分类: 划分单个字符,识别单字
深度学习方法
文本区域检测:将图片中出现的文本位置检测处理,可能存在不同语言,不同文字大小,不同角度倾斜,不同程度遮挡等情况
CTPN:CTPN网络结合了CNN与LSTM深度网络,通过固定宽带的anchor提前proposal,能有效的检测出复杂场景的横向分布的文字区域,不定长度文本识别效果较好,是目前使用广泛的文字检测算法。
EAST:网络分为三部分,特征提取,特征融合和输出层
PixelLink: 采用了实例分割的方法完成文本区域检测,通过将统一实例中的像素链接,通过链接区域分割出文本实例,然后从分割结果中提取文本边界框,进行回归计算。
字符识别算法:将文本区域的字符识别出来。通过深度神经网络对目标区域进行特征提取,然后对固定特征进行提取和比对,得出识别结果。
CRNN+CTC: CRNN卷积循环神经网络,将特征提取,序列建模以及转录整合到统一的模型框架中。CRNN网络分为:卷积层、循环层和转录层三部分,CTC为无词典的转录方式,不会被局限在预定义词汇范围中。
OCR相关的开源资源
Tesseract
2006年开源的光学字符识别引擎,因为开源使用以及精准的检测效果,Tesseract的使用十分普遍。
MNIST 手写数字数据集
MNIST数据集包括了大量的手写数字图片,包括6万张训练数据集和1万张测试数据集,是广泛使用的开源数据集之一,很多深度学习任务的入门练习数据集。
COCO-text
包含日常生活里复杂场景中的文字,数据集提供了边界框的位置,区分了打印文字和手写文字,清晰和模糊的文字,文字的内容等标注信息,数据集包括了超过173,589标注了的文本区域,超过63,686张图片。
CTW中文街景数据集
数据集中包含了32285张图片,共计1018402个汉字,3850个汉字类别。标注信息包括了 文字行的边界框 文字单字的边界框 是否遮挡,扭曲 是打印文字或者手写文字等
OCR面临的挑战
汉字字符识别
汉字字符的识别难度相比较英文字符要更大,字符的识别过程可以近似为分类,引文字符的分类数远小于汉字单字的数量,所以分类的难度更高。除此之外,多语言混合也是字符分类任务中的挑战,字符识别更加复杂。
手写字符识别
印刷字体遵循固定的规则,而手写字符的识别相比较就更加复杂,每个人的书写习惯都不同,同一个人书写同样的字符也不完全相同,识别难度大大增加。
小结:OCR机器学习和深度学习对比,了解了OCR的实现步骤以及算法
华为云OCR服务调用指南
第一步: 准备工作
python + pycharm
第二步: 申请服务
第三步: 下载SDK
第四步: 配置SDK
OCRDemo.py
/v1.0/ocr/generla-text
第五步:运行案例
CTPN+CRNN 算法端到端实现文字识别
目录
1.OCR简介
2.CTPN与CRNN
3. 动手实践
OCR简介
OCR光学字符识别
发展时间较长
使用普遍
OCR流程
深度学习方法
文字区域检测:将图片中出现的文本位置检测出来,可能存在不同语言,不同文字大小,不同角度倾斜,不同程度遮挡等情况。
CTPN
字符识别算法:将文本区域的字符识别出来。通过深度神经网络对目标区域进行特征提取,然后对固定特征进行提取和比对,得出识别结果。
CTPN
网络结构
CNN-VGG16
RNN
FC
CRNN
卷积循环神经网络
卷积层 特征提取
循环层 深度双向LSTM
转录层 将RNN输出做softmax
完整的端到端OCR流程
了解了文本区域以及字符识别后,下面详细讲解完整的端到端OCR流程:
(1)准备一张含有文字的原图;
(2)对原图进行文字位置的检测,检测结果可能是水平矩形框,也可能是倾斜矩形框;
(3)从原图中把文字框对应的图片切下来,并旋转正,得到水平的文字块切片图;
(4)对每个文字块切片图依次进行字符识别,每个切片图的识别结果汇总起来,就得到原图的文字识别结果。
因此完整的端到端OCR流程是:输入原图 -> 文字检测 ->文字块切片 -> 字符识别 -> 识别结果汇总。
动手实践:本次案例地址:https://modelarts-labs-bj4.obs.cn-north-4.myhuaweicloud.com/notebook/DL_ctpn_crnn/DL_ocr.zip
学习心得:
OCR的全称是(optical character recognition),意思是文字识别,是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程,用自己的理解来说就是对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。其发展时间较长,企业使用普遍。OCR识别文字前,要对原始图片进行预处理,以便后续的特征提取和学习。这个过程通常包含:灰度化、二值化、降噪、倾斜矫正、文字切分等子步骤。
书山有路勤为径,学海无涯苦作舟,加油!
- 点赞
- 收藏
- 关注作者
评论(0)