圖片來源: 

Tesla

現在,無人車在國外已經蔚為風潮,不論是車廠、網路及科技公司或新創,都全力押寶自駕車,想要盡快讓它商用。臺灣雖然起步較晚,但也開始跨出第一步。但如何做出一臺練就開車本領的全自駕無人車,這次我們也透過臺灣國產首輛無人小巴,深度剖析AI開車的基本原理,以及背後運作流程大公開。

雖然,在設計自駕車時,有很多不同有效作法,各家巧妙各有不同,但基本上,AI開車背後的基本運作流程大同小異。無人車要會自己開車,首先是要有輛能控制的汽車,然後,這部車上還要有個能負責發號施令的汽車大腦中樞(或稱作自駕AI大腦),並且還要有一層感測器融合組成的感知層,同時還要搭配一個高精度環境地圖。基本上,只要有了自駕車體、AI大腦、感知與高清地圖,汽車就會自己開車。

而要剖析無人車,可以從硬體和軟體來談。首先,在硬體方面,要讓AI學習開車前,先得找到一輛AI能駕馭的汽車。因為傳統汽車的設計,是以人為控制為前提,利用手腳來控制汽車方向盤轉向和煞停,當前方遇彎道要過彎時,人會經過大腦發號施令,轉換為身體動作操控方向盤,雙手會根據大腦傳達的指令轉動方向盤,再由電子轉向控制系統,依據方向盤上操作力矩與轉角計算並轉換成輪胎轉向舵角,進而控制汽車轉彎,或依踩放油門及煞車力道來控制車速。

不過,這次負責打造農博無人小巴的台灣智慧駕駛執行長沈大維表示,無人車的前提,是要將一切的動作改為汽車訊號控制(或稱為線控驅動),也就是要能夠透過汽車電子訊號來控制車輛的操作,包括加速、煞車和轉向,而非人為或機械控制。以汽車方向盤轉向系統為例,一般燃油或電動汽車多採用機械式控制,搭配油壓輔助推動,主要還是人為操控。必須要先改成非油壓驅動的線控馬達,才可以直接經由汽車內部網路(CAN)接收上層車輛控制端下達的操作指令,再將收到控制訊號轉成機械運動,進而控制汽車輪胎的轉向。

AI學開車的第一道關卡,得將車控系統全面改成線控操作

單就這點看,要想取得一輛能回控的汽車並不困難,目前市面不少配備主動安全ADAS系統的高階車款的轉向、煞車和油門,多數都已採用線控驅動,不過,沈大維更進一步說明,無人車要能受控的真正關鍵,在於能不能取得這些線控系統的控制權。因為汽車底層線控系統一般都是封閉架構,基於安全考量,車廠或上游的一線(Tier 1)廠商不會輕易對外開放通訊標準(Protocol)。就算自駕AI大腦再聰明,要是沒有辦法與轉向、煞車及油門等線控系統溝通,還是無法開車。這是AI學開車得先克服的第一道關卡。

假使車廠或汽車零件商不願開放或授權金額太高,自駕車業者就只能自行研究摸索,或改用其他汽車供應商開放的線控馬達零件買回來自己改。對於不具車輛工程或線控方面專業的業者來說,要自己改就會很困難。因此,現行常見會採取的作法,會是直接向改裝車廠訂製已經合法改過,能用於自駕車開發的汽車,如Lincoln MKZ、Ford Fusion及Lexus RX 450h等,皆是目前很常用於自駕車研發的車款,不只新創團隊,就連Nvidia、百度、蘋果等大廠都有用。

以農博無人小巴為例,沈大維則說,因為專案開發團隊成員,剛好都是車輛工程或線控系統專業出身,對於這部電動小巴的線控煞車、油門操控早已駕輕就熟,所以只有轉向是向國外購入方向機馬達,再由他們自行改為巴士專用的線控轉向系統,但即便如此,他也坦言,無人車改裝過程是一大挑戰。

攝影/洪政偉

