【问题标题】:How to classify digits and words in Handwritten Text recognition如何在手写文本识别中对数字和单词进行分类
【发布时间】:2020-01-14 05:19:45
【问题描述】:

我正在使用神经网络进行手写文本识别, 认为我在这个中使用过

  • 用于图像处理的opencv
  • 页面分割和文本框提取
  • 分词(或任何更准确的分词/屏蔽文本的建议)

我有一个包含姓名、年龄和出生日期文本框的表格 name 字段的结果很好(能够识别),但对于 DOB 和年龄,它不能完全识别为数字,一些数字,如 '1' 和 '0' 被识别为 'i' 和 'o' .

我如何将其分类为单词和数字,或者我可以将任何其他模型仅用于数字(目前我已经使用 IAM dataset-words 训练了 NN),或者任何建议。

result : --i-16-16-
result : -i-i6-86-

【问题讨论】:

    标签: python python-3.x opencv computer-vision ocr


    【解决方案1】:

    您可以训练另一个 NN,因为数字识别不是一项相对计算密集的任务。

    或者,如果文档具有固定格式,那么您会知道年龄和出生日期的位置。在这种情况下,在对输出层设置阈值来决定输出时,只对表示数字的神经元执行此操作。

    例如,假设您有 5 个数字 {'1','2','3','4','5'} 和 5 个字母 {'a','e','i','o','u'}。训练有素的神经网络的输出层给出[0.38, 0.006, 0.01, 0.004, 0.1, 0.03, 0.009, 0.4, 0.001, 0.06]

    在其上执行 softmax 以获得概率解释。并选择一个输出。而是只对代表数字的神经元执行 softmax。您也可以将其视为先验概率为零。

    这里i 的激活度高于1。但是在执行 softmax 时,您只选择代表数字的神经元。因此你会得到1

    【讨论】:

    • 是的,我已经修复了出生日期和年龄文本框所在的甲酸盐。我需要使用另一个模型进行数字识别吗
    • 不,没有必要。正如我从输出层解释的那样,只选择代表数字的神经元的激活。
    • 如果我的图像同时包含数字和字母,例如“i23h”,该怎么办
    • 那么你可以使用你的初始模型,不是吗?如果您询问如何区分“o”和“0”,您可以使用更多数据进行训练。但即使有一个好的模型,它仍然可能给出错误的结果,即使是人类也很难区分,毕竟两者都只是小圆圈。如果你有一些像 dob 这样的上下文,那么你知道它是一个“0”。你也可以用它来做决定。
    猜你喜欢
    • 2010-10-31
    • 2018-09-02
    • 2016-03-11
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2021-10-05
    • 2015-02-28
    • 2010-12-03
    相关资源
    最近更新 更多