『OpenCV』如何构建识别图像中字符的自动程序?一文解读OCR与HTR( 二 )
按照上面来看 , 所有特征都与图像的像素强度有关联 。 下一个问题是:如何找到像素强度?灰度图像的像素值就是像素的强度 , 同样也可以使用 OpenCV 和数学运算来完成这一任务 。使用 TensorFlow 的 HTR 这是本文所有问题中最具有挑战性的问题 。 在尝试了不同的解决方案之后(包括在手写字符数据集上重新训练 Tesseract) , 结果显示 Harald Scheidl 这篇文章的方法最佳:https://towardsdatascience.com/build-a-handwritten-text-recognition-system-using-tensorflow-2326a3487cd5作者使用了类似的方法 , 不过做了一些小修改 , 在这里使用了神经网络 , 由 5 个卷积神经网络(CNN)层、2 个循环神经网络(RNN)层和 1 个连接主义时间分类(CTC)层构成 。 用于训练这个神经网络的数据集是 IAM 数据集 , 但你也可以使用任何有标注的词图像数据集 。
本文插图
图 1.2:来自 Herald Scheidl 文章的示意图 CNN 层的输入是大小为 128×32 的灰度值图像 。 CNN 层的输出是一个序列 , 其包含 32 项 , 其中每一项都有 256 个特征 。 这些特征再进一步由 RNN 层处理 , 但是 , 某些特征已经表现出了与输入图像的特定高层面性质的高度相关性 。
本文插图
图 1.3:来自 Herald Scheidl 的文章的示意图 图 1.3 展示了处理一张包含文本「little」的图像时 , 可视化的 RNN 输出矩阵 。 最上面的图表中的矩阵包含了字符的分数 , 这些字符中的最后一项(第 80 个)是一个 CTC 空白标签 。 其它矩阵项 , 从上到下分别对应于如下字符:!」#&』()*+,-./0123456789:;?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 可以看到 , 大多数时间里 , 被预测的字符都刚好出现在它们在图像中的位置处(比如 , 你可以比较看看图像与图表中 i 的位置 。 只有最后一个字符 e 没有对齐 。 但这其实没有问题 , 因为 CTC 操作是无分割的 , 而且不在乎绝对位置 。 最下面的图表展示了字符 l、i、t、e 和 CTC 空白标签的分数 , 该文本可以轻松地被解码:我们只需要从每个时间步骤取出最可能的字符即可 , 这会构成所谓的最佳路径 , 然后我们丢弃重复的字符 , 最后丢弃所有空白 , 得到:「l—-ii—t-t—l-…-e」→「l—-i—t-t—l-…-e」→「little」 。更多有关如何实现这一方法的细节信息 , 请参看 Herald Scheidl 的文章 。 Tesseract(OCR) Tesseract 是目前最好的用于机器打印字符识别的开源 OCR 工具 。 Tesseract 支持 Unicode(UTF-8)字符集 , 可以识别超过 100 种语言 , 还包含多种输出支持 , 比如纯文本、PDF、TSV 等 。 但是为了得到更好的 OCR 结果 , 还必须提升提供给 Tesseract 的图像的质量 。 注意 , 在执行实际的 OCR 之前 , Tesseract 会在内部执行多种不同的图像处理操作(使用 Leptonica 库) 。 通常它表现不错 , 但在某些情况下的效果却不够好 , 导致准确度显著下降 。在将图像传递给 Tesseract 之前 , 可以尝试以下图像处理技术 , 但具体使用哪些技术取决于你想要读取的图像:
1. 反转图像
2. 重新缩放
3. 二值化
4. 移除噪声
5. 旋转/调整倾斜角度
6. 移除边缘
所有这些操作都可以使用 OpenCV 或通过 Python 使用 numpy 实现 。简单总结一下 , 本文介绍了与 OCR 和 HTR 相关的一些问题和可能的解决方案 。 如果你想要真正理解 , 一定要亲自动手实现它们看看 。 原文链接:https://medium.com/@ajinkya.khalwadekar/building-ocr-and-handwriting-recognition-for-document-images-f7630ee95d46
推荐阅读
- 人民网@【战“疫”说理】疫情防控中如何有效实现经济复苏?
- 『车家号』高低功率如何选?后期改装就能“低变高”了吗?,同一款发动机
- 手机、眼镜如何消毒?清洁要从细节做起
- 『音频』iOS如何导入百度云的音频(易剪和易剪多轨版)
- 十大突破性技术-NMN,叫你如何选择最好的NMN
- 妙家影视■如何计算低压开关柜铜排用量?这是我见过最漂亮的文章!
- 「史今中外s」潜伏大陆40年没被发现,结局如何?,女特务为隐藏身份嫁给农民
- 【妙家影视】如何计算低压开关柜铜排用量?这是我见过最漂亮的文章!
- 「心聆寒岁」一夜带货1.6亿!如何看待直播热潮?,商场失意直播却火了
- 查询个人信用征信,个人信用信息查询系统
