摘 要:隨著人工智能和深度學習的快速發展,確保在復雜的現實環境中無縫、安全地導航是目前自動駕駛面臨的主要問題。面對多變的交通環境,這是將復雜的數學公式轉化為精確的物理步驟。文章的目標是通過在真實模擬中開發和測試復雜的控制系統和深度學習技術,提高自動駕駛汽車在各種駕駛場景下的安全性和有效性。這項研究涉及AirSim模擬器的使用,用于訓練神經網絡獨立駕駛汽車。該研究首先使用AirSim利用虛幻引擎中可用的環境,并利用神經網絡操縱汽車訓練它。第二部分在此基礎上研究了數據源選擇對神經網絡性能的影響。比例-積分-微分(PID)控制器和模型預測控制(MPC)用于收集數據并在其上訓練設計的模型。該報告還探討了遇到的困難,例如模型選擇和作為性能指標的均方誤差的限制,為未來在真實世界應用和更復雜的控制場景中的研究奠定了基礎。本研究中將使用MPC和PID控制器收集數據的結果,然后將經過訓練的模型應用于該數據集。通過驗證數據集的圖像輸出輸出,以測試該模型在自動駕駛測試中的泛化能力。
關鍵詞:AirSim 深度學習 神經網絡 PID MPC
1 引言
車輛自主駕駛是近年來人工智能技術在交通領域的一大突破。傳統的車輛自主駕駛方法通常涉及多個模塊和復雜的算法流程,包括感知、決策和控制等。限制了系統的整體性能和魯棒性。而端到端深度學習方法通過直接從原始輸入到最終控制輸出的一體化學習,為實現車輛自主駕駛提供了一種新的思路。
端到端深度學習將這些模塊整合為一個神經網絡模型,極大簡化了系統復雜度,提高了自動駕駛系統的性能。在將機器學習納入自動駕駛汽車模擬方面取得了重大進展,尤其是在使用微軟的AirSim模擬器時。這項研究為訓練自主駕駛神經網絡提供了新的思路和方法。為了測試和開發自動駕駛算法,AirSim是一個開源模擬器,運行在虛幻引擎4等游戲引擎之上。它具有深度地圖、語義分割數據、Lidar和現實城市布局等功能,是深入研究自動駕駛汽車的完美平臺。
2 相關工作
在傳統機器學習中,處理數據和生成輸出涉及多個步驟,須每個模塊獨立訓練和優化。深度學習則通過單一框架簡化此過程,直接將攝像頭圖像映射為方向盤角度或油門剎車控制。
在基于神經網絡的自動駕駛汽車模型預測控制的研究中,自動駕駛汽車管理中模型預測控制(MPC)的應用是一個核心議題。Vianna通過用神經網絡替代傳統MPC,研究了基于學習的控制器的潛力。他們的方法特別值得注意,因為它同時探索了監督學習和強化學習(RL)技術,其中模仿學習被用來復制MPC和PID控制器的行為。
Kuutti在2019年的研究全面概述了深度學習在自動駕駛汽車控制領域的應用。這項調查研究了自主車輛控制器設計中的挑戰和發展。庫蒂著重于研究在動態環境中使用深度學習進行挑戰性控制任務時。我們的研究主要關注混合控制系統的實際實施和優化,該系統融合了深度學習和傳統控制系統的優點。
3 研究方法與實現
自動駕駛隨著端到端深度學習的算力的不斷增加中得到了前所未有的發展。為了達到L4級或L5級的自動駕駛水平,汽車需要對大量的數據進行訓練,如果沒有虛擬仿真測試環境,自動駕駛決策的有效性將不能得到測試與驗證。有了像AirSim這樣的逼真的虛擬現實仿真平臺,可以不需要使用真正的汽車進行道路行駛,而是可以通過逼真的仿真環境可以收集大量的仿真數據來訓練自動駕駛模型。
3.1 AirSim平臺
AirSim是一種基于虛幻引擎開發的適用于無人機和自動駕駛系統的仿真平臺。選擇AirSim平臺作為研究工具,能夠提供真實的環境仿真和車輛動力學模擬功能。
3.2 虛擬仿真環境搭建
下載和安裝一個開源的、跨平臺的無人機和自動駕駛車輛仿真平臺AirSim并根據AirSim的文檔進行環境配置,包括安裝所需的依賴項、設置路徑等。確保AirSim能夠正常運行。
3.3 數據采集與處理
數據的采集與處理為我們提供了用于訓練和評估模型的有用信息。在仿真環境中使用相機傳感器來采集車輛周圍環境的數據。通過AirSim平臺提供的API接口,可以實現了數據的采集和處理流程。
本研究中只使用汽車上的一個前置攝像頭作為視覺輸入,訓練一個模型.通過對前置攝像頭獲取圖像進行數據處理和分析,通過攝像頭采集的圖像內容設定汽車的當前狀態參數(速度、轉向角、油門等)。
通過對采集數據集的分析,可以看出,單幀輸入的圖像是一個250×150像素圖像,在自動駕駛中,注意力機制可以幫助模型專注于道路、行人、交通標志等關鍵對象。
對于以上讀取的圖像,為減少訓練時間和訓練模型所需的數據量,提取此圖像的下半部分。同時可以防止模型因關注環境中不相關的特征(如山、樹等)而導致深度學習的效果較差。
3.4 數據集分析
本研究在AirSim平臺中利用車載傳感器數據來表征車輛及其周邊環境的狀態信息。數據集分為normal和swerve兩種駕駛風格。
相比之下,急轉彎駕駛策略則導致車輛在道路上行進時呈現出顯著的左右擺動。這一現象凸顯了在訓練深度學習模型時需考慮的一個重要因素。
3.5 訓練模型
在處理圖像數據時,將整個數據集載入內存的代價極高。Keras引入了DataGenerator的概念,這是一種迭代器,能夠從磁盤分塊讀取數據。這種方法能有效地維持CPU和GPU的工作狀態,有效提升數據處理效率。
4 數據處理與優化
在AirSim中生成參考軌跡,供車輛遵循。控制器在限定的時間范圍內優化車輛的控制輸入,同時確保車輛沿期望軌跡行駛,這些軌跡由航路點表示。為了生成和保存這些航路點,首先在AirSim中模擬汽車行駛,然后通過Python腳本記錄下車輛在環境中的坐標,并保存在文本文件中。
這些坐標隨后被轉換到車輛的局部坐標系。這樣的轉換使得在車輛狀態下定義成本和約束函數變得更加簡便。考慮到當前車輛的姿態,一個函數將這些航路點從全局坐標系轉換到車輛的局部坐標系。轉換后的航路點用于擬合多項式曲線,該曲線代表了車輛應遵循的理想軌跡。得到的系數隨后作為優化問題中的參數。數據集是在汽車上運行PID和MPC控制器時收集的,且被分成測試、訓練和驗證數據集,按照7:2:1的比例進行拆分。
4.1 PID優化控制策略
首先定義油門和轉向的誤差項。誤差指的是系統期望狀態(設定點)與當前狀態之間的差異。例如,速度誤差、橫向軌跡誤差和航向誤差常被用于汽車的油門和轉向控制。
比例分量即時響應當前誤差,指導加速或減速調整,或轉向角度以糾正橫向誤差。積分部分處理歷史誤差累積,減少穩態誤差,結合速度誤差累積(油門)或橫向距離誤差累積(轉向)。微分部分預測未來誤差,評估速度誤差變化率(油門)或橫向距離誤差變化率(轉向)。
綜合比例、積分和微分分量,計算出油門和轉向的控制器輸出。PID控制輸出 u(t)的計算方式如下,其中Kp是比例增益,Ki是積分增益,Kd是微分增益,e(t)是針對轉向和油門的誤差值,de(t) 是誤差的變化率,d(t)是時間的變化量。
為確保控制輸出保持在可接受的范圍內,意味著在每個迭代過程中限制控制輸出,以防止過度的加速或轉向,這對保持車輛的穩定性至關重要。最終,通過對PID增益進行細致調整,以實現響應性與穩定性之間的理想平衡。
4.2 MPC優化控制命令
模型預測控制(MPC)是一種應用于眾多工程領域的先進控制技術,其中包括自動駕駛汽車。該策略在有限的時間范圍內通過迭代解決優化問題,其中優化變量為控制輸入。MPC選擇使成本函數最小化的最優控制輸入,并利用系統的動態模型基于當前狀態預測未來狀態。這一過程在每個時間步循環執行,使得MPC成為一種動態調整控制策略。
該策略的核心在于預測汽車系統在未來N個時間步的行為,并據此計算出執行器(包括轉向和節氣門)的控制指令。然而,MPC僅在當前時間步使用下一時間步的預測執行器來進行控制。
在MPC中,成本函數是基于實際車輛狀態與由多項式曲線定義的期望軌跡之間的誤差來構建的。通過最小化這一成本函數,可以確定執行器的最優值。成本函數的定義如下:
其中δ和a分別是轉向角和油門(實際上是加速度),ci是用戶選擇的系數,特別是用于懲罰連續加速度差異和轉向角差異的系數,V0車輛運行的目標速度。MPC在一系列由運動學模型指定的約束下最小化成本,這使得這成為一個非線性優化問題。使用Scipy.optimize.minimize函數中可用的SLSQP(順序最小二乘編程)方法來求解這個問題。這些約束確保車輛的狀態按照車輛動力學發展并遵循期望的軌跡。
確定一組最優的執行器配置(δi,ai),僅采用首對參數(δ1,a1) 以實現對車輛的操控。而,通過優化過程獲得的最佳控制輸入被用于刷新車輛的控制指令。隨后,這些指令被傳遞至模擬車輛,以實現預期的行駛軌跡。
5 神經網絡模型設計
為了在AirSim模擬器中使用基于神經網絡的控制來增強自動駕駛汽車控制,我們采用了一種系統化的方法。該方法旨在用自適應多層神經網絡來增強傳統PID和模型預測控制器,以改善車輛的轉向輸入。
5.1 模型的輸入/輸出
神經網絡模型接收來自AirSim模擬器的傳感器數據,特別是模擬車輛前置攝像頭拍攝的圖像。模型的輸出為車輛的轉向指令,這些指令表現為與預定路線所需轉向角度相匹配的連續數值。
5.2 神經網絡結構
本研究設計了一個多層神經網絡結構,專門適配于控制任務。使用預測的轉向角和來自數據集的地面真實值之間的均方誤差(MSE)來評估神經網絡模型的性能。此外,該模型在無人參與的情況下有效操縱汽車行駛的能力被用作定性性能指標。
將采用深度學習框架來實現該神經網絡。具體地,它首先輸入一個的圖像,在神經網絡架構中,在經過首個卷積層處理后,圖像尺寸調整為64×64,步長為256。后續卷積層逐步縮減尺寸:第二層為64×256(步長16),第三層為32×128(步長224),第四層為16×63(步長16)。第五層最大池化層將尺寸減小至16×32(步長2)。第六層再次縮減至32×128(步長224),第七層最大池化層維持此尺寸(步長2)。第八至第十二層為全連接層,輸出尺寸均展平為1×1024,中間穿插dropout層以減少過擬合。最終,在第十三層全連接層中,輸出尺寸展平為1×10,形成分類輸出層。
5.3 訓練神經網絡
本研究將數據集劃分為訓練集、驗證集及測試集。借助訓練數據,本研究旨在訓練神經網絡,使其能夠基于當前車輛狀態和環境異常,學習預測適宜的轉向指令。模型的輸入包括RGB圖像以及轉向、油門、速度和制動等狀態變量。網絡訓練上限設定為500個周期,模型僅在258個周期后停止訓練。在整個訓練過程中,持續監控訓練和驗證損失,以繪制損失曲線,并評估模型性能。
6 仿真測試
在山路場景下對網絡進行測試,以確保它能夠應模型算法在應對自動駕駛挑戰時的有效性。
6.1 微調和優化
為了提高效率并防止過度擬合,本研究采用了提前停止策略,確保了輟學率的一致性。在優化過程中,采用了Nadam優化器。
6.2 實驗結果
在初始階段,本研究選取的ROI范圍為[76,140; 0,255]像素,該選擇帶來了積極的結果。進一步地,當ROI區域調整為[50,140;0:255]像素,伴隨模型中圖像輸入尺寸的增加,模型性能亦得到提升。此配置使得模型能夠有效提取距離車輛較遠的車道特征,從而在多數情況下提供更準確的預測。圖3表示不同ROI情況下訓練的損失情況,左側時高ROI的擬合情況。損失和驗證損失的同時下降以及二者之間相對接近的關系,表明了模型具有良好的泛化能力,這進一步說明模型未出現過度擬合現象。
資金項目:2022年江蘇省研究生科研與實踐創新計劃項目“基于Airsim平臺的小型車輛后方危險緊急避險策略研究”(項目編號:SJCX22_1484),主持人:周錚。
參考文獻:
[1]SHALUMOV A, HALALY R, TSUR E E. Lidar-driven spiking neural network for collision avoidance in autonomous driving [J]. Bioinspiration & Biomimetics, 2021, 16(6): 066016.
[2]AMER K, SAMY M, SHAKER M, et al. Deep convolutional neural network based autonomous drone navigation; proceedings of the Thirteenth International Conference on Machine Vision, F, 2021 [C]. SPIE.
[3]SADHU V, ZONOUZ S, POMPILI D. On-board deep-learning-based unmanned aerial vehicle fault cause detection and identification; proceedings of the 2020 ieee international conference on robotics and automation (icra), F, 2020 [C]. IEEE.
[4]SUTTON R S, BARTO A G. Reinforcement learning: An introduction [M]. MIT press, 2018.
[5]ZHONG F, QIU W, YAN T, et al. Gym-unrealcv: Realistic virtual worlds for visual reinforcement learning [J]. Web Page, 2017.