跳至內容。

如需訓練基於神經網路 LSTM 的 Tesseract 4.00,請參閱訓練 Tesseract 4.00


注意: 以下說明適用於 Tesseract 的較舊 3.0x 版本。

製作 Box 檔案

對於執行 Tesseract 進行訓練步驟,Tesseract 需要每個訓練圖片都搭配一個「box」檔案。box 檔案是一個文字檔,其中列出訓練圖片中的字元,依序每行一個,並包含圖片周圍邊界框的座標。Tesseract 3.0 有一種模式可以輸出所需格式的文字檔,但如果字元集與目前的訓練不同,自然會導致文字不正確。因此,這裡的關鍵步驟是手動編輯檔案,放入正確的字元。

使用此命令列,在每個訓練圖片上執行 Tesseract

tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox

例如:

tesseract eng.timesitalic.exp0.tif eng.timesitalic.exp0 batch.nochop makebox

現在是困難的部分。您必須編輯檔案 [lang].[fontname].exp[num].box,並將檔案中每個字元的 UTF-8 代碼放在每行開頭,以取代 Tesseract 放入的不正確字元。範例:發行版本中包含一張圖片 eurotext.tif。執行上述命令會產生一個文字檔,其中包含以下幾行(第 141-154 行)

s 734 494 751 519 0
p 753 486 776 518 0
r 779 494 796 518 0
i 799 494 810 527 0
n 814 494 837 518 0
g 839 485 862 518 0
t 865 492 878 521 0
u 101 453 122 484 0
b 126 453 146 486 0
e 149 452 168 477 0
r 172 453 187 476 0
d 211 451 232 484 0
e 236 451 255 475 0
n 259 452 281 475 0

由於 Tesseract 是在英文模式下執行,因此無法正確辨識母音變音符號。此字元需要使用支援 UTF-8 的編輯器進行更正。在這種情況下,u 需要變更為 ü

推薦支援 UTF-8 的編輯器:Notepad++、gedit、KWrite、Geany、Vim、Emacs、Atom、TextMate、Sublime Text。選擇一個!Linux 和 Windows 都有字元對應表,可用於複製無法輸入的字元。

理論上,box 檔案中的每一行都應代表訓練檔案中的其中一個字元,但如果您有水平斷開的字元(例如下雙引號 „),則可能會有 2 個需要合併的框!

範例:第 116-129 行

D 101 504 131 535 0
e 135 502 154 528 0
r 158 503 173 526 0
, 197 498 206 510 0
, 206 497 214 509 0
s 220 501 236 526 0
c 239 501 258 525 0
h 262 502 284 534 0
n 288 501 310 525 0
e 313 500 332 524 0
l 336 501 347 534 0
l 352 500 363 532 0
e 367 499 386 524 0
” 389 520 407 532 0

如您所見,下雙引號字元已表示為兩個單逗號。邊界框必須合併如下

這給出

D 101 504 131 535 0
e 135 502 154 528 0
r 158 503 173 526 0
„ 197 497 214 510 0
s 220 501 236 526 0
c 239 501 258 525 0
h 262 502 284 534 0
n 288 501 310 525 0
e 313 500 332 524 0
l 336 501 347 534 0
l 352 500 363 532 0
e 367 499 386 524 0
” 389 520 407 532 0

如果您在訓練圖片上沒有成功地將字元間隔開,則某些字元可能會合併到單一個框中。在這種情況下,您可以重新製作間隔更好的圖片並重新開始,或者如果該對字元很常見,則將兩個字元都放在行首,讓邊界框同時代表它們。(自 3.00 起,「字元」的描述限制為 24 個位元組。這將允許您使用 6 到 24 個 Unicode 來描述字元,具體取決於您的程式碼在 Unicode 集中的位置。如果有人遇到此限制,請提交一個問題,描述您的情況。)

請注意,box 檔案中使用的座標系統在左下角具有 (0,0)。

每行的最後一個數字是多頁 tiff 檔案中該字元的頁碼(以 0 為基底)。

有幾個用於編輯 box 檔案的視覺工具。請查看AddOns文件。

引導新的字元集

如果您嘗試訓練新的字元集,最好先在單一字體上努力製作一個好的 box 檔案,執行其餘訓練流程,然後在新語言中使用 Tesseract 按照以下方式製作其餘的 box 檔案

tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] -l yournewlanguage batch.nochop makebox

這應該使第二個 box 檔案更容易製作,因為 Tesseract 很可能可以正確辨識大部分文字。您可以隨時重複此順序,將更多字體加入訓練集(即,加入以下 mftrainingcntraining 的命令列),但請注意,沒有增量訓練模式允許您將新的訓練資料新增到現有集合中。這表示每次執行 mftrainingcntraining 時,您都是從命令列上提供的 tr 檔案從頭開始製作新的資料檔案,並且這些程式無法採用現有的 intproto / pffmtable / normproto 並直接新增到其中。

已提供 Tif/Box 配對!

這些語言的 Tif/Box 檔案配對可在 SourceForge 上的下載檔案庫中取得:荷蘭文 英文 法文 德文 德文 - Fraktur 義大利文 西班牙文

請注意,tiff 檔案已使用 G4 壓縮以節省空間,因此您必須先擁有 libtiff 或解壓縮它們。