用于从 Keras 读取验证码的 OCR 模型作者:A_K_Nain

Posted

技术标签:

【中文标题】用于从 Keras 读取验证码的 OCR 模型作者:A_K_Nain【英文标题】:OCR model for reading Captchas from Keras Author: A_K_Nain 【发布时间】:2021-09-05 07:35:03 【问题描述】:

我正在研究应用于 colab 中 Kaggle 的 word mnist 数据集的 OCR 模型。我受到来自 ocr 验证码的模型的启发,该模型具有由 A_K_Nain 在站点托管的 Keras 示例中编写的 LSTM 和 CTC 层:https://keras.io/examples/vision/captcha_ocr/

它对我有用。但现在我在编码和解码字符与数字之间有很多问题。我试图在ocring captcha网站上编译模型,我发现了同样的问题。 任何人都可以解释是什么问题以及是否有解决问题的方法。

我认为问题出在以下代码中:

将字符映射到整数

char_to_num = layers.experimental.preprocessing.StringLookup(
    vocabulary=list(characters), num_oov_indices=0, mask_token=None
)

将整数映射回原始字符​​strong>

num_to_char = layers.experimental.preprocessing.StringLookup(
    vocabulary=char_to_num.get_vocabulary(), mask_token=None, invert=True
)

这可能会给他的功能带来一些问题。

【问题讨论】:

【参考方案1】:

删除 num_oov_indices=0mask_token=None 对我有用。

将字符映射到整数


char_to_num = layers.experimental.preprocessing.StringLookup(
    vocabulary=list(characters))

将整数映射回原始字符​​h3>
num_to_char = layers.experimental.preprocessing.StringLookup(
    vocabulary=char_to_num.get_vocabulary(),invert=True
)

这是来自张量流文档的tutorial。

正向和反向查找对

此示例演示如何使用标准查找层的词汇表来创建反向查找层。

data = tf.constant([["a", "c", "d"], ["d", "z", "b"]])
layer = StringLookup(vocabulary=vocab)
i_layer = StringLookup(vocabulary=vocab, invert=True)
int_data = layer(data)
i_layer(int_data)

【讨论】:

以上是关于用于从 Keras 读取验证码的 OCR 模型作者:A_K_Nain的主要内容,如果未能解决你的问题,请参考以下文章

基于keras的cnn定长验证码识别

pytesseract——验证码的识别——PIL库的介绍

如何让这个 OCR 模型与可变长度示例一起工作?

简单的 OCR 识别验证码 Demo | Keras 实现

OCR软件能识别百度的验证码吗?

验证码是怎么被机器识别的?Keras+CNN模型验证码识别详解