跳至主要内容

10 篇文章 含有標籤「python」

檢視所有標籤

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

· 閱讀時間約 4 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

時序多數表決機制與最終車牌確認

📌 核心要點 (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) 系統級工程迭代。

[Vision AI] 攻克行車記錄器模糊雜訊:深度超解析度 (EDSR vs FSRCNN) 與多幀影像疊加降噪 (#4)

· 閱讀時間約 3 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

EDSR 深度超解析度重建前後對比

📌 核心要點 (Key Takeaways)

  • 問題痛點:從高速行車記錄器畫面裁剪出的遠距離車牌區域往往不足 40x20 像素,且伴隨嚴重的 H.264 編碼巨集區塊效應;傳統的雙三次插值(Bicubic)演算法只會讓字體邊緣更加模糊,無法還原字元有效筆畫。
  • 解決方案:引入移除了 Batch Normalization 層以保留高動態像素範圍的 EDSR_x4 深度殘差模型 (EDSR_x4.pb),並結合連續 3 至 5 幀的時序多幀加權疊加(Multi-Frame Image Stacking)技術。
  • 落地成效:車牌像素密度提升 4 倍,筆畫邊緣顯著銳化,使得下游 EasyOCR 對韓文字元的辨識準確率從最初的 32% 飆升至 91% 以上。

[Vision AI] 分層目標檢測架構:YOLOv3 車輛粗定位、YOLOv5 車牌精檢與 CSRT 目標追蹤 (#3)

· 閱讀時間約 3 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

YOLOv5 車牌局部檢測與定位效果

📌 核心要點 (Key Takeaways)

  • 問題痛點:在未經裁剪的 640x480 原圖上直接搜尋僅佔 30x15 像素的微小車牌,會因路邊廣告牌、交通指示牌與建築物反光引發海量誤報,且模型全圖高解析度推論會導致幀率暴跌至 10 FPS 以下。
  • 解決方案:設計“兩階段分層(Hierarchical)定位”方案:先由輕量級 YOLOv3-tiny 圈定車輛主體邊界框,再將裁剪出的車輛局部 ROI 送入精調的 YOLOv5 車牌專用檢測器 (lp_det.pt, 信賴度=0.6);同時引入 OpenCV CSRT 相關濾波追蹤器,每隔 15 幀僅重檢一次。
  • 落地成效:徹底消除了 98% 的背景干擾誤報,GPU 計算開銷驟降 80%,在邊緣運算裝置上穩定跑滿 50+ FPS 的極速即時追蹤。

[Vision AI] 動態車道線邊界提取與幾何多邊形 IoU 壓線侵入判定演算法 (#2)

· 閱讀時間約 3 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

動態車道線檢測與覆蓋示意圖

📌 核心要點 (Key Takeaways)

  • 問題痛點:行車記錄器畫面中普遍充斥著路面積水反光、瀝青修補裂縫、減速帶以及高架橋陰影,極易引發車道線誤檢;簡單的水平/垂直單點座標判斷,無法在車輛變道顛簸時精準界定車輪壓線的物理臨界點。
  • 解決方案:設計基於消失點的梯形 ROI 感興趣區域遮罩、雙向斜率絕對值閾值過濾 ($|slope| > 0.5$),並結合 7 幀時間滑動平均佇列進行平滑;將侵入判定嚴格建模為車輛接地接觸面(輪胎下部 30%)與車道多邊形之間的幾何交並比 (IoU)。
  • 落地成效:成功過濾了 95% 以上的路面雜訊,並以亞幀級的時間精度精準捕獲車輛碾壓車道線的瞬間。

[Vision AI] 行車記錄器車道壓線違規檢測與超解析度車牌辨識:6階段全鏈路管線與即時性約束 (#1)

· 閱讀時間約 4 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

6階段 ANPR 管線系統架構圖

📌 核心要點 (Key Takeaways)

  • 問題痛點:低解析度行車記錄器畫面普遍存在車身顛簸、逆光高光、運動模糊以及 H.264 編碼失真,使得直接進行車牌文字辨識和車道壓線判定極易發生誤判漏檢。
  • 解決方案:設計高度解耦的 6 階段分層電腦視覺架構:Canny/Hough 動態車道線擬合 -> YOLOv3 車輛粗檢 -> 多邊形 IoU 壓線判定 -> YOLOv5 車牌局部精檢 -> EDSR_x4 深度超解析度重建 -> EasyOCR 時序多數表決集成。
  • 落地成效:建置了一套純 Python 實作的高吞吐端到端管線,在嚴重劣化的行車記錄器實拍視訊下實作了高強健性的車輛追蹤與車道侵入監控。

[Webots 機器人] Sim-to-Real:透過 Arduino Uno、HC-06 藍牙與 ArUco 視覺追蹤實作硬體遷移 (#5)

· 閱讀時間約 7 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

ArUco 標記視覺追蹤畫面

📌 核心重點 (TL;DR)

  • 問題 (Problem):微控制器 (Arduino Uno ATmega328P) 僅有 2KB SRAM 的極端算力瓶頸、車輪打滑 (Wheel Slip) 與超音波感測雜訊,以及 Webots 模擬物理與真實硬體之間典型的虛實鴻溝 (Reality Gap)。
  • 解決方案 (Solution):採用分散式 I/O 架構 (HC-06 藍牙, 115,200 baud),上位機 PC 負責 OpenCV 視覺處理與 Q-Table 決策,Arduino 專注馬達底層 PWM 驅動;搭配俯視攝影機棋盤格去畸變與 ArUco 標記單應性矩陣 (vision.py),實現次公分級 (x, y, θ) 即時姿態追蹤。
  • 實驗結果 (Result):模擬訓練的 648 狀態 Q 表格零樣本遷移至物理 1.2m × 1.2m 障礙場地中,在無需真實微調的情況下達成了 86.7% 的目標抵達成功率 (26/30 次試驗),成功跨越虛實鴻溝。

[Webots 機器人] evaluate_qlearning:確定性導航定量評估與 DQN·SARSA 對比基準 (#4)

· 閱讀時間約 5 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

成功率與步數基準測試

📌 核心重點 (TL;DR)

  • 目的 (Objective):在完全關閉訓練探索雜訊 (ε=0) 的純確定性策略 (Greedy Policy) 下,驗證策略在真實部署環境中的自律導航可靠性與路徑品質。
  • 評估方法 (Evaluation):透過 evaluate_qlearning.py 指令碼,在 5 組獨立測試隨機種子 (Eval Seeds 0~4) 上執行共計 30 輪評估,嚴密監測成功率、理論最短路徑比率 (Path Efficiency) 及接近障礙險情 (Near-miss) 頻次。
  • 實驗結果 (Result):表格型 Q-Learning 在 12 牆障礙地圖中斬獲 93.3% 的確定性抵達成功率,且單步推論延遲僅為 0.02ms,在執行效率與輕量化上顯著優於沉重的深度神經網路 DQN 與保守的在線學習 SARSA。

[Webots 機器人] 克服 12 面牆體障礙與 Local Minima 陷阱:多隨機種子 Headless 模擬 (#3)

· 閱讀時間約 5 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

obstacle12 模擬環境

📌 核心重點 (TL;DR)

  • 問題 (Problem):當目標位於牆體正後方時,由於距離增量獎勵 (+0.1 × Δdist) 固有的貪婪特性,機器人無法主動繞開障礙,而是反覆正面撞牆,深陷嚴重的局部最佳解 (Local Minima) 死結。
  • 解決方案 (Solution):將 3 方向超音波搖頭掃描(前/左/右)狀態感知與長遠視野貝爾曼最佳價值反向傳播 (γ = 0.99) 相結合,並建構基於 PowerShell 的 Webots Headless 無渲染加速管線 (headless_run.ps1),對種子 0、1、2 進行自動化重複實驗。
  • 實驗結果 (Result):在 12 面牆體障礙環境下,代理人成功習得穩健的側向繞行策略 (Detour Policy),訓練 600 個回合後目標抵達成功率穩定維持在 90% 以上。

[Webots 機器人] 表格型 Q-Learning 實作與獎勵函數(Reward Shaping)調優 (#2)

· 閱讀時間約 6 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

訓練獎勵曲線

📌 核心重點 (TL;DR)

  • 問題 (Problem):在僅於目標抵達 (+1.0) 與牆面碰撞 (-1.0) 時給予反饋的稀疏獎勵 (Sparse Reward) 環境下,代理人往往需要經歷數千個回合的原地打轉或盲目徘徊,才能偶然遭遇目標,探索嚴重延遲。
  • 解決方案 (Solution):設計了結合基於位能的歐氏距離增量獎勵 (+0.1 × Δdist) 與單步 (-0.01)、轉向 (-0.01)、倒車 (-0.05) 懲罰的多目標稠密獎勵塑造 (Dense Reward Shaping) 機制,並搭配指數衰減的 ε-貪婪 (Epsilon-Greedy, 1.0 → 0.05) 探索策略。
  • 實驗結果 (Result):在無障礙 (no_obstacle) 情境下,移動平均獎勵在 500 個回合以內穩健轉正並進入高位區間 (0.7+),最終導航成功率達到 98% 以上。

[Webots 機器人] Q-Learning 自主導航:648 離散狀態空間劃分與 TCP Socket IPC 架構設計 (#1)

· 閱讀時間約 5 分鐘
Jihwan Park (jaybee)
AI & Robotics Engineer

Webots 模擬環境與自主移動自走車

📌 核心要點 (Key Takeaways)

  • 問題痛點:連續感測器讀數(距離、朝向角)會導致表格型強化學習遭遇維度災難(State-Space Explosion),同時 Python 強化學習代理與 Webots 模擬核心之間需要維持微秒級、低延遲的物理同步。
  • 解決方案:設計了基於幾何學空間劃分的 5 維連續感測器量化器(discretizer.py),產生 3 × 8 × 3 × 3 × 3 = 648 維離散狀態;搭建了基於 TCP 5000 連接埠的極輕量級行分隔 JSON 套接字通訊管線。
  • 落地成效:實作了 O(1) 複雜度的超高速 Q-Table 定址更新,確保了模擬器與 Python 端 32ms 物理模擬步長的一致無阻塞同步。