💡一句話定義
🔧OCR 的典型流程
- 影像前處理:去噪、傾斜校正、二值化,讓文字更清楚。
- 文字偵測:找出文字區域(哪裡有字)。
- 文字辨識:把區域內的影像轉成字元。
- 後處理:用語言模型校正(例如把 "0" 修成 "O")。
🎮互動:CRNN 掃過 "DATA"
按「開始掃描」:藍色掃描線滑過影像,中間的 CNN 特徵圖逐欄點亮,下方 RNN 機率隨時間跳動,最後解碼出 DATA。
👁️CRNN = CNN(眼睛)+ RNN(大腦)
早期 OCR 靠「模板匹配」,字體一變形就失效。現代 OCR(Tesseract 4+、EasyOCR)多用 CRNN:
在圖上滑動,萃取筆畫特徵(直線、圈、轉角)。
處理序列關係(看到 D-A-T 後接 A 的機率高)。
🧩核心難題:對齊(CTC)
OCR 最難的是「對齊」——手寫的 A 可能寬、I 可能窄,機器怎麼知道哪一段影像對應哪個字?CTC(Connectionist Temporal Classification)用一個「空白」符號並允許重複字元來解決:
demo 下方跳動的機率條,就是 CTC 在算「每個時間點屬於某個字元」的機率,最後解碼成一串字。
📈架構演進
| 世代 | 做法 | 特點 |
|---|---|---|
| 模板匹配 | 比對字形樣板 | 簡單;字體變形、手寫就失效 |
| CRNN + CTC | CNN 抽特徵 + RNN 讀序列 + CTC 對齊 | 現代主流,能讀連續文字 |
| TrOCR(Transformer) | 用注意力取代 RNN | 參考前後文、手寫潦草也更準 |
📏評估與應用
應用:車牌辨識(停車場自動開柵)、發票與表單數位化、翻譯筆/Google Lens 即時翻譯、證件辨識、文件數位化與無障礙朗讀。
難點:手寫字、藝術字、低解析、模糊、傾斜、複雜背景、表格與多欄排版。
✅自我檢測
Q1. OCR 是一步還是兩步?流程為何?
Q2. CRNN 裡 CNN 和 RNN 各做什麼?
Q3. CTC 解決什麼問題?
Q4. OCR 怎麼評估?
🎯重點整理
- 是什麼:把影像文字轉成可編輯、可搜尋的文字。
- 流程:前處理 → 偵測 → 辨識 → 後處理。
- CRNN:CNN 抽特徵、RNN 讀序列、CTC 對齊。
- 演進:模板匹配 → CRNN → TrOCR(Transformer)。
- 評估:CER、WER;應用於車牌、發票、翻譯筆等。