应用OpenCV进行OCR字符识别
opencv自带一个字符识别的例子,它的重点不是OCR字符识别,而主要是演示机器学习的应用。它应用的是UCI提供的字符数据(特征数据)。
DAMILES在网上发布了一个应用OpenCV进行OCR的例子, http://blog.damiles.com/2008/11/basic-ocr-in-opencv/。
这些例子都只能用于学习OpenCV或熟悉OCR的简单流程,因为它们与当前比较专业的OCR引擎的识别率相去甚远。
这里写下OpenCV下OCR的流程:
1. 特征提取
2. 训练
3. 识别
特征提取
1. 在图像预处理后,提取出字符相关的ROI图像,并且大小归一化,整个图像的像素值序列可以直接作为特征。damiles是直接将整个字符图像转换化为vector向量特征作为特征输入的。
2. 但直接将整个图像作为特征数据维度太高,计算量太大,所以也可以进行一些降维处理,减少输入的数据量。拿到字符的ROI图像,二值化。将图像分块,然后统计每个小块中非0像素的个数,这样就形成了一个较小的矩阵,这矩阵就是新的特征了。
UCI就是这么处理,详见其说明http://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handwritten+Digits
OpenCV中letter_recog例子就是使用的其特征数据。
DAMILES应用了KNearest方法,对输入数据进行训练和识别。
knn=new CvKNearest( trainData, trainClasses, 0, false, K );
result=knn->find_nearest(testData,K,0,0,nearest,0);
而OpenCV自带例子中,提供了boost,mlp,knearest,nbayes,svm,rtrees这些机器学习方法,进行训练和识别。
这些例子的识别率不是很高,OCR识别率在90%以上才有较好的使用意义,所以,OCR还需要更多特征和分析方法,来提高识别率,tesseract是一个不错的开源OCR引擎。
在tesseract最初的字体库里,一种字体的字符样本库包括:94个字符,8种大小,4种字体(正常,粗体,斜体,斜粗体),每种20个样本,共60160个样本。
与UIC提供的字体库不同的是,tesseract提供的是标准印刷体字体库的识别,而UIC提供是手写体handwriting的特征数据。
应用OpenCV进行OCR字符识别相关推荐
- OpenCV 中的字符识别
OpenCV 中的字符识别通常使用 OCR 技术,OCR 可以识别图像中的字符并将其转换为可编辑的文本. 识别字符的方法有多种,以下是一些常见的方法: 基于模板匹配的字符识别方法:这种方法是将字符模板 ...
- 通过labview vision视觉模块写的带学习功能的OCR字符识别程序
labview vision视觉模块写的带学习功能的OCR字符识别程序 为解决在用Labview做OCR字符识别视觉开发中每次都要用开发工具自带的学习模块,自己用VDM函数自己写了个子程序,方便嵌入带 ...
- ocr字符识别_Google的光学字符识别(OCR)软件适用于248种以上的语言
ocr字符识别 Google的光学字符识别 (OCR)软件现在可用于248多种世界语言(包括所有主要的南亚语言). 它非常简单易用,并且可以检测大多数语言,且准确性超过90%. 该技术从图像中提取文本 ...
- Opencv之OCR识别(扫描后处理)
OCR是指对文本资料进行扫描后对图像文件进行分析处理,获取文字及版面信息的过程.用Opencv进行OCR识别时,通常分为两步:扫描.识别. 举例说明:提取下图上的文字信息. 扫描 在扫描过程中,我们也 ...
- OCR字符识别,支持手写字体识别,中英文识别
OCR字符识别,支持手写字体识别,中英文识别,基于深度学习,轻量级网络,检测进度高,支持python开发 编号:4199652712767280盐市口会玩的川乌
- 【深度学习】使用transformer实现OCR字符识别
目录 1.数据集相关操作 1.1标签最长字符个数统计 1.2char和id的映射字典构建 1.3数据集图像尺寸分析 2.将transformer引入OCR 2.1准备工作 2.2数据集创建 3.模型构 ...
- 基于python的OCR字符识别
官方网站:https://github.com/tesseract-ocr/tesseract 官方文档:https://github.com/tesseract-ocr/tessdoc 语言包地址: ...
- labview 如何实现ocr字符识别?
labview自带vision算法库包含了ocr字符识别,与halcon的区别是需要自己建立字库,今天我们来看看如何利用labview视觉助手建立字库. ocr工具建立字库 设置参考坐标系 建立新的字 ...
- opencv ocr字符识别_OCR深度实践系列:图像预处理
近一个半月时间没更了,在这段时间里针对OCR业务进行了深入研究,业务也已上线,谨以此篇作为OCR系列的开篇. 目前NLP+OCR的落地应用在市场上愈加火热,如金融领域的研报分析.司法领域的合同审核甚至 ...
最新文章
- 人工智能皇冠上的明珠:自然语言处理简介、最新进展、未来趋势
- 芯片的未来,靠这些技术了
- 面对 20 亿行代码,Google 如何管理?
- 小小知识点(十五)——origin pro 2018 安装和消除demo字样
- 基于InfluxDB+Grafana打造大数据监控利器--转
- webstorm前端调用后端接口_一篇前端同学对后端接口的吐槽
- oracle 10046详解
- 中科大计算机博士毕业条件,中国科技大学博士和硕士研究生毕业要求.doc
- 32位mysql安装包_MySQL安装指南(CPT103)
- 九、Pandas高级处理
- C语言之字符串探究(九):空格去除——trim系列
- enableEventValidation是干什么的?
- 自制 os 极简教程1:写一个操作系统有多难
- 过来人给Java初学者的建议!
- 利用echarts做堆积折线图
- css基本语法选择器
- 人生25句最美丽的名句
- 220609_Efficient Uncertainty-aware Decision-making for Automated Driving Using Guided Branching
- Ajax实现图片上传并预览
- 深入MTK平台bootloader启动之【 Pre-loader -> Lk】分析笔记