为什么会有";获取“U输出”U大小;是len(字母表)和#x2B;1 Keras OCR示例中的非len(字母表)?;
我只是一个Keras的初学者,我试图通过Keras实现一个OCR项目。所以我尝试从Keras OCR的例子中学习。下面是为什么会有";获取“U输出”U大小;是len(字母表)和#x2B;1 Keras OCR示例中的非len(字母表)?;,keras,ocr,Keras,Ocr,我只是一个Keras的初学者,我试图通过Keras实现一个OCR项目。所以我尝试从Keras OCR的例子中学习。下面是 我不明白为什么TextImageGenerator类中的“get_output_size”是len(字母表)+1,而不是len(字母表)? 如果有人能告诉我原因,我将不胜感激。这与用作成本函数的CTC层有关。也许阅读科学论文会给你更多的视角,但这与模型使用的“额外”类有关(“没有字母”)。 在使用CTC损失训练的神经网络中,需要一个额外的字符。这个额外的字符本质上意味着“在这
我不明白为什么TextImageGenerator类中的“get_output_size”是len(字母表)+1,而不是len(字母表)?
如果有人能告诉我原因,我将不胜感激。这与用作成本函数的CTC层有关。也许阅读科学论文会给你更多的视角,但这与模型使用的“额外”类有关(“没有字母”)。
在使用CTC损失训练的神经网络中,需要一个额外的字符。这个额外的字符本质上意味着“在这个位置看不到字符”,称为CTC blank 它用于允许文本的不同对齐,或允许字符之间有一些空白(想象一下一个包含“hello”或“hello”的图像,它们周围有空格,因为您想识别“hello”)。 当识别文本时,这些空格将被删除:例如,当使用最佳路径解码时,每个位置的最佳评分字符将被删除,但空格将被删除 为了更好地了解这个特殊的CTC空白字符,让我们看看下面的插图。神经网络的输出包含字符a、b和CTC空白(以“-”号表示)。 让我们为每个位置t0…t4选择最佳得分字符,这将为我们提供“aaa-b”。最佳路径解码删除了重复的字符,这给了我们“a-b”,最后删除了所有空白,这给了我们“ab”。
如果您想了解更多信息,请查看我的、或或。谢谢您帮助我解释这个问题…我将阅读一些关于CTC的文章…@CaptainSama当有人提供有帮助或解决问题的答案时,希望您作为提问者分别投票或接受。请看