跳至內容。

這是一個關於 Tesseract 4 的常見問題及其答案的集合,或指向這些答案的連結。另請參閱常見錯誤及其解決方案

關於 Tesseract 2.0x、3.0x 和 4.00.00alpha 舊版本的常見問題解答,請參閱舊版常見問題解答。***

Tesseract 4.0.0

我該如何取得 Tesseract?

有關詳細資訊,請參閱Tesseract Wiki 首頁

Tesseract 有哪些語言模型可用?

請參閱 Tesseract 手冊頁面,以取得 Tesseract 4.0.0 支援的語言腳本清單。

請參閱Tesseract Wiki 資料檔案頁面,以取得有關 Tesseract 4.0.0 可用的三種不同類型語言模型的資訊。

使用者貢獻的語言模型連結在資料檔案貢獻中。

Tesseract 的語言模型(traineddata 檔案)安裝在哪裡?

這些檔案應該安裝在 /usr/share/tesseract-ocr/4.00/tessdata(在 Ubuntu 上)。

如果您收到錯誤訊息,指出找不到 eng.traineddata,請嘗試設定 TESSDATA_PREFIX=/usr/share/tesseract-ocr/4.00/tessdata,一切就會正常運作。

Tesseract 可以產生哪些輸出格式?

Tesseract 的標準輸出是一個純文字檔案(UTF-8 編碼,以 ' 作為換行符號),並在每一頁之後使用 'FF 作為換頁字元。

如果將組態檔選項設定為 pdf,tesseract 將會產生可搜尋的 PDF 頁面,其中包含帶有隱藏、可搜尋文字圖層的影像。

如果將組態檔選項設定為 hocr,tesseract 將會產生符合hOCR 規格的 XHTML 輸出(如果作業系統使用 UTF-8 編碼以外的編碼來處理檔案名稱,則輸入影像名稱必須是 ASCII - 詳細資訊請參閱issue 809)。

如果將組態檔選項設定為 tsv,tesseract 將會產生以 Tab 分隔的值檔案。

tesseract -c textonly_pdf=1 將會產生一個僅包含文字的 PDF,可以與僅包含影像的 PDF 合併。如需相關討論和合併 PDF 的實用工具,請參閱issue 660

Tesseract 4.0.0 在 txt 輸出中使用哪些分頁符號?

預設情況下,文字輸出的每一頁都會以 FF 字元結束。

page_separator 設定為 LF 字元將會還原在每一頁結尾新增空白行的舊行為。

page_separator 設定為空字串將會省略分頁符號。

在較新版本的 Tesseract(2017 年 9 月之後)中,include_page_breaks 組態變數已移除。現在的預設值是以換頁控制字元分隔頁面。使用 -c page_separator="[PAGE SEPARATOR]" 來使用不同的分隔符號,並使用 -c page_separator='' 來完全停用分頁符號。

執行 Tesseract

我該如何從命令列執行 Tesseract 4.0.0?

如需有關如何從命令列執行 Tesseract 的資訊,請參閱Tesseract Wiki 命令列使用頁面。

tesseract --help 將提供已安裝版本的最新說明資訊。

如何在單次執行中處理多個影像?

準備一個文字檔案,其中包含每個影像的路徑

path/to/1.png

path/to/2.png

path/to/3.tiff

儲存該檔案,然後將其名稱作為 Tesseract 的輸入檔案。

tesseract savedlist 輸出

如何辨識多頁 TIFF 中的單頁文字?

在命令中將 tessedit_page_number 組態變數作為一部分使用(例如 tesseract myscan.png out -c tessedit_page_number=0)。

如何使用 Tesseract 將串流影像 OCR 為 PDF?

假設您有一個速度很慢但功能強大的多頁掃描裝置。如果在掃描期間進行 OCR 會很好。在此範例中,掃描程式會在產生影像檔案名稱時將它們傳送至 Tesseract。Tesseract 會將可搜尋的 PDF 串流至 stdout。

scanimage --batch --batch-print | tesseract -c stream_filelist=true - - pdf > output.pdf

如何讓錯誤訊息輸出到 tesseract.log 而不是 stderr?

若要還原將輸出寫入 tesseract.log 而不是寫入主控台視窗的舊行為,您需要一個包含以下內容的文字檔案

debug_file tesseract.log

將檔案命名為 logfile 並將其放入 tessdata/configs/ 中,然後將 logfile 新增至命令列的結尾。

如何抑制 tesseract 的資訊行?

請參閱issue 579。在 Linux 上,您可以將 stderr 和 stdout 輸出重新導向至 /dev/null。例如:

tesseract phototest.tif phototest 1>/dev/null 2>&1

使用 tesseract 3.02,您可以使用組態 quiet。例如:

tesseract phototest.tif phototest quiet

警告:這兩個選項都會讓您看不到錯誤訊息(如果有的話)。

我該如何使用 API 來使用 Tesseract 4.0.0?

如需使用 API 的範例程式,請參閱Tesseract Wiki API 範例頁面。

當同一個 TessBaseAPI 物件用於解碼多個影像時,Tesseract 的結果不一致。

嘗試將組態變數 classify_enable_learning 設定為 0 來關閉自適應分類器,或使用 ClearAdaptiveClassifier() 方法來清除自適應資料。

另請參閱tesseract 論壇上的討論。

我該如何改善 OCR 結果?

您應該注意,在許多情況下,為了獲得更好的 OCR 結果,您需要提高您提供給 Tesseract 的輸入影像的品質。

我可以提高 OCR 速度嗎?

如果您執行的是 Tesseract 4,您可以使用「快速」整數模型。

Tesseract 4 在處理頁面時最多也會使用四個 CPU 執行緒,因此對於單頁而言,它會比 Tesseract 3 快。

如果您的電腦只有兩個 CPU 核心,那麼執行四個執行緒會顯著降低速度,最好使用單一執行緒或最多兩個執行緒!使用單一執行緒可以消除多執行緒的計算負擔,並且也是透過每個 CPU 核心執行一個 Tesseract 處理程序來處理大量影像的最佳解決方案。

使用環境變數 OMP_THREAD_LIMIT 設定最大執行緒數。

若要停用多執行緒,請使用 OMP_THREAD_LIMIT=1

更新於 2019-10-06:最近的 tesseract 程式碼允許使用選項 -c tessedit_do_invert=0,這會帶來額外的速度。

我該如何嘗試下一個版本?

穩定的版本會定期發佈到下載頁面。在發佈之間,特別是在新版本發佈之前,最新的程式碼可從 git 取得。您可以在這裡找到來源:https://github.com/tesseract-ocr/tesseract.git,您可以在這裡透過命令列或按照連結到有關使用各種用戶端程式和外掛程式的操作說明進行檢查。

我該如何比較不同版本的 Tesseract?

如果您想要有多個版本的 tesseract(例如,您想要比較 OCR 結果),我建議您從原始碼編譯它們(例如在 /usr/src 中),而不是安裝它們。如果您想要測試特定版本,您可以透過以下方式執行它

/usr/src/tesseract-3.03/api/tesseract eurotext.tif eurotext

/usr/src/tesseract-ocr.3.02/api/tesseract eurotext.tif eurotext

其中 /usr/src/tesseract-3.03/api/tesseract 是 shell 包裝函式指令碼,它將確保使用正確的共用程式庫(無需安裝...)。

訓練

我該如何訓練 Tesseract LSTM 引擎?

可以訓練 Tesseract 來辨識其他語言或微調現有的語言模型。如需有關訓練 LSTM 引擎的資訊,請參閱Tesseract Wiki 訓練 Tesseract 4.00頁面。

請注意,tesstrain.shtesstrain.py 僅支援使用 UTF-8 訓練文字和 Unicode 字型建立的合成影像來進行訓練,以呈現文字。透過tesstrain makefile支援從掃描影像和轉錄進行訓練。

PDF

我該如何產生可搜尋的 PDF 輸出?

自 Tesseract 3.03 版起,可搜尋的 PDF 輸出是一項標準功能。像這樣使用 pdf 組態檔

tesseract phototest.tif phototest pdf

可搜尋的 PDF 看起來只包含空格或單字字母之間的空格。

PDF 本身可能沒有問題,但其隱藏、可搜尋的文字圖層可能無法被您的 PDF 閱讀器理解。例如,Mac OS X 中的 Preview.app 以此類問題而聞名,並且可能只會「看到」空格而沒有文字。請嘗試改用 Adobe Acrobat Reader。

我該如何將原始影像檔案和偵測到的文字整合到 PDF 中?

使用組態變數 -c textonly_pdf=1 並合併您僅包含影像和僅包含文字的 PDF。

如需詳細資訊,請參閱https://github.com/tesseract-ocr/tesseract/issues/660#issuecomment-274213632

其他

我可以使用 Tesseract 來進行手寫辨識嗎?

您可以這樣做,但效果不會很好,因為 Tesseract 是為列印文字而設計的。請尋找專注於手寫辨識的專案。

我可以使用 tesseract 進行條碼辨識嗎?

否。Tesseract 用於文字辨識。

文件在哪裡?

您正在看它。如果事情不明確,請在Tesseract Google 群組中搜尋,或在那裡向我們提問。如果您想要協助我們撰寫更多內容,請執行,並將其發佈到該群組!

我的問題不在這裡!

嘗試搜尋論壇:http://groups.google.com/group/tesseract-ocr 以及 GitHub 上開放和已關閉的問題:https://github.com/tesseract-ocr/tesseract/issues,因為您的問題可能之前已經出現過,即使它沒有在此處列出。


如果您有 FAQ、Wiki 頁面和問題未回答的問題,請在張貼到使用者郵寄清單/論壇之前搜尋。

如果您認為您在 Tesseract 中發現錯誤,請搜尋現有的問題。如果您發現現有類似的問題,請新增到其中,否則請建立新問題

在 GitHub 中回報問題或在論壇中提問之前,請先閱讀CONTRIBUTING 指南。***