日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像文字识别(三):Tesseract4.0训练字库,提高正确识别率

發布時間:2024/9/30 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像文字识别(三):Tesseract4.0训练字库,提高正确识别率 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??由于tesseract的中文語言包“chi_sim”對中文手寫字體或者環境比較復雜的圖片,識別正確率不高,因此需要針對特定情況用自己的樣本進行訓練,提高識別率,通過訓練,也可以形成自己的語言庫。

?

步驟:

1、工具準備:

(1)官方文檔:https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00

(2)Java虛擬機,由于jTessBoxEditor的運行依賴Java運行時環境,所以需要安裝Java虛擬機。

下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

?

(3)jTessBoxEditor2.0工具,用于調整圖片上文字的內容和位置,

下載地址:https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/

安裝包解壓后雙擊里邊的“jTessBoxEditor.jar”,或者雙擊該目錄下的“train.bat”腳本文件,就可以打開該工具了。

?

2、樣本圖片準備:(進行訓練的樣本圖片數量越多越好)

這里只準備2種不同字體樣本進行測試:

3、使用jTessBoxEditor生成訓練樣本的的合并tif圖片:

(1)打開jTessBoxEditor,選擇Tools->Merge TIFF,進入訓練樣本所在文件夾,選中要參與訓練的樣本圖片:

(2)點擊 “打開” 后彈出保存對話框,選擇保存在當前路徑下,文件命名為 “zwp.test.exp0.tif” ,格式只有一種 “TIFF” 可選。

tif文面命名格式[lang].[fontname].exp[num].tif
lang是語言,fontname是字體,num為自定義數字。

比如我們要訓練自定義字庫 zwp,字體名test,那么我們把圖片文件命名為 zwp.test.exp0.tif

?

4、使用tesseract生成.box文件:

在上一步驟生成的“zwp.test.exp0.tif”文件所在目錄下打開命令行程序,執行下面命令,執行完之后會生成zwp.test.exp0.box文件。

tesseract zwp.test.exp0.tif zwp.test.exp0 -l chi_sim -psm 7 batch.nochop makebox

?

?

?

5、使用jTessBoxEditor矯正.box文件的錯誤:

.box文件記錄了每個字符在圖片上的位置和識別出的內容,訓練前需要使用jTessBoxEditor調整字符的位置和內容。

打開jTessBoxEditor點擊Box Editor ->Open,打開步驟2中生成的“zwp.test.exp0.tif”,會自動關聯到“zwp.test.exp0.box”文件,這兩文件要求在同一目錄下。調整完點擊“save”保存修改。

?

6、生成font_properties文件:(該文件沒有后綴名)

(1)執行命令,執行完之后,會在當前目錄生成font_properties文件

?

echo test 0 0 0 0 0 >font_properties

(2)也可以手工新建一個名為font_properties的文本文件,輸入內容 “test 0 0 0 0 0” 表示字體test的粗體、傾斜等共計5個屬性。這里的“test”必須與“zwp.test.exp0.box”中的“test”名稱一致。

?

7、使用tesseract生成.tr訓練文件:

執行下面命令,執行完之后,會在當前目錄生成zwp.test.exp0.tr文件。

tesseract zwp.test.exp0.tif zwp.test.exp0 nobatch box.train

?

8、生成字符集文件:

執行下面命令:執行完之后會在當前目錄生成一個名為“unicharset”的文件。

unicharset_extractor zwp.test.exp0.box

?

9、生成shape文件:

執行下面命令,執行完之后,會生成 shapetable 和 zwp.unicharset 兩個文件。

shapeclustering -F font_properties -U unicharset -O zwp.unicharset zwp.test.exp0.tr

?

10、生成聚字符特征文件:

執行下面命令,會生成 inttemp、pffmtable、shapetable和zwp.unicharset四個文件。

mftraining -F font_properties -U unicharset -O zwp.unicharset zwp.test.exp0.tr

?

11、生成字符正常化特征文件:

執行下面命令,會生成 normproto 文件。

cntraining zwp.test.exp0.tr

?

12、文件重命名:

重新命名inttemp、pffmtable、shapetable和normproto這四個文件的名字為[lang].xxx。

這里修改為zwp.inttemp、zwp.pffmtable、zwp.shapetable和zwp.normproto

執行下面命令:

rename normproto zwp.normproto rename inttemp zwp.inttemp rename pffmtable zwp.pffmtable rename shapetable zwp.shapetable

?

13、合并訓練文件:

執行下面命令,會生成zwp.traineddata文件。

combine_tessdata zwp.

Log輸出中的Offset 1、3、4、5、13這些項不是-1,表示新的語言包生成成功。

將生成的“zwp.traineddata”語言包文件復制到Tesseract-OCR 安裝目錄下的tessdata文件夾中,就可以使用訓練生成的語言包進行圖像文字識別了。

?

14、測試:

輸入下面命令,-l后面為訓練生成的語言包。

tesseract test.PNG test -l zwp

使用新訓練的語言包進行文字識別后,會發現之前識別不出來的文字也可以識別出來了。

?

附:最終所有的生成文件:

總結

以上是生活随笔為你收集整理的图像文字识别(三):Tesseract4.0训练字库,提高正确识别率的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。