1 理論
1.1 用途
ctc 可用於未對齊的序列輸入的識別上,可完成語音識別及車牌字符識別任務。
1.2 原理
ctc出自論文:https://www.cs.toronto.edu/~graves/icml_2006.pdf
個人覺得這篇文章https://blog.csdn.net/luodongri/article/details/77005948是理論講解最清晰的,主要是符號比較少。但這篇文章不是以車牌字符識別爲例的,而是以語音識別爲例的,沒有包含特殊的空格字符。https://zhuanlan.zhihu.com/p/43534801是以車牌識別爲例的,包含了空格字符,雖然使用了LSTM,但並不影響對ctc的理解。https://distill.pub/2017/ctc/和https://zhuanlan.zhihu.com/p/42719047也是對理論講解的文章。
2 ctc decode
ctc decode主要是對網絡的預測進行解碼,包含了三種decode方法,分別是貪婪搜索、beam search和prefix beam search。
請參考https://zhuanlan.zhihu.com/p/39266552、https://blog.csdn.net/weixin_42615068/article/details/93767781和https://blog.csdn.net/u014514939/article/details/95667422。
個人對解碼部分還是比較疑惑,beam search和貪婪搜索難道不是一樣的嗎?
3 pytorch ctc loss 使用
pytorch中使用ctc的注意事項:https://zhuanlan.zhihu.com/p/67415439