台灣智慧駕駛執行長沈大維表示,製作無人車的前提,是要將一切動作改為汽車訊號控制,也就是要能夠透過汽車電子訊號來控制車輛的操作,包括加速、煞車和轉向,而非人為或機械控制。

感測器就像自駕車眼睛,周圍環境感知全靠它

不過,就算好不容易改裝成線控汽車,這也只達到AI開車的最低要求,這臺無人車上,還需要配有不同感測器來辨識周圍環境,若以自駕車比喻操作駕駛,感測器就像眼睛,能感知周遭的道路環境,眼睛看到後會透過車上如大腦的決策機制,在內建的運算主機計算後選擇合適的行駛路線,再經過如手腳的控制系統,操控油門、煞車等功能。

就像一般人開車變換車道、或左右轉時,會因為視線盲點產生「死角」,因此需要後視鏡來幫忙察看左右或後方車輛位置和動態。每輛無人車上,通常也會配備好幾種不同類型的感測器,例如攝影鏡頭、光達(LiDAR)和雷達等。這些感測器的作用也不盡相同,以攝影鏡頭來說,因為它有極高解析度和顏色等資訊,適合用於偵測行人、路標或交通號誌,不過也容易因為光線、下雨等天候因素被遮蔽而影響辨識度。

相較之下,雷達就比較沒有這個問題。因為是利用無線電波接收空間裡被感測物體所反射的訊號,因此較能完整掌握與物體相對距離及方位,只是它的影像解析度不如攝影機;而一次由上百萬個掃描點組成來測距的光達,不論偵測精度和解析度都遠高於雷達,能在車輛周圍建立更精細的3D立體影像,可以清楚描繪物體形狀,甚至連交通警察的指揮手勢都看得一清二楚。

不過,光達的畫質和精度雖然高,但價格與雷達相差數十到百倍以上,從而會提高自駕車成本。再者,因為是以雷射光束來測距,也容易受到逆光或惡劣天候的影響,仍需雷達從旁輔助。

工研院機械所數位長王傑智也強調,自駕車從來不是單一技術,即使用再昂貴的感測器,都還是有它的使用局限,比如他曾試用號稱公分級精度的GPS來定位無人車座標,但實際用過後發現,並不是在所有地方測得的誤差都在數公分內,有些情況下使用,誤差就會很大。因此,他說,在設計自駕車時,應該想辦法善用各種方式,將不同感測器巧妙地整合,來相互確保安全。他反覆強調,安全才是最重要的。

目前業界在使用感測器時,有像是以電動車特斯拉為首,只以雷達和攝影機為主,也有如Waymo、蘋果等科技廠商以結合光達3D影像辨識環境為主,甚至在Waymo的Lexus自駕休旅車上,還同時使用3種不同遠距的光達感測器,最遠有效偵測距離達到300公尺,相當於3個美式足球場的距離。意味著,對於無人車行車安全有更高的保障。

沈大維表示,農博無人巴士上,主要有用到12顆聲波雷達、8顆攝影鏡頭,以及車頂一顆光達,能分別從不同角度來蒐集車輛周圍的路面資訊,一方面這些影像資料蒐集後,能當作無人車學開車的訓練素材,另一方面,當遇到主要或某顆感測器故障,而無法偵測環境時,也能確保有其它備用感測器,能接手提供路況資訊,來做為自駕車行駛判斷的依據。

結合高精度環境地圖,提高無人車感知能力

除了感測器外,自駕車上還要有一個高精度環境地圖,雖然在天氣晴朗的情況下,車上感測器能夠檢測出車道線、路面邊緣、可通行空間等,但對於道路坡度、曲率等檢測卻有一定難度,這些數據有助於對無人車的控制,剛好高精度地圖可以提供。再者,當遇到暴雨、大雪等惡劣氣候時,車上感測器難以感知遠處障礙物、車道線等資訊,而透過高精度地圖搭配GPS定位,也能提供這方面的路況資訊,做為自駕車行駛路線規畫與行車策略的依據。

