【代碼實現和訓練】OCR技術——引入了Attention機制的crnn的印刷體漢字識別

前言

這裏先是參考了這個代碼:加入attention的crnn印刷體識別,on pytorch
然後我訓練了大概3個小時,loss從72出發稍微下降後維持在62.xxx 左右,就很迷。
測試效果全部識別爲“的的的的的的”,
不過看到他的訓練結果,感覺也並不是很感人,他的訓練大概得到88%左右的正確率,loss 大約2.xx
可能加入數據集去訓練或者是增加迭代次數和修改學習率以及網絡的optimizer可以達到想要的95%以上效果。
這裏有個解釋和分析了上述代碼的博客,但是也沒放出訓練效果,
估計這個代碼還是有點問題,需要魔改(寫代碼是一天的事,改代碼纔是真愛!!!)另外他提供的數據集,給的對應char字符上,有6個是重複且多餘的。
我看了下網絡,沒啥問題,但是針對其評論區的評論的沒有回覆和一些魔性訓練效果,我退縮了*0*,沒有 任何信息就比較難改了!

於是我開始改其他的代碼,例如一些seq2seq和英文的seq2seq加上attention機制的代碼,而且還有圖形化,例如這個attention代碼,按照作者提供的sample稍微跑了下:
可以看到對齊做的還是可以的,
在這裏插入圖片描述
在這裏插入圖片描述
但是遇到L這種比較細長的字符,還是有點問題,多識別出一個L,另外注意力位置也有點飄,這也是注意力硬編碼存在的一個問題*0*
在這裏插入圖片描述
在這裏插入圖片描述

模型和訓練

自己改了些參數和結構
訓練了半個epoch(469312個文本行,大約4,700,000個字形),訓練了8小時+,電腦算力:電腦全套硬件在此,準確率穩定在97.5左右

loss: 0.168524, perplexity: 1.183557, precision: 0.973437, batch_len: 280.000000

測試看看效果(爲啥您注意力都漂移了,您還是這麼能認??):
原圖:
在這裏插入圖片描述
識別結果:

output_result : 集 團 外 貿 出 口 迅 猛 發 展
ground truth  : 集 團 外 貿 出 口 迅 猛 發 展

在這裏插入圖片描述
測試了下,正確率大概在這個數:

1642.700000 out of 1749 correct
一些訓練相關的注意事項:

cnn+bilstm+lstm 訓練的一些技巧

測試模型下載地址:

雖然傳的這個不是最好的,但也不差,可以達到上面描述的精度,94%以上。
pan鏈接: https://pan.baidu.com/s/1BK5XQsyImAjU6xF3EEzPhg
密碼: rftq。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章