今天閒來無聊,嘗試了一下OCR識別,嘗試瞭如下三種方案:html
1.直接使用業界使用最普遍的Tesseract-OCR。java
Tesseract項目最初由惠普實驗室支持,1996年被移植到Windows上,1998年進行了C++化。在2005年Tesseract由惠普公司宣佈開源。2006年到如今,都由Google公司開發及維護。git
2.使用基於Tesseract-OCR封裝的Tess4jgithub
3.調用百度雲OCR服務實現(AT兩家太貴,百度雲文字識別服務提供每一個月15000次的免費調用)。maven
先說測試結果:測試
毫無心外的,百度識別率最高,若是要本身實現,原生tesseract-ocr比tess4j識別率高出不少。ui
具體實現:.net
1.百度雲OCR地址:https://cloud.baidu.com/product/ocr.htmlhtm
JAVA開發指南:https://cloud.baidu.com/doc/OCR/OCR-Java-SDK.htmlblog
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文件,無需再單獨配置。