龍 翔,高建博,隗寒冰
(重慶交通大學 車輛與機電工程學院,重慶 400074)
為更好地解決汽車行駛過程中由于人為因素導致的各類交通事故問題,將人工智能算法與控制技術相結合,研究開發更加節能、環保、安全的自動駕駛汽車已引起國內外研究機構的極大重視。自動駕駛汽車是由環境感知、決策規劃、控制執行等多個子系統協同工作的復雜系統。自動駕駛汽車依賴各種傳感器感知自身和周圍環境信息,實時規劃決策與控制執行,這些功能是由多種硬件設備群和軟件算法協同運行來實現的。自動駕駛汽車的系統架構是環境感知、決策規劃、控制執行等模塊的硬件結構及軟件體系的總體組織形式,其有效性、合理性、科學性很大程度上決定智能汽車的可靠性、穩定性、可移植性、可拓展性及功能實現。因此,進行自動駕駛汽車軟硬件系統平臺的研究具有重大意義。
國外自動駕駛汽車系統架構技術的研究較早。20世紀50年代,通用汽車研發的Firebirds系列自動駕駛汽車就采用電子引導系統和公路通信系統結合的方式實現車輛自動控制;美國國防高級研究計劃局(DARPA)主導開展的自動陸地車輛項目通過激光雷達等傳感器,結合計算機視覺和智能控制技術控制車輛運行,速度每小時可達19英里(30.58 km/h)。2005年DARPA挑戰賽中,斯坦福大學智能車團隊的Stanley智能車[1]奪得冠軍,團隊設計了一種包括傳感器接口層、環境感知層、規劃與控制層、用戶界面層、車輛操縱接口層以及全局服務層的無人駕駛汽車系統。卡內基-梅隆大學的BOSS智能車[2]將自動駕駛控制系統劃分為四大模塊,包括環境感知模塊、負責全局規劃的任務規劃模塊、基于有限狀態機的行為決策模塊和局部規劃控制模塊。Kim J等[3]針對智能汽車系統網絡帶寬、容錯率和系統性能問題,基于車載網絡標準協議(FlexRay)開發了分布式系統體系結構的自動駕駛汽車。Zhou C等[4]基于ROS系統將基于卷積神經網絡的深度學習技術與基于激光雷達圖像的統計方法相結合,提出了一種新型室內自主車方案,實現了巡航模式下的高避障率。2016年NVIDIA研究團隊[5]訓練了一個基于CNN的端對端自動計時控制系統,實時運行在NVIDIA DRIVE PX GPU平臺中,實現了單目圖像像素信息到轉向角的端對端映射,系統可自適應學習晴天、雨天、多云等天氣條件,車道線磨損及非結構化路面條件下的駕駛策略。國內在自動駕駛方面的研究相對較晚,例如,徐友春等[6]設計的獵豹智能車采用機器視覺的方法識別高速道路車道線,利用擬人控制算法實現了自動駕駛,其最高時速達95 km/h。李克強等[7]針對現有自動駕駛汽車可拓展和可升級性能不強、對智能汽車與電動汽車技術集成程度不高的問題,提出一種具有開放式結構、模塊化部件,容易實現功能擴展和部件升級的電動汽車系統平臺建立方法。管欣等[8]在量產車的基礎上,針對智能汽車的功能需求,采用MicroAutoBox作為執行控制器,自主設計執行機構控制擋位及油門制動踏板。近年來,關于駕駛機器人相關工作的研究成果[9]中,這類系統通常具有控制精度高、不需要改動原有車輛結構等優點。
近年來,無人駕駛汽車的系統架構已取得較大進展,然而現有系統普遍傳感器數量龐大,硬件線路復雜,模塊間耦合性較強,不利于功能拓展。另外,無人駕駛汽車技術是一個高速發展的領域,目前系統存在硬件技術滯后等不足。基于駕駛機器人的方案存在設計、安裝復雜、占用空間大,控制機構復雜等問題。基于深度學習端對端技術的設計方案對車載計算能力要求較高、模型的可解釋性差,且依賴于海量標注數據進行模型訓練。
本文在量產車型基礎上設計開發了一種開放式、可拓展、可升級的L3級自動駕駛汽車系統架構,綜合考慮功能的模塊化與交互集成,建立感知、決策、規劃、控制、執行等子單元模塊,同時增加諸如人機交互、信息交互等功能模塊,實現數據讀寫、日志記錄、人機交互等功能,使硬件的接入和軟件的升級改造易于實現,從而有助于開發驗證自動駕駛系統的環境感知、路徑規劃、整車控制等算法。
本文在調研國內外智能車軟硬件架構的基礎上,針對高速公路和復雜城區道路實際環境的應用場景,經過對比分析、測試優化,最終確定了一種模塊程度高、拓展性強的系統架構,在結構化道路條件下能滿足L3級自動駕駛任務要求。圖1為車輛硬件布置,圖2和圖3分別為車輛硬件、軟件框架。

