如何使用 Java 和 OpenCV 从边界框读取文本

How to Read Text From Bounding Box using Java With OpenCV

我正在研究手写表单识别系统,直到现在我已经达到了这一步,我已经能够使用 java 和 openCV 检测文本,但现在我想从每个文本中读取文本这些边界框 Click to open image

我一直在研究使用 java 和 openCV 找出相同的过程,但我找不到任何东西。

向我推荐一些链接、技术、方法或过程,以使用 "JAVA" 执行此特定任务。

这个答案比问题更笼统。我会尽量坚持问题陈述。

虽然手写文本的识别有很多正在进行的研究,但没有完全证明的方法可以解决所有可能的问题。

您在此处发布的示例图像比较嘈杂,同一字母的字体之间的差异非常大。这正是它变得棘手的地方。

我个人建议,一旦你在文本周围设置了边界框(你已经这样做了),运行 在所有这些边界框中提取轮廓,以便提取 单个 个字母。一旦你有了它们,你需要找出可以代表特定字母的最大方差(或至少 95% 置信区间)的相关 feature/s。

使用this/ese feature/s,你需要训练一个监督算法,字母作为训练数据,它们对应的值(例如实际值)作为标签。一旦你有了它,给它一些数据(最简单和最困难的情况)来分析准确性。

这些链接可以帮助您入门:

  1. 我在开始编码之前用我使用的功能集检查准确性的第一个工具之一:Weka

  2. 阅读有关机器学习及其工作原理的基础教程 - Personal Favorite

  3. 你可以试试TensorFlow.

  4. Simple Digit Recognition OCR in OpenCV-Python - 非常适合初学者。

希望对您有所帮助!