Tesseract OCR 介紹:Google 開源光學文字辨識工具怎麼用 技術文章封面圖

← INSIGHTS & PERSPECTIVES | 機器學習

Tesseract OCR 介紹:Google 開源光學文字辨識工具怎麼用

介紹 Tesseract OCR 的多語言辨識能力、CentOS 安裝步驟,並用 pytesseract 示範 Python 呼叫繁體中文 OCR 的程式碼。

Tesseract 是一個開源的光學字符識別(OCR)引擎,能夠將圖像中的文本轉換為可編輯的文本。它由 Google 維護和開發,支持多種語言和字符集。

GitHub 位置:tesseract-ocr/tesseract

Tesseract 的核心引擎和支援格式有哪些?

Tesseract 4 添加了一個新的基於神經網路(LSTM)的 OCR 引擎,該引擎專注於行識別,但仍然支援 Tesseract 3 的傳統 OCR 引擎,該引擎透過識別字元模式來工作。使用舊版 OCR 引擎模式(`--oem 0`)可以啟用與 Tesseract 3 的相容性,但也需要支援舊引擎的 traineddata 檔(例如來自 tessdata 儲存庫的檔案)。

Tesseract 支援 Unicode(UTF-8),可以「開箱即用」地識別 100 多種語言。支援多種圖像格式,包括 PNG、JPEG 和 TIFF。支援各種輸出格式:純文本、hOCR(HTML)、PDF、不可見文本 PDF、TSV、ALTO 和 PAGE。

主要功能和特點

  1. 多語言支持:Tesseract 支持超過 100 種語言,包括繁體中文。
  2. 高準確度:Tesseract 在文本識別方面具有較高的準確度,特別是經過適當的預處理後。
  3. 易於集成:Tesseract 可以與多種編程語言和工具集成,例如 Python、C++、Java 等,方便開發者在不同的應用場景中使用。
  4. 開源和免費:Tesseract 是開源軟件,可以自由使用和修改。

怎麼在 CentOS 安裝 Tesseract?

需要安裝兩個部分:引擎本身和語言的 traineddata。超過 130 種語言和超過 35 種腳本的軟體包也可以直接從 Linux 發行版取得。語言 traineddata 包稱為 `tesseract-ocr-langcode` 和 `tesseract-ocr-script-scriptcode`,其中 `langcode` 是三個字母的語言代碼,`scriptcode` 是四個字母的腳本代碼。

完整安裝教學可以參考官方文件:Installation on openSUSE

以 root 身份在 CentOS 7 運行以下命令:

```bash

yum-config-manager --add-repo https://download.opensuse.org/repositories/home:/Alexander_Pozdnyakov/CentOS_7/

sudo rpm --import https://build.opensuse.org/projects/home:Alexander_Pozdnyakov/public_key

yum update

yum install tesseract

yum install tesseract-langpack-deu

```

除了套件管理器安裝,還有其他方式嗎?

也可以直接用 AppImage 執行:

  • 從發佈頁面下載 AppImage
  • 開啟終端應用程式
  • 瀏覽到 AppImage 的位置
  • 使 AppImage 可執行:`chmod a+x tesseract*.AppImage`
  • 執行它:`./tesseract*.AppImage -l eng page.tif page.txt`

怎麼用 Python 呼叫 Tesseract 做 OCR?

`pytesseract` 是一個 Python 包裝器,用於調用 Tesseract OCR 引擎。先安裝套件:

```bash

pip install pytesseract

pip install pillow

```

接著就可以用幾行程式碼對圖片做 OCR,這裡示範讀取繁體中文語言包:

```python

from PIL import Image

import pytesseract

pytesseract.pytesseract.tesseract_cmd = r'/usr/local/bin/tesseract' # 替換為你的 tesseract 安裝路徑

image = Image.open('example.png')

text = pytesseract.image_to_string(image, lang='chi_tra') # 使用繁體中文語言包

print(text)

```

常見問題

QTesseract 辨識繁體中文效果好嗎?

Tesseract 支援繁體中文(`chi_tra` 語言包),但辨識準確度會受圖片品質、字體、排版影響很大。對於掃描件或雜訊較多的圖片,通常需要先做二值化、去噪等前處理,才能得到比較穩定的辨識結果。

Q`--oem 0` 和預設的 LSTM 引擎差在哪?

`--oem 0` 是切換回 Tesseract 3 時代、依字元模式識別的傳統引擎,需要對應的舊版 traineddata 檔;預設的 LSTM 引擎則是 Tesseract 4 之後主推的神經網路行識別引擎,多數情況下準確度會比傳統引擎好。

Qpytesseract 找不到 tesseract 執行檔怎麼辦?

要先確認系統上已經裝好 Tesseract 本體(前面 CentOS 安裝步驟那個引擎),再把 `pytesseract.pytesseract.tesseract_cmd` 設成該執行檔的實際路徑;不同作業系統的預設安裝路徑不同,Windows 常見在 `C:\Program Files\Tesseract-OCR\tesseract.exe`。

參考資料

最後更新

2026-08-27

延伸閱讀

關於作者 {#author}

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2024-06-24