前言
Tesseract-Ocr是我在編寫爬蟲項目中,用來識別圖片(不是驗證碼)的本地解決方案(因為客戶不想使用API識別,太貴),識別率目前達到了100%,可以說是相當了得,當然了,這取決于使用的traineddata。
簡介
Tesseract最初是在1985年至1994年間在Hewlett-Packard Laboratories Bristol和Greeley Colorado的Hewlett-Packard Co開發的,1996年進行了一些更改,移植到Windows,并且隨著C++在1998年興起。2005年Tesseract由惠普開源,然后從2006年至今,由谷歌繼續開發。
Tesseract-Ocr并不是一個軟件,它是一個軟件包,包含了一個OCR引擎【libtesseract】和一個命令行程序 【tesseract】。Tesseract 4增加了一個基于OCR引擎的新神經網絡(LSTM),該引擎專注于行級識別,但仍然支持Tesseract 3的傳統Tesseract OCR引擎,該引擎通過識別字符模式來工作。
要啟用與Tesseract 3的兼容性,你需要使用Legacy OCR Engine模式(--oem 0)。它還需要支持傳統引擎的traineddata(訓練好的數據文件),這些文件可以從tessdata存儲庫的文件獲取。
Tesseract支持識別unicode(UTF-8),可以“開箱即用”識別100多種語言。
Tesseract支持多種輸出格式:純文本,hOCR(HTML),PDF,TSV。主分支還具有ALTO(XML)輸出的實驗支持。
?????? 具體介紹可以上tesseract-wiki查看。
在Java上使用
創建項目,并引入Jar包
Maven
1
2
3
4
5
6
|
<!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j --> < dependency > < groupId >net.sourceforge.tess4j</ groupId > < artifactId >tess4j</ artifactId > < version >4.3.1</ version > </ dependency > |
Gradle
1
|
compile 'net.sourceforge.tess4j:tess4j:4.3.1' |
導入traineddata
traineddata是使用Tesseract-Ocr訓練好的數據文件,可以直接使用。這些文件你可以去tessdata存儲庫查找,也可以去谷歌搜索,當然了,你也可以自己訓練