過度轉向是一種不安全的狀況,在這種狀況下,車輛的後輪胎會在轉彎時失去抓地力(圖 1),引起這種狀況的原因可能是輪胎磨損、路面濕滑、轉彎速度過快、轉彎時突然制動,或是這些因素加總起來所致。
圖1 : 在測試賽道上檢測BMW M4 的過度轉向問題。 |
|
現代的穩定控制系統,可以在偵測到車輛過度轉向時自動採取矯正的措施。理論上,藉由以第一原理(First principle)為基礎的數學模型,這類系統能夠辨識過度轉向的情況。例如,當車載感測器的測量值超過模型中既定的參數閾值時,系統即可確定車輛發生過度轉向。
然而,在現實上,由於牽涉到眾多因素的相互作用,這種方法已被證實難以在實際情況中實現;同一輛汽車在輪胎充氣不足的情況下行駛於結冰路面,與在輪胎充氣適當的情況下於乾燥路面上行駛,需要的閾值可能大不相同。
在BMW,我們正在探索利用各種機器學習方法來偵測過度轉向的狀況。利用MATLAB,我們開發了一種監督式機器學習模型作為概念驗證,儘管之前幾乎沒有任何機器學習方面的經驗,但在短短三周內,就完成了一個可以正常運作的ECU原型,偵測過度轉向的準確率可達到超過98%。
收集資料和擷取特徵
我們首先收集了汽車上過度轉向發生前、發生時、發生後的真實資料。在專業駕駛人員的幫助下,我們在法國米拉馬斯的BMW試驗場,對BMW M4 進行了即時道路駕駛測試(圖2)。
在測試期間,我們擷取了偵測過度轉向演算法中的一些常用訊號:車輛的縱向加速度、橫向加速度、轉向角度和偏航率。此外,還記錄了駕駛人員對於過度轉向的認知:當駕駛人員認定汽車發生過度轉向時,坐在乘客位置的同事會按下筆記型電腦上的一個按鈕。當駕駛人員認為汽車恢復正常駕駛狀態時,該同事會鬆開按鈕。這些按鈕的點擊建立了提供訓練監督式學習模型所需的地面真實標記(ground truth labeling),在43分鐘的記錄資料中總共擷取到大約259,000個資料點。
回到在慕尼黑的辦公室,我們將收集到的資料載入至MATLAB中,並使用統計與機器學習工具箱(Statistics and Machine Learning Toolbox)中的Classification Learner app,利用各種分類器對機器學習模型進行訓練。剛開始使用這些原始資料訓練的模型,並不會產生很出色的結果,準確率大概落在75%到80%之間。為了達到更準確的結果,清理並減少原始資料。首先,使用濾波器來降低訊號資料中的雜訊(圖3)。
圖3 : 原始轉向角度訊號(藍色)和經過濾波處理後的相同訊號(橙色)。 |
|
接下來,使用峰值分析來辨識經過濾波處理的輸入訊號的峰值(局部極值)(圖 4)。
評估機器學習方法
在過濾和減少收集的資料後,我們能夠更有效地評估監督式機器學習方法。藉由 Classification Learner app,我們嘗試了k-最近鄰(KNN)分類器,支持向量機 (SVM)、二次判別分析和決策樹。我們還使用該app來查看經由主成分分析(principal component analysis,PCA)轉換的特徵所帶來的影響,這有助於防止過度擬合。
從我們評估的分類器所得到的結果整理於表1。所有分類器在辨識過度轉向方面均表現良好,其中有三個分類器取得了高於98%的真陽性率(true positive rates)。具有決定性是真陰性率(true negative rates):分類器能夠確定車輛未發生過度轉向的準確度。在這裡,決策樹的表現優於其他分類器,其真陰性率幾乎達到 96%。
表1 使用四種不同的監督式機器學習分類器的結果。
?
|
真陽性率 (%)
|
真陰性率 (%)
|
假陽性率 (%)
|
假陰性率 (%)
|
使用PCA的 K-最近鄰
|
94.74
|
90.35
|
5.26
|
9.65
|
支持向量機
|
98.92
|
73.07
|
1.08
|
26.93
|
二次判別分析
|
98.83
|
82.73
|
1.17
|
17.27
|
決策樹
|
98.16
|
95.86
|
1.84
|
4.14
|
產生實車測試所需的程式碼
雖然從決策樹得到的結果十分令人振奮,但是分類器模型落實在真實汽車中的 ECU上的表現才是真正的關鍵。我們使用MATLAB -C轉碼器從模型生成程式碼,並為安裝在BMW Series 5轎車中的目標ECU編譯程式碼。這一次,我們自己在靠近慕尼黑辦公室的阿施海姆附近的BMW工廠執行了測試。由我來駕駛,我的同事負責收集資料,準確地記錄下我指出車輛發生過度轉向的時間。
在ECU上即時運作的分類器表現非常驚人,準確率約為95%。但在進入測試階段後,由於使用了不同的車輛(BMW Series 5而不是M4)、不同的駕駛人員和不同的賽道,因此無法預期會發生什麼樣的情況。仔細觀察資料後發現,模型與駕駛人員所認定的過度轉向不相符的情況,大多發生在過度轉向開始和結束時。這樣的差異可以理解;因為即使是駕駛人員,也很難準確地判斷過度轉向是在何時開始和停止。
成功開發出用於過度轉向偵測的機器學習模型,並將其佈署在原型ECU上之後,我們現在正在構想機器學習的許多其他潛在應用。我們幾十年來收集了大量可供使用的資料,而現在一輛汽車在一天內就可以產生數TB的測量資料。透過MATLAB,讓我們有機會開發機器學習相關的軟體,從而可以利用這些可用資料來瞭解駕駛人員的行為並改善駕駛體驗。
(本文由鈦思科技提供;作者Tobias Freudling任職於BMW集團)