光學字元辨識
光學字元辨識(optical character recognition, OCR)把文字的影像——掃描的頁面、拍下的招牌、傳真的 PDF——轉成機器可讀、可搜尋、可複製、可編輯的字元。其目標是從圖片中還原符號內容(字母與數字)。OCR 是最古老的應用辨識問題之一(商用系統可追溯到 1950 年代),也是傳統辨識流程的清晰範例,因為它數十年來都被建成一條明確、人工設計各階段的鏈,而非單一學得的模型。
傳統流程大致如下。首先,前處理清理並正規化影像:二值化(把墨跡與紙張分開,常用自適應門檻)、去傾斜(把歪斜的掃描轉正)以及去雜訊。接著,版面分析與切割把頁面劃分成欄、文字行、詞,最後是個別字元——切割這一步,也就是判定一個字元在哪裡結束、下一個在哪裡開始,在歷史上是最困難、最易出錯的部分,對相連或草寫的字母尤其如此。再來,特徵擷取把每個字元影像轉成對字型與大小穩健的描述子——早期系統用模板匹配或筆畫與分區特徵,後來的用梯度特徵。最後,一個分類器(kNN、SVM、神經網路)把每個描述子對應到一個字元標籤。關鍵的最後一階段是語言建模:用字典、字元 n-gram 統計或文法,藉上下文修正錯誤,使 rn 不被誤讀為 m、l 不被誤讀為 1,當周圍的詞讓正確答案清楚時。
OCR 的重要性,既在於它是極其有用的技術(數位化書籍與檔案、判讀支票與表單、車牌、視障輔助、文件自動化),也在於它是辨識如何演進的縮影。現代 OCR 把傳統流程的大部分壓縮進學得的模型:以連結時序分類(connectionist temporal classification, CTC)訓練的卷積與遞迴網路能一次辨識整行文字,無須明確的字元切割(免切割作法),而目前的系統使用以注意力為基礎的序列模型與 transformer(例如微軟的 TrOCR),在乾淨的印刷文字上達到近乎人類的準確度,並能處理拍攝的場景文字、手寫與多種文字系統。傳統的各階段在概念上存活於這些系統之中,對理解錯誤從何而來仍極具啟發。
最困難的傳統子問題是切割,而最大的現代突破正是消除它:CTC 與注意力讓網路把一行當成序列來讀,繞過了在相連或草寫字元之間切開的需要。這是「為何端到端學習勝過逐階段流程」最清楚的具體範例——錯誤不再在一個脆弱的人工切點上層層累積。