影片展示了 AI Car 在八樓走廊實地測試。
為了解決走廊場域的環境變數並提升偵測穩定度,我們開發了以下核心技術:
本系統採多執行緒架構,數據流從「感測」到「執行」形成一個完整的閉環控制鏈:
* 註:系統透過 frame_lock 鎖定機制,確保影像處理執行緒與 Web 串流執行緒在存取同一幀影像時不發生衝突。
根據專案開發過程中的實際程式碼更迭,我們總結了以下關鍵挑戰與技術對策:
| 面臨挑戰 | 技術對策與優化細節 |
|---|---|
| 視野邊緣與路面雜訊 原採用梯形 ROI 遮罩 |
解決方案:升級為「六點多邊形」ROI 我們將 ROI 從固定梯形升級為具備 6 個可調頂點的多邊形,並結合 HSV 色彩空間過濾,更精確地圈選出路面區域並排除非目標雜訊,如牆角或雜物干擾。 |
| 大轉彎時車道線遺失 原偵測邏輯需雙邊線條才能計算 |
解決方案:實作 Single Lane Fallback (單線補償) 當畫面中只剩左線或右線時(常見於大轉彎),系統會進入「單線模式」。利用系統自動學到的車道半寬(LANE_HALF_WIDTH)來推估虛擬中心點,避免因線條消失而導致轉向失控。 |
| 控制響應震盪問題 原馬達控制缺乏精確比例分配 |
解決方案:PID 閉環控制與即時調參 引入 PID 控制演算法處理偏差值。透過 Web UI 介面,我們能即時調整 Kp 與 Kd 參數,有效抑制小車前進時的左右震盪(蛇行現象),讓動態巡航過程更加平滑穩定。 |
畫面中藍色六邊形為動態 ROI 遮罩範圍。
這次專案讓我們真正感受到 AI 工具在程式開發中的實際價值。透過 AI 的輔助,整體開發流程明顯加快。像是當 Canny 邊緣偵測在八樓的反光地板上失效時,我們直接向 AI 詢問原因,Claude 便從 HSV 色彩空間的原理切入,幫助我們理解問題的根源,並建議改用亮度通道來過濾白色車道線。這不僅讓我們找到解法,也更深入理解背後的邏輯。
此外,像六邊形 ROI 的設計思路,以及 PID 各參數(Kp、Ki、Kd)對車輛行為的影響,也都是透過與 AI 的反覆討論逐步釐清的,大幅減少了自行摸索的時間。
在實際使用過程中,我們也逐漸掌握了與 AI 有效互動的方法。當提供的背景資訊越完整、問題描述越具體時,AI 的回應就越精準;反之,如果只是貼上一段程式碼並簡單問「為什麼不能跑」,往往難以得到實質幫助。因此,先整理好問題現象、已嘗試的方法以及預期結果,再交由 AI 分析,會更有效率。