需求
原文地址
https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00
參考地址:https://blog.csdn.net/panbiao1999/article/details/74638749
介紹:
tesseract4.0集成了基于神經(jīng)網(wǎng)絡(luò)的識別引擎浪腐,比之前的版本準(zhǔn)確率有顯著的提高诗鸭,
對于復(fù)雜語言的訓(xùn)練比傳統(tǒng)tesseract更快
神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要更多的數(shù)據(jù)而且訓(xùn)練速度也要慢很多,
針對拉丁系語言楔绞,已有的數(shù)據(jù)模型已經(jīng)訓(xùn)練了大約40萬文本行外构,大約4500種字體跪帝,
其他語種沒有這么多字體粱哼,但也經(jīng)過了大量文本行的訓(xùn)練顶别。
相比與傳統(tǒng)的訓(xùn)練需要幾分鐘到幾小時谷徙,tesseract4.0的訓(xùn)練需要幾天到幾周的時間。
即使4.0版本已經(jīng)有了大量的訓(xùn)練驯绎,但是為了解決特定的問題完慧,還是需要重新訓(xùn)練。
訓(xùn)練的幾種方法:
1.微調(diào):在已經(jīng)訓(xùn)練好的語言包的基礎(chǔ)上剩失,額外訓(xùn)練自己添加的數(shù)據(jù)屈尼。
這種方式適合和原有語言包比較接近的册着,一些比較不常用的字體就不行了
2.替換top layer(或者任意多層layer):用新的數(shù)據(jù)重新訓(xùn)練top layer(或者任意多層)
當(dāng)微調(diào)不能解決問題時,這種方法是最好的選擇脾歧。
重新訓(xùn)練top layer 很可能對整個訓(xùn)練不會有太大的影響甲捏,保證真?zhèn)€訓(xùn)練的完整性
3.從頭開始訓(xùn)練:這是個令人望而生畏的任務(wù),除非你非常有信心鞭执,同時有充足的訓(xùn)練集
否則的話司顿,你只能得到一個過擬合的神經(jīng)網(wǎng)絡(luò)(訓(xùn)練很大,但處理實際數(shù)據(jù)很差)
上面幾種聽起來不同兄纺,但實際的訓(xùn)練步驟是完全一致的大溜。
除了命令行執(zhí)行的命令之外,非常容易同時進(jìn)行上面幾種訓(xùn)練
PS:舊的識別引擎還保留估脆,但在將來版本會刪除
訓(xùn)練準(zhǔn)備:
了解神經(jīng)網(wǎng)絡(luò)對了訓(xùn)練參數(shù)的理解有幫助钦奋,對于tesseract4.0的訓(xùn)練可以不需要任何神經(jīng)網(wǎng)絡(luò)的背景知識
開始訓(xùn)練之前推薦閱讀
1.https://github.com/tesseract-ocr/tesseract/wiki/NeuralNetsInTesseract4.00
2.https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality (強(qiáng)烈建議閱讀)
需要安裝的lib
sudo apt-get install libicu-dev
sudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev
系統(tǒng)要求,推薦是linux(mac也許可以疙赠,window不確定)
4核CPU最好锨苏,足夠的內(nèi)存,不支持GPU