圖1 車輛外觀及硬件布置

圖2 車輛硬件系統架構

圖3 軟件系統架構
車輛的硬件部分按照功能可劃分為五大子系統,包括傳感器子系統、數據通信子系統、計算子系統、執行機構子系統、底層驅動子系統。
傳感器子系統由各種環境感知傳感器硬件組成;數據通信子系統主要包括信號轉換模塊、網關、路由設備;計算子系統的核心為1臺車載主控計算機;執行機構子系統包括自動換擋機構總成、線控制動系統總成結構;底層驅動子系統由整車后管理模塊和信號燈控制模塊組成。傳感器及計算設備總功率約為400 W,通過車載蓄電池供電,同時提供1個輔助電源作為備用。
準確而全面地感知車輛狀態及行駛環境信息是智能車功能實現的重要基礎。本文車輛的應用場景主要為高速、城區等結構化道路環境,故采用三維激光雷達和RGB彩色相機作為主要的環境信息感知傳感器,同時使用1個單線雷達和1個灰度相機作為輔助傳感器。采用GPS基站、GNSS接收儀、IMU設備作為定位裝置,最高可達厘米級別定位精度,實現了車輛高精度定位和對道路環境的實時精確感知。車輛傳感器、計算設備的性能描述如表1所示。
車輛采用2臺計算設備構成“上-下位機”體系的計算平臺(下文分別稱為主控計算機、輔助計算機)。主控計算機為系統的主要計算設備,負責環境感知、決策規劃、控制算法實現。輔助計算機負責車身CAN信號與主控計算機之間信號的處理與轉發,并通過兩路COM口與人機交互模塊通信,方便系統開發與調試。各傳感器信號與主控計算機之間以及2臺計算機之間均通過socket/TCP協議收發信息,輔助計算機和底層控制系統通過CAN總線進行信息交換。
底層驅動子系統由2種底層驅動模塊組成,分別為整車后管理模塊和信號燈控制模塊。整車后管理模塊是車輛的能量管理核心,獨立控制車輛其他系統的能源,實現對上下位工控機、激光雷達、毫米波雷達、相機、DGPS系統等車載傳感器的供電。該電路具有可靠性高、功耗低的特點,始終處于工作狀態。信號燈控制模塊通過接收主控計算機控制信號實現對前大燈、轉向燈、喇叭的控制。

