微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于从 Keras 读取验证码的 OCR 模型作者:A_K_Nain 将字符映射到整数将整数映射回原始字符​​h3> num_to_char = layers.experimental.preprocessing.StringLookup( vocabulary=char_to_num.get_vocabulary(),invert=True ) 正向和反向查找对

如何解决用于从 Keras 读取验证码的 OCR 模型作者:A_K_Nain 将字符映射到整数将整数映射回原始字符​​h3> num_to_char = layers.experimental.preprocessing.StringLookup( vocabulary=char_to_num.get_vocabulary(),invert=True ) 正向和反向查找对

我在 colab 中为应用于来自 kaggle 的单词 mnist 数据集的 OCR 模型工作。我受到来自 ocr captcha 的模型的启发,该模型由 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
)

这可能在他的功能中存在一些问题。

解决方法

删除 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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。