大背景
基于深度學習架構的人工智能如今已被廣泛應用于計算機視覺、自然語言處理、傳感器融合、目辨別别、自動駕駛等汽車行業的各個領域,從自動駕駛初創企業、網際網路公司到各大oem廠商,都正在積極探索通過利用gpu建構神經網絡實作最終的自動駕駛。
高階adas系統的開發以至自動駕駛系統的開發都有賴于一套能夠完整支援開發、模拟測試、原型制作和量産的開放式解決方案。本文将介紹基于深度學習架構的自動駕駛平台,這一架構将成為未來實作自動駕駛的內建平台中的重要一環。
深度學習是什麼
深度學習是目前人工智能領域最流行的技術。深度神經網絡由一些列簡單可訓練的神經元組成,這些單元互相協作可以學習完成甚至像駕駛這樣的複雜任務。
深度學習可以說是計算機從資料中提取決策依據的一個過程。與傳統的基于算法的系統相比,其最大的不同在于給定模型之後,深度學習系統可以自動地學習如何完成給定的任務,這些任務不僅可以是識别圖像和語音,甚至可以是控制無人機執行任務或是讓汽車自動行駛。深度學習(譯者:在一定程度上)模拟了人腦從外界環境中學習、了解甚至解決模糊歧義的過程。
imagenet
imagenet近年來準确率的提升
近年來深度學習進展的一個直覺的展現就是imagenet競賽。在這個競賽中參賽算法在數千圖像和視訊的大規模資料上測試檢測和分類的正确率。2012年之前,競賽中物體的識别率一直提升得非常緩慢(低于70%)。在2012年引入深度學習之後,識别率一躍升至80%,現在已超過95%。深度學習已經取代了傳統視覺方法在這一競賽中的地位。
高科技公司的深度學習研究
facebook是最早使用gpu加速dnn訓練的公司之一。深度網絡和gpu在facebook人工智能研究院(fair)推出的專門用于深度學習訓練的計算平台中扮演着重要的作用。facebook寄希望以此推動機器智能的發展并幫助人們更好的交流。
google也在深度學習領域投入了大量力量。tensorflow是google的第二代機器學習系統,用來了解學習大規模資料和模型。這一系統非常靈活可适用于圖像、語音、文字了解等不同應用。google使用了上千塊gpu并在性能上較同等cpu極大的提升。
據google的計算機視覺科學家aneliaangelova透露,google同時在嘗試使用級聯的深度網絡解決自動駕駛問題。
老套路和深度智駕
上圖展示了典型的自動駕駛的工作流程。通過相機、雷射、雷達和聲納,車輛可以對周圍的靜态和動态環境進行360度的精确魯邦感覺。在障礙物的檢測識别中使用深度網絡可以使得傳感器融合資料的精準程度得到顯著的提升,為後續的感覺、定位、規劃和決策提供依據。其中的第一項“感覺”,包括了傳感器融合(整合多傳感器的資料),物體檢測(發現障礙物),物體分類(“障礙物是行人”),物體分割(“行人位于道路右側”)和障礙物跟蹤(“行人在向左移動”)。
第二項“定位”包括了地圖融合(整合多來源地圖資料),基于地标或gps的三角測距。精确的定位是自動駕駛車輛在路上安全形勢的重要前提,整合例如here等高精度圖資料的能力是對車輛進行精确定位的必要條件。
最後的“路線規劃”制定了車輛的運動軌迹和行為。自動駕駛汽車需要保證在動态環境中的任何可能的危險狀況下都安全行駛。找出可行駛區域或是預測環境的變化都需要複雜的算法設計予以支撐。此外,還需要保證車輛可以平順的行駛以免影響乘坐體驗或其他車輛帶來幹擾。複雜的路徑規劃算法需要綜合考慮上述所有因素以保證最終理想的乘坐體驗。
實作這些,光憑一個所謂的智能相機是不夠的。物體的檢測分類、地标的識别、駕駛行為的适配已經車輛的行為決策,上述所提到的每一步都需要深度網絡的參與。另外深度網絡本身構成了一個平台,不同的oem或tier1供應商都可以在其基礎上進行擴充并建構自己專有的解決方案。
深度學習的套路
深度網絡包含了多層神經元。在物體識别任務中,底層的神經元通常學得了對邊緣的檢測,而第二層的神經元可能學得識别例如三角形或矩形等複雜的形狀,第三層或再往上則識别更複雜的形狀。對于給定的任務,則需要根據這些特性選擇合适的網絡層數和配置,也稱作網絡模型。
自動駕駛問題的難點在于城市環境下的駕駛場景是十分複雜和難以預測的。是以需要通過融合多種傳感器的資料來實作感覺、定位、決策和規劃。
這一場景十分适用于使用深度學習技術。例如caffe等深度學習架構可以友善地用來進行深度學習訓練。caffe由berkeley vision and learning center和開源社群參與者共同開發。其設計兼顧了簡明、速度和子產品化,很适合用于解決自動駕駛等任務。
緊接着是在這個架構下針對一個任務比如物體檢測和識别進行設計和訓練。和體育訓練需要教練一樣,深度網絡訓練也需要監督指導。評價函數定義了網絡期望輸出和實際資料的差别,稱作預測誤差。誤差用于調節各神經元之間的權重和偏移。訓練将使得網絡對于同一輸入的預測誤差越來越小。這中變化由外部資料自動計算得出,不需要人為介入。
進行訓練需要首先收集駕駛場景并進行标注物體類别或駕駛決策,建立訓練資料的資料庫,用以對模型進行訓練。
接下來,訓練好的網絡在錄播資料或者模拟器中進行離線測試。測試通過之後,則可以将模型載入ecu進行實際路測。對于自動駕駛系統的其他深度網絡子產品使用同樣的方法訓練,最終實作端到端的駕駛系統的訓練。
圖5展示了一個現實中的駕駛場景,圖像來自真實的美國高速公路場景。資料将被輸入基于深度網絡的自動駕駛系統,并在下方顯示了預測結果。中間白色的是行駛車輛,在左側識别出了兩輛車(灰色),右後方識别出了一輛汽車。基于這些車輛的位置和速度,路徑規劃系統計算出可能的行駛路徑(綠色),并最終選擇合适的路徑。
三家代表性深度學習自動駕駛解決方案
英偉達的drive解決方案
英偉達論文下載下傳:https://pan.baidu.com/s/1bo4jtvx
如圖6,nvidia提供了用于訓練、測試和應用的內建的自動駕駛解決方案。nvidia drive解決方案為車廠、tier1供應商和自動駕駛研究機構提供了強大靈活的解決方案讓車輛可以感覺、決策和學習。解決方案平台包含了訓練平台nvidia dgx-1和用于車載計算的px2。連結兩者之間的是用于開發、模拟測試的的nvidia driveworks軟體開發工具。
driveworks支援在px2上實作傳感器同步、标定、資料采集和記錄等一系列複雜過程。
mobileye的自動駕駛布局
mobileye論文下載下傳:https://pan.baidu.com/s/1pk9ldrh
mobileye在自動駕駛的布局分為三個部分,可以認為是三個階段:感覺、高精地圖和駕駛決策。
目前比較成熟的,是它的感覺技術,已經大量運用在已有産品中,主要提供一個環境模型(environmental model),包括運動和靜止的物體、車道線、可行駛區域和交通标志等。
多年的積累,讓mobileye在環境模型方面能夠提供的内容遠超競争對手,在别人還在嘗試提高單一車道線的檢測精度時,mobileye已經可以提供道路的語義級特征描述,例如目前行駛車道的左右車道線、左右車道的左右線以及道路分叉等等,均通過深度神經網絡識别。
談到深度學習,就需要提一下現在很火的end-to-end方法。智駕深談第一期的時候,我們曾經介紹了獨行俠geohot和他的comma.ai,shashua對于端到端方法也有自己的看法,簡單來說是不看好的。他認為端到端不考慮專家經驗,不考慮領域知識,不考慮人工監督,對極端情況(corner cases)的應變能力比較差。相比來講,mobileye将感覺任務劃分成多個子產品,每個對應一個人工監督的神經網絡,所得出的效果已經可以産品化。
第二個方面,是高精度地圖技術(稱作rem,road experience management),該技術是自動駕駛不可或缺的支撐,差別是是否使用複雜的3d雷射雷達來采集和制作地圖,shashua認為并不需要,而是通過圖像中豐富的紋理和色彩特征來生成地圖。mobileye采取的政策是三維上稀疏,地面一維稠密的結構,三維元素不會包括原始圖像資料,而是經過識别後的語義資訊。
地面一維的資訊則包括的比較多,建立了一個道路模型,包括車道線的精确位置、連接配接關系等。
值得一提的是,目前高精度地圖供應商,在生産和維護地圖方面成本很高,而mobileye則采取群體智能的方式來解決這個問題,通過大量裝配在量産車上的mobileye現有産品來分布式收集和更新資料。
第三個方面,也是自動駕駛技術公認的難點,即決策與規劃技術。目前mobileye也在利用深度學習進行初步的嘗試,跟deepmind采用的dqn網絡不同,他們還考慮了駕駛過程中的時序性。
comma.ai 的方法
comma.ai正在采用的辦法,叫做end-to-end(端到端方法),指以攝像頭的原始圖像作為輸入,直接輸出車輛的速度和方向,中間用某種數學模型來拟合逼近最優駕駛政策,目前常用的就是深度學習模型。
新智元【智駕深談】曾在8月6日報道,comma.ai的創始人geohot把公司的自動駕駛技術和代碼開源,代碼采用python語言編寫,涉及tensorflow,anaconda,cv2等多個常用深度學習常用開發架構。
comma.ai 論文下載下傳:https://pan.baidu.com/s/1plpawvh
深度學習端到端:資料準備
駕駛資料是本次開源的重要組成部分,不但包括前視攝像頭裁剪的資料,共計7.25小時,分為11個視訊,160*320大小,并且還包括了geohot那輛讴歌采集的轉向、制動、速度以及慣導資料,以及圖像輸入和控制輸出的同步時間戳資料。本次釋出的論文主要聚焦在通過圖像輸入來學習控制轉向和速度,geohot将圖像縮小為80*160并将像素值歸一化。
深度學習端到端:模型介紹
目前深度學習用于自動駕駛可以大概分為兩類,一類是收集駕駛資料,離線訓練模型,不斷逼近人類駕駛員;另一類是在模拟器中,利用q函數,不斷自我決策和試錯來提高駕駛技術。由于真正圖檔的複雜以及輸出指令的連續性,使得現實世界中能夠得到好結果比較困難,是以我們目前見到的很多都是在模拟器中嘗試。
本次geohot開源的是第一種方法,且是在真實道路上經過實測的。其基本原理是,将攝像頭獲得的圖像資料,利用autoencoder編碼(如上圖鎖匙,期間還用到最近很火的gan),然後用一個rnn深度網絡來從人類駕駛資料中學習,最終預測下一步操作。
結語
自動駕駛産業不斷推進,對技術的要求也日益增加,深度學習方法利用大量資料,自動學習感覺決策,可極大加速産品研發,給出驚人的效果,或将成為自動駕駛領域的黑科技。