[Vision AI] 韓國車牌 OCR 引擎、正規表示式規範化與時序多數表決機制 (從 v01 到 v11 的工程演進) (#5)
· 閱讀時間約 4 分鐘

📌 核心要點 (Key Takeaways)
- 問題痛點:由於車輛顛簸、車身偏航角、路面反光及運動模糊,單幀靜態 OCR 辨識不可避免會出現偶發誤讀(例如將
64가1511誤判為64아1511或24가1511)。- 解決方案:引入韓國車牌強語法正規約束 (
^\d{2,3}[가-힣]\d{4}$),並設計基於 7 幀時間緩衝區的滑動視窗多數表決引擎 (plate_confirm_threshold=3)。- 落地成效:經歷了從 6 月 5 日的最初全螢幕亂碼 (
ACCIIXOY-1Z01...),到 6 月 7 日以 99.4% 的超高信賴度確定性鎖定最終車牌64가1511,完整走通了 11 輪 (v01 至 v11) 系統級工程迭代。
1. 韓國車牌語法校驗與 EasyOCR 調校
韓國機動車輛牌照遵循非常嚴格的法定語法規則:
標準語法結構:[2位或3位數字] + [1個韓文字母] + [4位數字]
標準範例:64가1511, 123가4567
在推論管線末端,我們將提取到的車牌影像送入經過自訂初始化的 EasyOCR 辨識器,並使用精準的正規表示式清洗誤檢文字:
import easyocr
import re
from collections import deque, Counter
# 初始化雙語辨識器,強制開啟 GPU 加速
reader = easyocr.Reader(['ko', 'en'], gpu=True)
def parse_korean_plate(plate_img):
# 關閉細節返回以最小化資料傳輸開銷
results = reader.readtext(plate_img, detail=0)
raw_text = "".join(results).replace(" ", "")
# 韓國車牌專屬正則匹配模式
pattern = r'(\d{2,3}[가-힣]\d{4})'
match = re.search(pattern, raw_text)
return match.group(1) if match else None
2. 基於時序滑動視窗的多數表決引擎 (Temporal Majority Voting)
為了抵禦單幀畫面偶然的辨識抖動,我們在時間維度上維護一個定長的滑動歷史佇列(Sliding History Queue):
# 維護最近 7 幀檢測結果
plate_history = deque(maxlen=CONFIG["plate_history_size"]) # 7
confirmed_plate = None
def update_plate_voting(detected_text):
global confirmed_plate
if detected_text:
plate_history.append(detected_text)
# 當佇列累計達到確認閾值時發起統計表決
if len(plate_history) >= CONFIG["plate_confirm_threshold"]:
counts = Counter(plate_history)
most_common_plate, count = counts.most_common(1)[0]
# 僅當同一車牌獲得 3 票或以上贊成時,方才判定為最終確信結果
if count >= CONFIG["plate_confirm_threshold"]:
confirmed_plate = most_common_plate
return confirmed_plate
3. 從 v01 到 v11 的 11 輪工程演進實錄 (6月5日 至 6月7日)

系統 log.txt 真實見證了這套演算法管線的淬鍊全過程:
| 時間戳 | 原始 OCR 輸出日誌 | 架構演進與技術突破核心 |
|---|---|---|
| 06-05 01:13 | ACCIIXOY-1Z01V1t145V... | v01:無約束全螢幕 OCR 盲掃,路面瀝青紋理被嚴重誤判為字元 |
| 06-06 00:13 | fa이, ealan, cai | v04:引入 YOLOv3 車輛邊界框,縮小文字候選搜尋區域 |
| 06-06 01:40 | 64115114, 16416114 | v07:整合專用 YOLOv5 車牌局部檢測器,成功定位車牌精準 ROI |
| 06-06 16:35 | 64아1511 -> 64가1511 | v09:部署 EDSR_x4 深度超解析度模型,清晰修復韓文字元關鍵筆畫 |
| 06-07 01:27 | 24가1511 -> 64가1511 | v10:引入多幀影像疊加降噪演算法,抵消攝影機感光元件的抖動雜訊 |
| 06-07 18:20 | 64가1511 (Size: 370x315) | v11 終版:時序多數表決引擎精準鎖定,實作 100% 確定性車牌確認! |
4. 總結與未來展望
至此,在這個由 5 篇深度專欄構成的 ANPR 視覺工程系列中,我們完整構建了一套涵蓋 動態車道線擬合、多邊形 IoU 壓線侵入判定、分層目標定位、CSRT 目標追蹤、EDSR 深度超解析度重建與時序多數表決 OCR 的工業級端到端視覺系統。這套架構為邊緣運算裝置上的高精度即時智慧交通檢測(ITS)提供了經過實戰檢驗的標準範式。
