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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java tessdata训练_Tesseract训练中文字体识别

發(fā)布時(shí)間:2024/3/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java tessdata训练_Tesseract训练中文字体识别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

注:目前僅說(shuō)明windows下的情況

前言

網(wǎng)上已經(jīng)有大量的tesseract的識(shí)別教程,但是主要有兩個(gè)缺點(diǎn):

大多數(shù)比較老,有部分內(nèi)容已經(jīng)不適用。

大部分只是就英文的訓(xùn)練進(jìn)行探索,很少針對(duì)中文的訓(xùn)練。

接下來(lái)盡可能詳細(xì)的介紹自己tesseract訓(xùn)練中文識(shí)別的經(jīng)驗(yàn)。

本文中使用的tesseract版本為3.05;

為什么用3.05呢?

從官方文檔上看4.0版本(windows版本于2017年1月30號(hào)發(fā)布)顯著的提高了識(shí)別率,同時(shí)也加大了性能的消耗。理論上我是應(yīng)該用4.0。但這不是重點(diǎn)。重點(diǎn)是有windows的版本有詭異的bug! 花了好久沒(méi)有解決。

不過(guò)還好,4.0支持3.05版本的所有語(yǔ)法。換而言之,下面的所有內(nèi)容在4.0都是可以用的。

工具準(zhǔn)備

安裝過(guò)程

點(diǎn)擊下一步

勾選上同意,然后點(diǎn)擊下一步

點(diǎn)擊下一步

既然是要訓(xùn)練中文,記得勾選 additional language data

找到中文簡(jiǎn)體和中文繁體,按需勾選,然后點(diǎn)下一步

可以先不勾選,因?yàn)檫@樣直接下載語(yǔ)言的包實(shí)在太慢。可以從網(wǎng)頁(yè)上直接下載語(yǔ)言包,然后等程序安裝好后,放入安裝目錄下tessdata目錄下面

目錄。。畢竟是你的電腦,隨便選,你開(kāi)心就好,然后點(diǎn)下一步

點(diǎn)擊install

安裝完畢。

字體訓(xùn)練

我準(zhǔn)備了一份含漢語(yǔ)7000字和大小寫(xiě)英文字母和數(shù)字的文檔.如果你需要訓(xùn)練所有中文的話,請(qǐng)將所有docx文件內(nèi)所有字改成你要訓(xùn)練的字體。然后轉(zhuǎn)化成tif格式的圖片。

步驟(轉(zhuǎn)自tesseract的github)

Prepare training text.

準(zhǔn)備你的訓(xùn)練文本

Render text to image + box file. (Or create hand-made box files for existing image data.)

將文本轉(zhuǎn)為image+box文件.(如果你已經(jīng)有image文件的話,只需要手動(dòng)生成box文件)

Make unicharset file.

生成unicharset文件

Optionally make dictionary data.

有選擇性的生成字典數(shù)據(jù)

Run tesseract to process image + box file to make training data set.

運(yùn)行tesseract來(lái)處理之前的image+box文件生成一個(gè)訓(xùn)練數(shù)據(jù)集合

Run training on training data set.

在訓(xùn)練數(shù)據(jù)集合的基礎(chǔ)上進(jìn)行訓(xùn)練

Combine data files.

合并數(shù)據(jù)文件

下面所列的步驟其實(shí)稍有不同。

如果有多張圖片[可選]

如果是其他圖片格式,將其轉(zhuǎn)為tif格式。附上一個(gè)在線地址

使用之前安裝jTessBoxEditor工具將多張圖片合并為一張(菜單欄 Tools → Merge TIFF)。并按照格式 [lang].[fontname].exp[num] 重命名合并后的文件,這里我命名為 chi.fangzheng.exp0.tif。

為了方便下文中輸入路徑,在本文中將改好的tif圖拷貝至tesseract安裝之后的目錄下。

步驟二:生成box文件