因為是完全為提供無人駕駛專用繪製的地圖,不像傳統GPS地圖,在這個地圖上,只會出現和駕駛有關的訊息,如道路、感興趣點(POI),而且誤差要在數公分以內。有了更精準定位的地圖,自駕車也能夠根據車上感測器偵測到車道線、道路邊緣的距離,來與地圖提供的資訊做比對,當感測器失靈導致汽車偏離原本車道時,就能透過地圖來進行修正,將汽車導回原車道,進而能提高行車安全。

自駕車使用高精度地圖時,還有另一個好處,就是有助於提前擬定行駛策略,舉例來說,在高精地圖上通常會預先標註駕駛應注意的交通及路況等特徵,以便於車輛行進時,就能根據事前已得知的前方路口交通型態,如交叉路口或限縮車道等,提前決定採取行動的時機,是要先變換車道或開始減速,而不用等到進入感測器有效偵測範圍內,才開始動作反應,讓自駕車決策可以再早一步。

上面這些事前工作都就緒,AI才可以開始學開車。不過,講到學開車,還是得先從自駕車控制決策過程談起。不像人開車,很多時候,腦袋不用多想,看到前方綠燈就通過,但對於無人車來說,即便是一個簡單的過馬路決定,都是經過一連串高度複雜模型演算和邏輯推演過程,再來決定是否要穿過馬路,以及用何種方式來開。

一般而言,無人車自駕系統的組成,分為感知、決策以及控制。也是自駕AI大腦組成最重要的三大元件。其中感知系統是在處理來自各種感測器的資料,用來偵測車輛周遭環境的物體辨識、定位及追蹤等訊息;決策系統則是依據預先設定的決策邏輯與規則,結合感知系統提供的環境動態資訊,來決定車輛路線規畫和行駛策略,最後再由控制系統在符合車輛操控反應前提下,來具體下達控制指令,操作汽車完成動作。

AI要如何學會轉彎?

那AI要怎麼學習轉彎?負責協助技術支援無人小巴自駕能力開發的Nvidia臺灣業務協理蕭怡祺的回答很簡單:「就是透過訓練。」雖然講起來很容易,但要真正做到,卻不是件簡單的事。而且同樣是學習,AI學開車也有許多的有效學習方法,各家車廠巧妙各有不同。

就像開直線、或彎道是所有開車新手上路前必練的基本功。AI學開車也不例外,若是連開直線或彎道都控制不好,更別說要開上路。

蕭怡祺也以新手開車來舉例,新手駕駛一開始也不會知道怎麼開車,而是一旁教練手把手指導開車技巧,久而久之就懂得車要怎麼開。AI學開車也是如此。起初,AI一定不知道如何開,車開得歪歪斜斜,所以得教AI學習,因此,第一步得先找到一名駕駛行為良好的操作員,讓AI可以學習對方如何開車。

沈大維也以無人小巴為例,在訓練AI系統時,Input就是場景,Output就是操作模式,透過不斷訓練,讓AI學會應對不同場景。舉例來說,彎道就是一個場景,也就是輸入值,如何轉彎,要以什麼速度過彎就是操作模式,也就是輸出值,透過車輛參數記錄和影像資料標記,來訓練類神經網路模型,目標是讓AI輸出的操作模式,接近人當時的操作模式。

實際執行上,當車輛行駛時,車上感測器就會開始蒐集所有行駛資料,這臺車上會記錄如相機等感測器資料,同時也會錄到車輛運動狀態下,經由CAN BUS蒐集駕駛操控行為所回傳的資料,包括轉向舵角、煞車及油門等,再將兩者資料同時比對,例如在某一時間點,汽車前輪舵角突然變大,然後幾秒內就變小,而且這段時間車速有明顯減慢跡象,對比前方鏡頭正好拍到拐彎處有條車道線,AI就會學習這些數據之間的關聯性。

