Tesseract-OCR 字符识别-样书训练
原文出處:http://www.myexception.cn/mobile/1119147.html
訓(xùn)練樣本
關(guān)于如何訓(xùn)練樣本,Tesseract-OCR官網(wǎng)有詳細(xì)的介紹http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3。這里通過一個(gè)簡單的例子來介紹一下如何進(jìn)行樣本訓(xùn)練。
1.下載工具jTessBoxEditor.?http://sourceforge.net/projects/vietocr/files/jTessBoxEditor/,這個(gè)工具是用來訓(xùn)練樣本用的,由于該工具是用JAVA開發(fā)的,需要安裝JAVA虛擬機(jī)才能運(yùn)行。
2. 獲取樣本圖像。用畫圖工具繪制了5張0-9的文樣本圖像(當(dāng)然樣本越多越好),如下圖所示:
??
??
3.合并樣本圖像。運(yùn)行jTessBoxEditor工具,在點(diǎn)擊菜單欄中Tools--->Merge TIFF。在彈出的對(duì)話框中選擇樣本圖像(按Shift選擇多張),合并成num.font.exp0.tif文件。4.生成Box File文件。打開命令行,執(zhí)行命令:
tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox? 生成的BOX文件為num.font.exp0.box,BOX文件為Tessercat識(shí)別出的文字和其坐標(biāo)。
注:Make Box File的命令格式為:
tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox其中l(wèi)ang為語言名稱,fontname為字體名稱,num為序號(hào),可以隨便定義。
5.文字校正。運(yùn)行jTessBoxEditor工具,打開num.font.exp0.tif文件(必須將上一步生成的.box和.tif樣本文件放在同一目錄),如下圖所示??梢钥闯鲇行┳址R(shí)別的不正確,可以通過該工具手動(dòng)對(duì)每張圖片中識(shí)別錯(cuò)誤的字符進(jìn)行校正。校正完成后保存即可。
6.定義字體特征文件。Tesseract-OCR3.01以上的版本在訓(xùn)練之前需要?jiǎng)?chuàng)建一個(gè)名稱為font_properties的字體特征文件。
font_properties不含有BOM頭,文件內(nèi)容格式如下:
<fontname> <italic> <bold> <fixed> <serif> <fraktur>其中fontname為字體名稱,必須與[lang].[fontname].exp[num].box中的名稱保持一致。<italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值為1或0,表示字體是否具有這些屬性。
這里在樣本圖片所在目錄下創(chuàng)建一個(gè)名稱為font_properties的文件,用記事本打開,輸入以下下內(nèi)容:
font 0 0 0 0 0
這里全取值為0,表示字體不是粗體、斜體等等。
7.生成語言文件。在樣本圖片所在目錄下創(chuàng)建一個(gè)批處理文件,輸入如下內(nèi)容。
rem 執(zhí)行改批處理前先要目錄下創(chuàng)建font_properties文件echo Run Tesseract for Training.. tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.trainecho Compute the Character Set.. unicharset_extractor.exe num.font.exp0.box mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.trecho Clustering.. cntraining.exe num.font.exp0.trecho Rename Files.. rename normproto num.normproto rename inttemp num.inttemp rename pffmtable num.pffmtable rename shapetable num.shapetable echo Create Tessdata.. combine_tessdata.exe num.將批處理通過命令行執(zhí)行。執(zhí)行后的結(jié)果如下:
需確認(rèn)打印結(jié)果中的Offset 1、3、4、5、13這些項(xiàng)不是-1。這樣,一個(gè)新的語言文件就生成了。
num.traineddata便是最終生成的語言文件,將生成的num.traineddata拷貝到Tesseract-OCR-->tessdata目錄下。可以用它來進(jìn)行字符識(shí)別了。
?
總結(jié)
以上是生活随笔為你收集整理的Tesseract-OCR 字符识别-样书训练的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tesseract识别图片中文字(一)
- 下一篇: 关于tesseract 出错信息:rea