表1 車輛傳感器等硬件性能
根據車輛軟件系統層次化、模塊化、可復用、可移植化的設計思路,將整個系統分解為傳感器層、信息交互層、感知層、決策規劃層、控制層、執行層、人機交互層共7層結構。系統軟件框架如圖3所示。
傳感器層主要由兩部分組成:環境感知傳感器和車身狀態傳感器。前者由激光雷達、毫米波雷達、相機等組成,主要用于車輛行駛過程中周邊環境的數據采集任務;后者主要包括差分GPS系統傳感器、IMU、輪速傳感器、車速傳感器等,用于車身姿態、航向、位置、車速等信息的采集。傳感器層完成各傳感器數據采集、解析、時間同步等操作的封裝,并以數據流的形式發送至感知層。
感知層對傳感器層原始的數據流做分析處理,實現道路場景下行人、車輛、交通信號燈等多目標檢測識別,以及車道標志線識別、車身狀態估計等,為車輛決策和規劃層提供信息。
決策規劃層結合車輛定位信息和離線地圖,決策出當前的駕駛模式。依據感知層中障礙物信息和駕駛模式完成局部路徑規劃,在有各種障礙物的環境中,尋找從起始狀態到目標狀態的無碰路徑,在滿足車輛運動學和動力學約束的條件下,同時滿足舒適性、安全性指標要求。
控制層依據規劃層輸出的參考路徑和車輛自身狀態數據,控制車輛橫縱向運動使之按照預定目標軌跡行駛。基于L3級自動駕駛功能需求,車輛同時可以接收人工接管指令,對車輛進行制動、加速和轉向操作。該層的控制信號輸出至各執行單元的控制器。
執行層接受控制層的控制信號完成駕駛動作,如自動切換擋位、電控轉向操作、油門制動操作等。
信息交互層為各層之間數據通信提供統一、規范的接口,并實現數據記錄、離線地圖數據讀寫等功能,方便系統調試和測試。
人機交互層接受駕駛員的行車開始指令和緊急停車指令,同時將行駛過程中環境、車輛狀態等各種數據可視化,供駕駛員參考。
車輛軟件系統經過多次改進和完善,在實際場景中進行了大量實車實驗,系統架構具有以下優點:
1)系統采用分層思想設計,將系統分為傳感器層、信息交互層、感知層、決策規劃層、控制層、執行層、人機交互層等七大子系統層。層與層之間相互獨立、互聯,通過規范化接口實現信息流通。
2)開放式的接口和模塊化的部件。在硬件結構升級的情況下,容易實現功能的拓展和軟件功能的升級,使得各種電氣設備的接入變得更加容易,有助于系統迭代和快速驗證設計。
3)完備的人機交互接口。系統不僅提供行車和緊急停車接口,同時具有豐富的可視化界面,可動態顯示調試過程中的環境感知狀態信息、車輛狀態信息等數據,并實時記錄感知、控制數據以便于分析和診斷。
車輛的算法實現部分采用視覺和雷達信息融合的方式實現道路環境的感知,在此基礎上采用基于Frenet的局部路徑規劃及預瞄控制算法實現車輛運動和姿態控制。設計目標為:
1)機器視覺系統能在光照變化、輕微遮擋干擾條件下實現實時準確的車道識別,頻率不低于20 Hz;多傳感器信息融合系統能實時識別行駛前方的車輛、行人目標,相對距離誤差小于5%,頻率不低于20Hz。
2)依靠LTE-V的V2X設備對交通信號燈進行識別與響應,能執行擁堵跟車、加速減速、制動、主動超車等駕駛模式。
圖像信息是世界坐標系下的3維物體在二維圖像平面上的投影,該過程在物理上可用小孔成像模型近似,在數學上是一個透視映射過程。為了得到圖像坐標下車道、行人、車輛等目標在車輛坐標系下的準確映射,從而構建智能駕駛系統局部地圖,采用文獻[10]所提出的逆透視變換公式,將透視圖像轉換為俯視圖,如式(1)所示:

式中:xp、yp為圖像中任意點(u,v)在車輛坐標系中的局部坐標位置;h為相機安裝高度;θ為相機俯仰角;α、β分別為相機的水平、垂直視場角;m、n分別為圖像的高度和寬度值。
目前常用的車道線識別算法可分為基于車道線幾何和顏色特征、基于模板配準和基于模式識別3類[11]。提高算法在復雜環境下的魯棒性和在嵌入式平臺下運行的實時性是其核心問題。
本文在參考前人研究成果[12-14]的基礎上,設計了基于車道線特征約束和特征聚類的檢測算法。圖4為系統軟件框架中車道線檢測算法流程,分為圖像預處理、直線檢測、特征聚類、車道線擬合4部分。

圖4 車道線檢測算法流程
算法的核心是基于先驗知識的車道標志線特征約束定義與選擇。具體而言,在相機特定外參數下,車道標記線具有一定長度、方向、寬高比等形狀特征約束,以及起始點位置約束、斜率約束,除此之外,車道線還具有一定相對位置約束,即同一條車道線上的候選直線方向一致,斜率偏移量小于某一閾值。車道線幾何、位置特征約束具體定義如式(2)(3)所示。


式中:(xs,ys)、(xe,ye)分別表示車道線的起始點坐標;lm、lM表示長度閾值上下限;xm、xM、ym、yM表示起點坐標在圖像橫、縱方向上的范圍閾值;km、kM表示斜率閾值上下限;i、j表示任意2條線段編號;dm、dM表示第j條備選直線的起點到第i條備選直線的距離。
算法設計時需考慮車載工控機的計算速度,所以預處理部分舍棄耗時較多且對結果影響不明顯的濾波處理和邊緣檢測處理環節,最終確定感興趣區域(region of interest,ROI)選擇、灰度處理、二值化及連通域分析的預處理過程。為減弱光照變化影響,提出根據歷史信息進行閾值補償的二值化法,如式(4)所示。