當下次看到同個彎路時,AI就會知道對應先前駕駛開車方向盤打了幾度的舵角,經多久才回正,以及當時車速變化情形,來持續修正調整到接近和駕駛一樣的操作。經過無數次反覆自我學習,以後看這類型彎道時,AI就會知道控制汽車做出相對應的舵角,與維持相應車速過彎。

當學習彎道種類越多樣,以後遇到不同彎路時,就能依據不同彎道曲線控制汽車行駛在車道內,而不會開出車道。直線路段也是類似作法,讓車輛反覆學習保持開在車道中間,比如偏哪邊就向相反方向轉些角度,讓它不會超出中間標線。

攝影/洪政偉

在AI訓練學習階段,Nvidia臺灣業務協理蕭怡祺指出,深度學習扮演重要關鍵,可以用來協助AI加速完成學習推論感知周遭環境,再由控制決策系統依據感知推論結果,搭配其他必要資訊,完成控制汽車前進、過彎等動作。

深度學習就像是一本無人車考照基礎題庫,用來傳授AI開車技巧

在AI訓練學習階段,蕭怡祺表示,深度學習(Deep Learning)扮演重要關鍵,可以用來協助AI加速完成學習推論感知周遭環境,再由控制決策系統依據感知結果,搭配其他必要資訊,來完成控制汽車前進、過彎及減速等動作。

深度學習是機器學習類神經網路的其中一個分支,不像傳統基於規則方法設計的演算模型(如決策樹等),深度學習是由很多小的數學元件組合成一個複雜模型,就像腦神經網路一樣,能建構出多層次的神經網路模型,適合用在解很複雜的問題,比如照片分類、人臉辨識、語音轉文字等。過去幾年,深度學習演算法歷經幾次飛躍性重大突破,特別是在物件偵測、分類和定位上,可以發揮出更好的學習效果,近來也開始被廣泛應用在自駕車上,用來傳授AI學習如何開車的技巧。

甚至於,對於AI來說,深度學習就好比是一套無人車考照基礎題庫,在這個題庫中會記載各式各樣行人、號誌、標線的基礎題型與不同的交通情境,來幫助AI從大量可供學習的資料訓練和學習過程中,找出一個最有效的學習開車的方法。

現階段,在自駕車學習設計上,有許多現成可參考的自駕車學習方法,而Nvidia則是採取一套分工設計的學習方法論,來教導AI學開車。

以自駕車感知系統為例,蕭怡祺表示,這個感知系統是由多個深度類神經網路 (Deep Neural Network,DNN)模型所組成,但是每個DNN模型在這裡面,只會專做一件事,沒辦法一次同時做兩件不同的事,例如有的DNN是負責偵測車體,但是它無法一次偵測車體和車道線,仍需要有其他能偵測車道線的DNN模型來協助完成。

這也意味著,AI想要學會開車這項技能,就得同時要擁有很多不同功能類型的DNN模型,來協助辨識所有駕駛情境。就連訓練時,每個DNN模型也都要分開各自訓練。每張圖上都要先標記出裡面哪些是這個DNN需要學的對象,並且框出它在照片中的哪個位置。並將訓練完後的DNN模型放進車上做推論測試,檢驗它學習成效,再根據結果反覆修正到能認得要它認的東西為止。

以Nvidia自駕車BB8來說,這臺車上對外至少就用到了10種不同DNN模型,用於處理車道線、行人、障礙物,以及可通行空間等訊息。蕭怡祺表示,他曾看過有人最多使用20個DNN模型,分別用於車外環境辨識與車內監控上,「這還只是相機偵測,其他還會有雷達和光達偵側來相互對照,最後,再由決策系統依這些環境感知訊息,搭配地圖定位、交通法規等,綜合協調出一個合乎邏輯的行車策略。」他說。

