用于从 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=0
和 mask_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
)
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的主要内容,如果未能解决你的问题,请参考以下文章