式中:Tt為t時刻的二值化閾值;為某段時間內閾值平均值;c為補償參數。正切函數作用為平緩正負偏離值,使預處理結果趨于穩定。
完成圖像預處理后,采用概率Hough變換算法檢測直線元素構成直線集作為車道標記線的候選集。車道標記線的幾何特征約束(長度、方向、寬高比等形狀約束特征,起始點位置約束特征,斜率約束特征)和車道線位置特征約束(車道線斜率差,車道線距離偏移量)作為約束條件,使用K-D樹算法回溯聚類,最后對屬于某條車道線的Hough直線集離散化,并根據最小二乘法擬合得到目標車道線,如式(5)所示。

式中:xi、yi表示離散點的圖像坐標;N為點的總個數為坐標均值;a、b為擬合后直線斜率和截距。
傳統的行人、車輛檢測方法基于人工設計的特征(如HOG、Haar等)訓練分類器實現目標檢測。但這類算法具有魯棒性弱、泛化能力差的缺點,而深度卷積神經網絡(convolutional neural networks,CNN)[15]可在訓練數據集中通過最優化損失函數,自適應構建目標的低層至高層特征描述,且對形變、光照具有一定的不變性,具有較好的泛化能力。
在行人和車輛檢測算法中,車輛采用一種基于輕量化卷積神經網絡的目標檢測方法,通過GPU加速,可在車載計算平臺中實時運行,提供車輛前方行人、車輛等目標的局部坐標和尺寸信息。算法由位于前端的輕量化深度卷積網絡和后端的多尺度目標檢測網絡兩部分組成。前端為去除全鏈接層的分類網絡,提取目標邊緣、顏色、輪廓、部件等初級信息;后端根據實際檢測類別,設置不同尺寸的卷積核,分別作用在不同特征層上進行定位和分類,最后使用NMS(non-maximum suppression)算法[16]合并預測框得到最終檢測結果。算法流程如圖5所示,式(6)為訓練損失函數。

式中:N為標簽框同默認框成功匹配的數目之和;Lconf為分類置信損失,采用多類Softmax損失函數;Lloc為定位損失函數,采用SmoothL1損失函數;x為指示函數,表征默認框同標簽的匹配結果;c為預測類別的置信度;l和g分別為預測回歸框和目標真實框的位置信息;α為權衡置信損失和定位損失的超參數,一般取1。
算法采用批梯度下降法尋優計算,前向-反向訓練過程中最小化模型預測誤差,提升目標類別置信度的同時提高邊界框的位置預測精度。在目標檢測數據集中反復迭代,從而提高模型的目標檢測性能,得到適用于行人、車輛的目標檢測器。

圖5 目標檢測算法流程
路徑規劃的目標是實時決策受動態、靜止障礙物和車輛動力學約束的最優運動軌跡。目前常用的路徑規劃方法主要有勢場法、柵格法、采樣法和離散優化法[17]。勢場法易產生震蕩或陷入局部最優,柵格法運算量過大。基于采樣的RRT算法需要設計高效啟發式采樣方法。離散優化法使用數值微積分描述車輛運動狀態。Frenet最優軌跡生成方法[18]是離散優化法的一種,主要包括定義Frenet骨架、生成候選軌跡、選取最優軌跡3個部分。Frenet骨架由離線道路路徑點根據三次樣條函數擬合得到,如式(7)所示。通過笛卡爾坐標系到曲線坐標的轉換公式將道路幾何形狀映射到曲線坐標系中,如圖6所示。

式中:s、(sb(s),yb(s))分別表示在曲線坐標系下的弧長、全局坐標;(a,b,c,d)表示3次樣條曲線多項式系數。

圖6 曲線坐標系轉換示意圖
算法橫向采樣參數根據感知層的輸出得到,在Frenet骨架基礎上不斷偏移一定采樣距離Δq直到覆蓋整個車道寬,并使用5次多項式描述橫向位移位置,如式(8)所示。縱向參數根據預測時間、期望速度得到對應橫向偏移量下曲線坐標系的一系列S軸坐標生成候選軌跡。

