付費限定

[Python]Tesseract 5 與PaddleOCR v5比較

更新 發佈閱讀 22 分鐘

單純比較單行文字的結果

PaddleOCR 辨識率及速度就高好多,資料集為英文加數字

raw-image

詳細比較結果

PaddleOCR只有少數O跟0會誤判


raw-image



1. Tesseract 的 AI 模型

  • 版本差異
    • Tesseract 3 以前:主要是傳統 OCR(字元切割 → 模板匹配/分類器)。
    • Tesseract 4:引入 LSTM (Long Short-Term Memory) 序列模型,用於行文字(line-based)辨識。這是 Tesseract 的核心「AI」部分。
    • Tesseract 5:延續 LSTM-based recognizer,支援更多語言模型與訓練改進,但整體架構仍以 LSTM 為主。
  • Pipeline 概念
    1. Page segmentation(傳統 rule-based 演算法 + connected components)
    2. Line extraction
    3. LSTM recognizer(針對字元序列)
    4. 語言模型(字典 / n-gram)後處理

👉 可以說 Tesseract 用的 AI 是 LSTM RNN 模型(單層/多層 LSTM),而不是 CNN 或 Transformer。


2. PaddleOCR 的 AI 模型

PaddleOCR 屬於 深度學習全家桶,模型架構比 Tesseract 現代化,包含 檢測 + 辨識 + 後處理

  • 檢測 (Text Detection)
    • DBNet (Differentiable Binarization)、EAST、SAST 等
    • 這些是基於 CNN (卷積神經網路) + segmentation 的檢測網路
    • 作用:找到圖片中「文字區域」的 bounding boxes / polygons
  • 方向分類 (Direction Classification)
    • 小型 CNN,用來判斷文字是否旋轉 / 上下顛倒
  • 辨識 (Text Recognition)
    • 早期版本:CRNN (CNN + RNN + CTC)
    • 新版本(PP-OCR v3/v4): SVTR (Scene Text Vision Transformer) → 基於 Transformer 架構 backbone: MobileNetV3 / ResNet / LCNet seq2seq decoding: CTC 或 Attention-based
    • 可以說 PaddleOCR 從 CNN+RNN 演進到 CNN+Transformer 架構
  • 後處理
    • 語言建模 / 字典比對(但不像 Tesseract 那麼依賴字典)

👉 PaddleOCR 用的是 CNN + Transformer (SVTR) 的現代化 OCR 模型組合,而 Tesseract 仍是 LSTM-based recognizer


raw-image

4. 實務影響

  • PaddleOCR
    • 更擅長 扭曲、場景文字、非規則字型
    • 適合 複雜影像(如街景、招牌、表格)
    • 可以持續進化,因為 backbone 可以換成更強大的 Transformer
  • Tesseract
    • LSTM 對於 規整的掃描文檔 已足夠
    • 對雜訊、變形、彎曲字表現差
    • 模型演進空間有限(仍停留在 LSTM,而不是 CNN/Transformer)



