今天閑來無聊,嘗試了一下OCR識別,嘗試了以下三種方案:
1.直接使用業界使用最廣泛的Tesseract-OCR。
Tesseract項目最初由惠普實驗室支持,1996年被移植到Windows上,1998年進行了C++化。在2005年Tesseract由惠普公司宣布開源。2006年到現在,都由Google公司開發及維護。
2.使用基於Tesseract-OCR封裝的Tess4j
3.調用百度雲OCR服務實現(AT兩家太貴,百度雲文字識別服務提供每個月15000次的免費調用)。
先說測試結果:
毫無意外的,百度識別率最高,如果要自己實現,原生tesseract-ocr比tess4j識別率高出很多。
具體實現:
1.百度雲OCR地址:https://cloud.baidu.com/product/ocr.html
JAVA開發指南:https://cloud.baidu.com/doc/OCR/OCR-Java-SDK.html
2.直接使用Tesseract-OCR,還有一個好處就是可以進行針對性的訓練,提高識別率,我沒有嘗試過。
參考:
Windows環境安裝tesseract-ocr 4.00並配置環境變量
注意:可以去github下載最新語言包文件,語言包是放在 tessdata文件夾,文件比較大,下載比較慢。
備注:截止到筆者寫文時已發布4.00版本。
3.使用Tess4j,(不建議使用,我在試用過程中發現錯誤率極高)
不過目前網上能找到的比較多的資料都是Tess4j。
有以下可參考:
直接可運行的項目:https://gitee.com/zhaohuihbwj/Tess4JDemo
注意:該項目可直接運行測試。建議在maven中將tess4j升級到最新版本。
該項目直接包含了語言包,tess4j依賴包比較多,克隆過程會比較漫長。
若本地已有語言包chi_sim.traineddata,eng.traineddata,osd.traineddata
可克隆我fork的版本,https://gitee.com/huanghongbo/Tess4JDemo,將以上語言包放入/src/resources/tessdata目錄。
其他參考資料:
1.官方參考:http://tess4j.sourceforge.net/
最新官方Tess4j包中已包含了對應dll文件,無需再單獨配置。