式中:d表示橫向位移位置;t表示預測時間;{a0,…,a5}表示多項式系數。
算法采用最大速度、最大加速度、最大曲率、行駛無碰撞條件對候選路徑約束選擇獲取候選軌跡,并采用加速度的1階導數作為優化指標,計算每條候選軌跡在曲線坐標系下縱橫向Ctot值,取其最小值對應的軌跡為最優軌跡,如式(9)所示。

式中:Clat、Clon分別表示橫向和縱向最優軌跡損失函數;klat、klon分別表示橫向和縱向損失函數的權重。
為驗證算法在各種工況下的魯棒性,本文選取不同天氣、光照、工況條件下的數據作為測試集驗證算法性能,詳細環境描述見表2,圖7為車道線識別結果(綠色)。結果表明:在有少量雨水、道路陰影、車輛遮擋、道路標志干擾的結構化道路下,算法均可實時準確地識別出車道標志線。
目標檢測有多種評價指標,如檢測精度、效率、定位精度、查全率、查準率等。本文采用mAP(mean average precision)衡量行人和車輛等目標的檢測精度,采用FPS(frames per second)值衡量算法在線運行速度。mAP值介于0~1范圍,越大說明檢測精度越高,其定義如式(10)(11)所示。

式中:C為類別總數;P、R分別為精確度和召回率,TP、FP、FN分別為真正例(Intersection over Union,IOU>0.5)、假正例(IOU<0.5)、假反例(漏檢目標);J、r描述P-R曲線的采樣頻率,本文中J=10。

表2 車道線檢測場景說明

圖7 車道線檢測結果
基于深度學習的目標檢測算法性能受訓練數據集規模、場景類別的影響較大。為對算法進行客觀評價,利用KITTI公開數據集[19]提供的目標檢測數據集作為訓練和測試基準,將本文算法與數據庫提供的算法進行對比。由表3可以看出,基于傳統特征的方法如ACF等精度較低,mAP在0.5~0.6范圍,主要原因為特征表達能力不足。基于復雜深度網絡的方法如DH-ARI等精度超過0.9,但是對硬件要求苛刻。本文中的算法在速度和精度方面達到較好的均衡,在CPU環境下速度達到21FPS,且精度方面接近Faster RCNN算法的水平,遠高于ACF等傳統方法。

表3 檢測算法性能對比
另外,車輛在園區封閉道路內進行了實車行人、車輛目標的檢測實驗,部分結果如圖8所示。測試圖片涵蓋了側視、后視、遠端、近端等多種視角以及陰影、遮擋、逆光等各種復雜環境。算法能實時檢測并輸出目標的類別、置信度和位置信息,實驗結果表明在各個場景下本文算法均能實現多目標的快速、魯棒檢測。
車輛在重慶交通大學校園以及包含S彎、匯流、超車、長下坡、急彎等各種駕駛場景的中國汽車研究院園區內,對感知、規劃、控制算法進行了實車測試驗證。圖9為主動超車測試結果,綠色矩形表示前車,藍色矩形表示本車,黃色曲線表示局部規劃候選路徑,紅色曲線表示最優軌跡,測試結果顯示,智能車在識別前方車輛后成功完成主動超車動作。另外,開發的車輛還參加了重慶智博會i-VISTIA無人駕駛挑戰賽(圖10),順利完成了城市交通場景和禮嘉環線場外挑戰賽,進一步說明本文所提出的系統架構和自動駕駛算法的實用性和有效性。

圖8 行人、車輛目標檢測結果

圖9 局部路徑規劃測試結果

圖10 重慶智博會i-VISTIA城市交通場景挑戰賽場景
科學合理的系統架構和算法設計是實現無人駕駛汽車功能實現和安全運行的重要基礎。本文設計的系統方案具有較為明顯的優勢:一是系統具有較好的可拓展性,可根據不同任務要求進行合理的配置;二是關注人機交互功能,既對調試、運行過程中系統關鍵參數、數據進行備份與記錄,又充分考慮人的駕駛體驗和駕駛安全,可以隨時接管車輛避免意外出現;三是系統接口統一,信息流向清晰,在極大降低系統的耦合性的同時有利于模塊的調試與升級。通過了實車測試驗證,結果表明開發的軟硬件系統架構系統穩定,目標識別算法能實時準確地定位識別行人和車輛目標,動態軌跡規劃算法能準確控制車輛按照目標軌跡運行。