tesseract-OCR字型檔練習
第一步:安裝需要用到的安裝包
jdk-8u101-windows-x64
tesseract-ocr-setup-3.05.01
jTessBoxEditor-1.7.3
簡體中文chi_sim
注意 tesseract需要編譯器(安裝包沒提供)Supported Compilers are:
GCC 4.8 and above
Clang 3.4 and above
MSVC 2015, 2017
安裝略…
第二步:tesseract-OCR初認識
-l lang
使用的語言。如果沒有指定,則採用英文。可以指定多種語言,由加號字元分隔。Tesseract使用3個字元的ISO 639-2語言代碼。(請參閱語言)
–psm N
將Tesseract設置為只運行布局分析的一個子集並假定某種形式的圖像。N的選項是:
0 =只有方向和腳本檢測(OSD)。
1 =使用OSD自動分頁。
2 =自動分頁,但沒有OSD或OCR。
3 =全自動頁面分割,但沒有OSD。(默認)
4 =假設一列可變大小的文本。
5 =假設一個統一的垂直排列文本塊。
6 =假設一個統一的文本塊。
7 =將圖像作為單個文本行處理。
8 =將圖像視為一個單詞。
9 =將圖像視為一個圓圈中的單個單詞。
10 =將圖像視為單個字元。
基本的命令行用法:
tesseract imagename outputbase [-l lang] [--oem ocrenginemode] [--psm pagesegmode] [configfiles...]
第三步:jTessBoxEditor訓練字型檔
之前玩沖頂大會的時候用過tesseract-OCR識別中文,可惜準確率很不理想,如下圖:
使用tesseract-OCR識別會得到
tesseract question.jpg result -l chi_sim --psm 6
result.txt
8.手木幾生產商諾墓亞最子刀是L又生產{十么為主?
發現錯了好多,機、基、初、以都沒有識別出來,有的還識別成兩個字。這個時候就需要我們來訓練中文字型檔。
準備好要識別的圖片question.jpg
第一步:
1、將圖片轉換成tif格式,用於後面生成box文件。可以通過畫圖,然後另存為tif即可。tif文面命名格式是有要求的:
lang 語言名(這可自定義,不要與現有的相同 eng、chi_sim等)
fontname 字體(就是字體名字,比如normal、italic、bold)
num 序號
接著打開cmd進入到該文件下,輸入以下命令:
[lang].[fontname].exp[num].tif
打開jTessBoxEditor目錄,雙擊train.bat打開(可能要等待5-6秒,耐心等待程序響應)
打開軟體後點擊Box Editor->Open->選擇對應的tif文件打開
得到如下效果
如果右邊字體沒有框框,左邊沒有內容是因為java8沒安裝好,或者安裝了兩個java版本,使用的是其他java版本
可以在控制台輸入
E:>java-version
javaversion"1.8.0_101"
Java(TM)SERuntimeEnvironment(build1.8.0_101-b13)
JavaHotSpot(TM) 64-BitServerVM(build25.101-b13,mixedmode)
來查看java版本。如果使用其他版本的,一般在環境變數Path裡面把java8的路徑寫在最前面就行。
接下來就是調整了。刪刪改改如下:
然後點擊save保存即可。
接著在E:TessBox下新建一個font_properties文件,注意沒有後綴
裡面內容寫入normal 0 0 0 0 0 表示默認普通字體
再接著新建一個txt文件,裡面內容寫入
echo Run Tesseract for Training..
echo Compute the Character Set..
echo Clustering..
echo Rename Files..
rename normproto hojun.normproto
rename inttemp hojun.inttemp
rename pffmtable hojun.pffmtable
rename shapetable hojun.shapetable
echo Create Tessdata..
combine_tessdata.exe hojun.
echo. & pause
保存,修改文件名為Train.bat。(為了偷懶,你也可以在命令里一句一句命令的敲)
雙擊批處理文件生成!
成功結果如下
把hojun.traineddata複製到C:Program Files (x86)Tesseract-OCR essdata下
試著識別
得到正確的結果
參考:
https://github.com/tesseract-ocr/tesseract/wiki/Training-Tesseract
訓練Tesseract
Tesseract-OCR的簡單使用與訓練
Tesseract-OCR識別中文與訓練字型檔實例
JAVA_HOME無效,java版本保持不變的問題解決
TAG:好奇如貓 |