貼一張官網(wǎng)命令:

官方命令

輸入路徑和輸出路徑文件名(除了后綴)應(yīng)該保持一致。

因?yàn)槲覀兪且?xùn)練中文所以還需要加上-l chi_sim(l代表language chi_sim是放在tessdata目錄下中文簡(jiǎn)體字體名的前綴),實(shí)際命令如下所示

tesseract.exe chi.fangzheng.exp0.tif chi.fangzheng.exp0 -l chi_sim batch.nochop makebox

步驟二:校正box文件

打開(kāi)之前安裝的jTessBoxEditor,

點(diǎn)擊open,然后找到tif圖片文件

通過(guò)這部分區(qū)域的按鈕對(duì)識(shí)別結(jié)果進(jìn)行校正

校正完之后點(diǎn)擊保存

步驟三:生成unicharset文件

生成tr文件

使用剛才修改正確后的 box 文件,對(duì) Tesseract 進(jìn)行訓(xùn)練,生成 .tr 文件:

//tesseract.exe [tif圖片文件名] [生成的tr文件名] nobatch box.train

tesseract.exe chi.fangzheng.exp0.tif chi.fangzheng.exp0 nobatch box.train

生成Character集合

//unicharset_extractor.exe [box文件名]

unicharset_extractor.exe chi.fangzheng.exp0.box

如果有多個(gè)圖片的話,則需要合并生成1個(gè)Character集合,命令如下

//unicharset_extractor.exe [1個(gè)box文件名] [1個(gè)box文件名] .....

unicharset_extractor.exe chi.fangzheng.exp0.box chi.fangzheng.exp1.box

創(chuàng)建字體特征文件

定義字體特征文件,Tesseract-OCR 3.01 以上的版本在訓(xùn)練之前需要?jiǎng)?chuàng)建一個(gè)名稱為 font_properties 的字體特征文件。font_properties 不含有 BOM 頭,文件內(nèi)容格式如下:

//其中 fontname 為字體名稱,必須與 [lang].[fontname].exp[num].box 中的名稱保持一致。 、 、 、、 的取值為 1 或 0,表示字體是否具有這些屬性。

//本次示例

fangzheng 0 0 0 0 0

步驟五:生成字典數(shù)據(jù)

如果是單個(gè)依次輸入下面兩條命令,多個(gè)文件則輸入多個(gè)tr

mftraining.exe -F font_properties -U unicharset -O chi.unicharset chi.fangzheng.exp0.tr

//mftraining.exe -F font_properties -U unicharset -O chi.unicharset [第一個(gè)tr] [第二個(gè)]...

cntraining.exe chi.fangzheng.exp0.tr

//cntraining.exe [第一個(gè)tr] [第二個(gè)]...

接下來(lái)手工修改 Clustering 過(guò)程生成的 4 個(gè)文件(inttemp、pffmtable、normproto、shapetable)的名稱為 [lang].xxx。例如我這里改為 chi.inttemp、chi.pffmtable、chi.normproto、chi.shapetable。

步驟七:合并數(shù)據(jù)文件

生成語(yǔ)言文件:

combine_tessdata chi.

需確認(rèn)打印結(jié)果中的 Offset 1、3、4、5、13 這些項(xiàng)不是 -1。這樣,一個(gè)新的語(yǔ)言文件就生成了。

chi.traineddata 便是最終生成的語(yǔ)言文件,將生成的 chi.traineddata 文件拷貝到 tessdata 目錄下,就可以用它來(lái)進(jìn)行字符識(shí)別了。

我們可以用剛剛的tif文件來(lái)測(cè)試一下識(shí)別能力:

//tesseract [圖片文件名] [需要輸出的文本文檔的文件名] -l [識(shí)別的語(yǔ)言]

tesseract chi.fangzheng.exp0.tif out -l chi

總結(jié)

以上是生活随笔為你收集整理的java tessdata训练_Tesseract训练中文字体识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。