将OpenCV应用于OCR字符识别

电脑杂谈  发布时间:2020-07-19 13:42:39  来源:网络整理

ocr字符识别是什么_ocr软件识别_ocr 识别

opencv附带一个字符识别示例. 它的重点不是OCR字符识别,而是主要演示机器学习的应用. 它使用UCI提供的字符数据(特征数据).

DAMILES在Internet上发布了使用OpenCV进行OCR的示例.

这些示例只能用于学习OpenCV或熟悉OCR的简单过程,因为它们与当前更的OCR引擎的识别率相差甚远.

这是OpenCV下OCR的过程:

1. 特征提取

2. 培训

3. 明

ocr软件识别_ocr 识别_ocr字符识别是什么

特征提取

1. 在图像预处理之后,提取与字符相关的ROI图像,并对尺寸进行归一化. 整个图像的像素值序列可以直接用作特征. Damiles将整个角像直接转换为矢量特征作为特征输入.

2. 但是ocr字符识别是什么,直接将整个图像用作特征数据的维数过高且计算量过多,因此也可以进行某种维数缩小以减少输入数据量. 获取角色的ROI图像并将其二值化. 将图像划分为块,然后计算每个小块中非零像素的数量,从而形成一个较小的矩阵,这是新功能.

这是UCI处理它的方式,请参考其描述+ Recognition + of + Handwriting + Digits

OpenCV中的letter_recog示例使用其特征数据.

培训和认可

训练和识别通常使用相同的机器学习方法:

ocr 识别_ocr字符识别是什么_ocr软件识别

DAMILES应用KNearest方法来训练和识别输入数据.

1. 数据输入:

在getData()函数中:

设置trainData和trainClasses的数据.

2. 初始化机器学习算法及其训练

knn = new CvKNearest(trainData,trainClasses,0,false,K);

trainData,已获取trainClasses数据.

ocr字符识别是什么_ocr 识别_ocr软件识别

K是类别数.

在CvKNearest算法的初始化中培训已经完成

3. 明

获取身份验证测试数据testData

result = knn-> find_nearest(testData,K,0,0,nearest,0);

结果是识别的结果.

在OpenCV自己的示例中,它提供了机器学习方法(例如boostocr字符识别是什么,mlp,knearest,nbayes,svm和rtree)进行训练和识别.

ocr软件识别_ocr字符识别是什么_ocr 识别

处理步骤和方法类似.

这些示例的识别率不是很高. 具有更好的使用意义,OCR识别率大于90%. 因此,OCR需要更多的功能和分析方法来提高识别率. Tesseract是一个很好的开源OCR引擎.

-------------------

在tesseract的原始字体库中,一种字体的字符样本库包括: 94个字符,8种大小,4种字体(普通,粗体,斜体,斜体粗体),每种都有20个样本,总共60160个样本.

与UIC提供的字体库不同,tesseract提供了对标准打印字体库的识别,而UIC提供了用于手写手写的特征数据.

数据之美提到,G公司(应该是Google)的研究结果表明,在自然语言和机器翻译领域,简单模型和大量有效样本数据比复杂模型更有效. 加上少量样本数据. . 该结论应适用于机器学习的许多领域. 计算速度足够快,样本也足够大,即使使用简单的模型,效果也可能出乎意料.

可以看出,收集有效的大型样本库非常重要.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-285947-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 何洋
        何洋

        015元刚好买辆车

      • 应物
        应物

        到明年就11元多一斤也就是说今年存10元到明年10

      热点图片
      拼命载入中...