像在無人小巴上,沈大維表示,這次一共使用了兩種DNN模型,一個負責彎道工作,另一個則是用在行人偵測。其中,彎道DNN模型只會負責處理車子過彎,並不會偵測現在有無行人衝進車道,而是會由另一個識別行人的DNN模型處理,假設遇到過彎同時有人衝出,這時就會由更上層控制決策系統,依據事先設定的規則綜合判斷後再做出決定,比如看到有人就停,沒人就開。透過這種基於規則的判斷方式,來幫助巴士開在人來人往的園區路上,而不會動不動就撞到人。

在農博例子裡,因為交通環境單純,設計的決策機制不用太過複雜,不過,一旦進入一般市區道路,面對到更複雜路況和交通時,光只是感知能力強還不夠,無人車還要具備有高度決策邏輯的判斷能力,能在複雜車流、行人穿梭的不確定路況中,依據這些綜合環境情資下達正確決定,決策系統也得要變得更有智慧才行。

不過,對於無人車來說,就算只是一個簡單轉彎操作,還是有AI學習困難的地方,蕭怡祺也舉直角轉彎來說明,因為車輛進彎接近垂直角度,攝影鏡頭拍到的路面影像,只會看到一點點車道線,使得AI在學習訓練時,就容易因為特徵資料不足,只有一方舵角資料,使得學習效果大打折扣。而要克服這個難題,就得要加強這方面的資料學習。

另外,在學習訓練樣本上,也不能只蒐集同類型的資料,需要不同取樣做開車學習,沈大維表示,因為車上感測器容易受到天氣的影響,使得AI所見影像,會和原先學習影像不一致,就容易產生誤判,如在農博自駕場地,每到正午大太陽時,白色車道線經過光照看起來就像黃顏色,AI因為以前沒看過,就可能不會把它當成車道線,經過時就容易開出跑道。所以,負責開車的人,就得要取得這類型的稀有資料,讓AI可以去學習這之間變化,使得學習過程能自我優化並處理數據之間更複雜的關係。

另一方面,雖然在物件偵測上,深度學習的確有其厲害之處,很會解高難度的問題,但也並非任何情況都能用到它,舉例來說,當用它來解一些簡單問題時,就容易會出問題,或是具有高度不穩定性,例如N-bit奇偶同位元校驗、乘法運算,或是一些簡單視覺偵測題,比如找出圖片中有無相似的形狀等。

王傑智就表示,深度學習技術並不是萬能,即便它很管用,但也應該要用在對的地方,比如它適合用在自駕車環境感知上,但是在決策和控制就不太適合。他表示,在設計自駕車時,通常會採用各種不同的有效方法,來確保整個自駕系統的安全性。就連做物體追蹤,都會同時有好幾種作法,用在不同感測器上,來反覆檢驗確認,以確保自駕行駛的安全。

就像新手學會開車後,接下來就是持續累積經驗,不斷精進自己的開車技術,AI能開車以後,真正挑戰才開始。不只要會開車、認路,還要能從路面上停放車輛、行人徒步區找出車輛可以通行空間來開車,更要能依據車況變化,隨時動態調整行車策略與規畫路線,這是決定無人車能不能上路的最大關鍵。尤其是在臺灣這種機車穿梭的場景,對於自駕車要能從封閉實驗場域,開進一般道路,更是一大考驗。

自駕車如何學會轉彎

以農博自駕小巴為例,在訓練階段(藍線),持續蒐集人工駕駛行駛間的前方路面影片和輪胎轉向舵角資料,集中到Drive PX2上的外接SSD硬碟,再轉存到筆電進行前置處理,來產生訓練用資料,再透過雲端,上傳到深度學習運算主機訓練轉彎DNN模型,完成DNN模型後回傳到PX2平臺。

推論階段(紅線),自動駕駛時,能需即時拍攝前方路面影片,傳入PX2利用DNN模型來推論出控制輪胎的轉向舵角資訊,同樣透過VCU車控及EPS轉向系統轉換成控制訊號,來操控汽車輪胎的轉向。

圖片來源:Nvidia、Ecotrons、CMU;資料來源:iThome整理,2018年9月。

 相關報導  國產自駕車的誕生


Advertisement

更多 iThome相關內容