以行動支持創作者!付費即可解鎖
本篇內容共 8483 字、0 則留言,僅發佈於[Python][OpenCV]學習心得筆記你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
154會員
301內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/06/20
在工業視覺、文字辨識、或醫學影像中,我們常常需要對物件的線條進行寬度一致性分析。本篇文章將深入解析一段實作程式碼,這段程式會針對輸入的 二值影像區塊,執行: 骨架化(Skeletonization) 距離轉換(Distance Transform) 線寬統計分析(Mean, Std, CV 等
Thumbnail
2025/06/20
在工業視覺、文字辨識、或醫學影像中,我們常常需要對物件的線條進行寬度一致性分析。本篇文章將深入解析一段實作程式碼,這段程式會針對輸入的 二值影像區塊,執行: 骨架化(Skeletonization) 距離轉換(Distance Transform) 線寬統計分析(Mean, Std, CV 等
Thumbnail
2025/04/01
1. 概述 在光學字符識別(OCR)過程中,常見的問題之一是「斷字」,即原本應為一個完整字符的部分被錯誤地分割成兩個或多個獨立的字符。這通常發生在掃描文件、圖像降噪或影像二值化處理後。本篇文章將介紹一種基於 骨架化端點距離分析 的斷字檢測方法,並提供完整的 Python 實作。 2. 斷字檢測的
Thumbnail
2025/04/01
1. 概述 在光學字符識別(OCR)過程中,常見的問題之一是「斷字」,即原本應為一個完整字符的部分被錯誤地分割成兩個或多個獨立的字符。這通常發生在掃描文件、圖像降噪或影像二值化處理後。本篇文章將介紹一種基於 骨架化端點距離分析 的斷字檢測方法,並提供完整的 Python 實作。 2. 斷字檢測的
Thumbnail
2025/03/13
本教學將介紹如何使用 OpenCV 來檢測螺絲的鎖附間距,並提供完整的 Python 程式碼來實作這項功能。 🔹 1. 設計目標 使用二值化處理與形態學運算來強化影像 計算螺絲之間的間距 視覺化結果,標記最大間距並顯示數值 🔹 2. 測試用螺絲影像 🔹 3.
Thumbnail
2025/03/13
本教學將介紹如何使用 OpenCV 來檢測螺絲的鎖附間距,並提供完整的 Python 程式碼來實作這項功能。 🔹 1. 設計目標 使用二值化處理與形態學運算來強化影像 計算螺絲之間的間距 視覺化結果,標記最大間距並顯示數值 🔹 2. 測試用螺絲影像 🔹 3.
Thumbnail
看更多
你可能也想看
Thumbnail
在tesseract-ocr辨識應用中,建議的留白邊框為10pixl,若Label列印的太剛好,沒有任何的邊框時,就會辨識不到文字。 本文將帶大家如何讓圖像增加邊框。 結果圖 示意的比較誇張,我讓邊框增加100pixl,圖片大小原為211*80。
Thumbnail
在tesseract-ocr辨識應用中,建議的留白邊框為10pixl,若Label列印的太剛好,沒有任何的邊框時,就會辨識不到文字。 本文將帶大家如何讓圖像增加邊框。 結果圖 示意的比較誇張,我讓邊框增加100pixl,圖片大小原為211*80。
Thumbnail
呈上篇文章,針對單排的圖像文字增加間隔,但如果文字是雙排呢 [OpenCV][Python]OCR分割及增加間隔[單排文字]
Thumbnail
呈上篇文章,針對單排的圖像文字增加間隔,但如果文字是雙排呢 [OpenCV][Python]OCR分割及增加間隔[單排文字]
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
在文字辨識中,適當的增加一文字彼此間的間隔是有幫助於辨識的,原因在大多數OCR引擎在處理字符時會依賴空白區域來區分不同的字符。如果字符之間的間隔過小,OCR引擎可能會將相鄰的字符誤認為一個單一的字符或難以正確切割字符。增加間隔可以幫助OCR引擎更準確地識別和切割每個字符。 本文說明如何增加OCR間
Thumbnail
在文字辨識中,適當的增加一文字彼此間的間隔是有幫助於辨識的,原因在大多數OCR引擎在處理字符時會依賴空白區域來區分不同的字符。如果字符之間的間隔過小,OCR引擎可能會將相鄰的字符誤認為一個單一的字符或難以正確切割字符。增加間隔可以幫助OCR引擎更準確地識別和切割每個字符。 本文說明如何增加OCR間
Thumbnail
在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。 本文將使用 NumPy 進行影像黑白反轉,並顯示反轉前後的影像。
Thumbnail
在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。 本文將使用 NumPy 進行影像黑白反轉,並顯示反轉前後的影像。
Thumbnail
本文主要使用SpeechRecognition來做一個簡單的語音辨識,使用pyqt5介面呈現。 按下Start Recording,開始錄音,並顯示請開始說話。然後按鈕名改名Stop 在按下Stop Recording,稍等片刻後就會呈現出辨識結果​ 程式範例 import sys i
Thumbnail
本文主要使用SpeechRecognition來做一個簡單的語音辨識,使用pyqt5介面呈現。 按下Start Recording,開始錄音,並顯示請開始說話。然後按鈕名改名Stop 在按下Stop Recording,稍等片刻後就會呈現出辨識結果​ 程式範例 import sys i
Thumbnail
微調(Fine tune)是深度學習中遷移學習的一種方法,其中預訓練模型的權重會在新數據上進行訓練。 本文主要介紹如何使用新的訓練圖檔在tesseract 辨識模型進行Fine tune 有關於安裝的部分可以參考友人的其他文章 Tesseract OCR - 繁體中文【安裝篇】 將所有資料
Thumbnail
微調(Fine tune)是深度學習中遷移學習的一種方法,其中預訓練模型的權重會在新數據上進行訓練。 本文主要介紹如何使用新的訓練圖檔在tesseract 辨識模型進行Fine tune 有關於安裝的部分可以參考友人的其他文章 Tesseract OCR - 繁體中文【安裝篇】 將所有資料
Thumbnail
學習如何使用 Tensorflow.js 的 COCO-SSD 模型在網頁上進行圖片物件辨識,包括基本使用方法、進階應用及實作範例,輕鬆辨識圖片中的人數和物件。
Thumbnail
學習如何使用 Tensorflow.js 的 COCO-SSD 模型在網頁上進行圖片物件辨識,包括基本使用方法、進階應用及實作範例,輕鬆辨識圖片中的人數和物件。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News