1. 程式人生 > >ADAS視覺方案盤點上篇:攝像頭、晶片和演算法

ADAS視覺方案盤點上篇:攝像頭、晶片和演算法

攝像頭是ADAS核心感測器,相比毫米波雷達和鐳射雷達,最大優勢在於識別(物體是車還是人、標誌牌是什麼顏色)。汽車行業價格敏感,攝像頭硬體成本相對低廉,因為近幾年計算機視覺發展迅速,從攝像頭角度切入ADAS感知的創業公司數量也非常可觀。

這些創業公司可以統稱為視覺方案提供商。他們掌握核心的視覺感測器演算法,向下遊客戶提供車載攝像頭模組,晶片以及軟體演算法在內的整套方案。前裝模式下,視覺方案提供商扮演二級供應商的角色,與Tier1配合為OEM定義產品。後裝模式裡,除了提供整套裝置,也存在售賣演算法的模式。

本文中將對視覺ADAS功能、硬體需求、評價標準等進行解析,在《【車雲報告】ADAS視覺方案入門盤點(下篇)》

內容中將參考Mobileye,對國內11家創業公司的產品進行詳細解讀。

視覺ADAS供應鏈體系視覺ADAS供應鏈體系

一、視覺ADAS可實現功能 

因為安全記錄、停車等需要,攝像頭在車上的大量應用是行車記錄儀、倒車影像等輔助功能。一般通過安裝在車身各個位置的廣角攝像頭採集影像,經過標定和演算法處理,生成影像或拼接形成檢視補充駕駛員視覺盲區,不用涉及整車控制,因此更加註重視訊處理,技術已經成熟並逐漸普及。 

目前在行車輔助功能中,攝像頭可用來單獨實現很多功能,並且按照自動駕駛發展規律逐漸演進。

這些功能更加強調對輸入影象的處理,從拍攝的視訊流中提取有效目標運動資訊做進一步分析,給出預警資訊或直接調動控制機構。相比視訊輸出類功能,強調高速下的實時性,這部分技術正處在發展上升期。

二、視覺ADAS軟硬需求

視覺系ADAS產品由軟硬體組成,主要包括攝像頭模組、核心演算法晶片以及軟體演算法。硬體方面考慮行車環境(震動、高低溫等),大前提是要符合車規級要求。

(一)車載ADAS攝像頭模組

車載ADAS攝像頭模組需要定製化開發。為了適應車輛全天候全天時的需要,一般要滿足在明暗反差過大的場合(進出隧道),很好平衡影象中過亮或太暗部分(寬動態);對光線比較靈敏(高感光),避免給晶片帶來太大壓力(並不是一昧追逐高畫素)。

攝像頭模組是基礎。好比一張底子不錯的照片才有修飾美化的餘地,保證拍攝影象夠用的基礎上,演算法才能更好地發揮效力。

另外在引數上,ADAS與行車記錄儀對攝像頭的需求不同。用於行車記錄儀的攝像頭需要看清車頭周圍儘可能多的環境資訊(後視鏡位置看向兩個前輪,水平視角約要110度)。ADAS的攝像頭更講究為行車時預留更多判斷時間,需要看得更遠。類似相機鏡頭廣角和長焦,兩項引數不能兼得,ADAS在硬體選取時只能取其平衡。

(二)核心演算法晶片

影象相關演算法對計算資源有很高的要求,因此晶片效能講究。如果在演算法上疊加深度學習來幫助識別率提升,對硬體效能的要求只增不減,主要考慮的效能指標是運算速度、功耗、以及成本。

目前用於ADAS攝像頭的晶片多數被國外壟斷,主要供應商有瑞薩電子(Renesas Electronics)、意法半導體(ST)、飛思卡爾(Free scale)、亞德諾(ADI)、德州儀器(TI)、恩智浦(NXP)、富士通(Fujitsu)、賽靈思(Xilinx)、英偉達(NVIDIA)等,提供包括ARM、DSP、ASIC、MCU、SOC、FPGA、GPU等晶片方案 。

ARM、DSP、ASIC、MCU、SOC是軟體程式設計的嵌入式方案,FPGA因為對硬體直接程式設計,和嵌入式相比處理速度更快。

GPU和FPGA並行處理能力強。圖片這樣的文字,尤其在使用深度學習演算法需要多個畫素點同時計算,FPGA和GPU會更有優勢。兩類晶片的設計思路類似,都是為了處理大量簡單重複的運算。GPU的效能更強但耗能也更高,FPGA因為程式設計和優化都是直接在硬體層面進行的,能耗會低很多。

因此在平衡演算法和處理速度,尤其是用於前裝並且演算法穩定時,FPGA被視為一個熱門方案。FPGA是個好選擇。但同時,FPGA對技術要求也很高。原因在於計算機視覺演算法是C語言,FPGA硬體語言是verilog,兩種語言不同,將演算法移植到FPGA的人既要有軟體背景,又要有硬體背景。在人才最貴的今天,是筆不小的成本。

現階段可用於傳統計算機視覺演算法的車規級晶片有多種選擇,但是適用於傳統演算法疊加深度學習演算法的低功耗高效能晶片,還沒有真正出現。

(三)演算法

ADAS視覺演算法的源頭是計算機視覺。

傳統的計算機視覺識別物體大致可以分為影象輸入、預處理、特徵提取、特徵分類、匹配、完成識別幾個步驟。 

有兩處尤其依賴專業經驗:第一是特徵提取。在識別障礙時可用特徵很多,特徵設計尤其關鍵。判斷前方障礙物是不是車,參考特徵可能是車尾燈,也可能車輛底盤投在地面的陰影等。第二是預處理和後處理,預處理包括對輸入影象噪聲的平滑、對比度的增強和邊緣檢測等。後處理是指對分類識別結果候選進行再處理。

科研中的計算機視覺演算法模型運用到實際環境中,不一定就能表現得很好。因為科研得出的演算法會增加諸如天氣、道路複雜情況在內的條件限制,現實世界裡除了關注複雜環境的演算法表現,還要考慮各種環境下演算法的魯棒性(是否穩定)。

演算法上比較重要的一個變化是深度學習的滲透。

深度學習讓計算機模擬人類思考的神經網路,可以自己學習判斷。通過直接向計算機輸入標定後的原始資料,比如挑選一堆異形車圖片,然後丟給計算機讓它自己學習什麼是一輛車。這樣就可以免去計算視覺特徵提取、預處理等步驟,感知過程可以簡化為輸入圖片-輸出結果兩步。 

業內比較一致的觀點認為,在感知方面,深度學習將會彎道超車傳統視覺演算法。目前深度學習的演算法模型已經開源,而且演算法種類不多,因此有降低門檻大量優秀結果湧現的可能。但是受限於沒有合適的車端平臺,離產品化還有一段距離。 

業內對深度學習在ADAS應用的看法都比較客觀冷靜。不少觀點認為深度學習演算法是一個黑箱(Blackbox)演算法,類似人感性決策的過程,可以很快輸出一個結果,很難在發生事故後反查原因,因此在使用深度學習時要加入理性決策部分,並且分割槽塊設計。

也有觀點認為傳統計算機視覺演算法比我們想象的“智慧”,在不斷尋找車輛圖片共性和差異的過程中,也能檢測出一些異形車輛。並且在疊加深度學習演算法後,傳統計算機視覺演算法也可以幫助減少深度學習神經網路的層數,簡化演算法。 

可以肯定的是,無論哪種演算法,資料都是用來訓練測試的寶貴資源,而且不是單純的越多越好,而是越有效越好(符合實際用車環境並保證多樣化)。

(四)不同攝像頭平臺

單目和雙目 

視覺方案要完成ADAS任務,一般要實現測距(本車與前方障礙物距離)和識別(障礙物是什麼)兩項工作。按照車載攝像頭模組的不同,目前主流ADAS攝像頭可以分為單目和雙目兩種技術路線。 

單目攝像頭的演算法思路是先識別後測距:首先通過影象匹配進行識別,然後根據影象大小和高度進一步估算障礙與本車時間。在識別和估算階段,都需要和建立的樣本資料庫進行比較。想要識別各種車,就要建立車型資料庫,想要識別麋鹿,就要建立麋鹿資料庫。 

雙目攝像頭的演算法思路是先測距後識別:首先利用視差直接測量物體與車的距離,原理和人眼類似。兩隻眼睛看同一個物體時,會存在視差,也就是分別閉上左右眼睛看物體時,會發現感官上的位移。這種位移大小可以進一步測量出目標物體的遠近。然後在識別階段,雙目仍然要利用單目一樣的特徵提取和深度學習等演算法,進一步識別障礙物到底是什麼。

因為視差越遠越小的緣故,業內有觀點認為,雙目在20米內有明顯的測距優勢,在20米距離外,視差減小測距存在難度,可以用高畫素攝像頭和更優秀的演算法來提升測距效能,該處是難點也是核心競爭力。

雙目鏡頭間距和測距是兩個此消彼長的引數,鏡頭間距越小,檢測距離越近,鏡頭間距越大,檢測距離越遠。考慮車內美觀和ADAS需要,小尺寸遠距離雙目產品更受歡迎。

因為增加了一個鏡頭,帶來更多運算量,整個攝像頭模組的效能要求和成本都更高了。而且在兩者都有的標定工作上,雙目要比單目更加複雜。 

而且選擇雙目方案切入市場並不能完全繞開單目方案的難點,在第二個階段,你依然要需要一個龐大的資料庫,依然需要打磨演算法。

單雙目比較單雙目比較

多攝像頭方案

除了單雙目之外,還有多攝像頭組成的平臺。有的方案中選用長焦和廣角攝像頭於ADAS主攝像頭配合,兼顧周圍環境與遠處物體探測。比如Mobileye方案,在下文會介紹。

也有在環視平臺上疊加ADAS功能的情況。例如對於環視做車道偏離預警(LDW),與單目實現該功能比有一定優勢。在大雨天氣或者前方強光源的情況下,前視攝像頭有可能看不清車道線,環視攝像頭斜向下看車道線且可以提供多個角度,基本不會受到地面積水反光的影響,功能可以比前視做得更穩定。但同時也要考慮側向無車燈照射時,攝像頭的夜間表現。

這幾種方案在技術路線上和單目沒有本質差別,更多是基於不同平臺,發揮不同型別攝像頭模組的優勢分配任務,或者提供更多視角來解決一些複雜環境中單目勢單力薄的情況。

三、視覺系ADAS產品測試與評價

目前沒有統一的ADAS測試評價標準。常規的測試一般分為兩個階段:

在演算法庫測試,庫中包含了各類工況下收集的行車場景視訊,通過用庫中的場景視訊跑分,測試演算法識別率。目前測試庫由各家自採自測,因為採集所用的感測器不同,不同企業間的測試單看結果沒有可比性。

由德國卡爾斯魯厄理工學院和芝加哥豐田技術研究所聯合創辦的KITTI,是國際上權威性較高的機動車輔助駕駛應用技術評估的演算法評測平臺。目前有部分公司在該網站測試演算法,結果公開可查。不同公司跑分的用時存在差異,因此在看結果排名時,也不能忽略多個引數比較。

在實車測試階段,將產品DEMO安裝到車上測試,根據漏報、誤報判斷演算法可靠性,對發現問題進行反覆除錯。現階段高質量的實車測試大多由主機廠和零部件供應商掌握,準確測量需要藉助鐳射雷達等裝置,在相互校驗的過程中完成測量,成本略高,檢測週期也略長。

業內人士表示,測試產品能力70-90分的區分更多使用演算法庫測試,區別90-95分,甚至是95-98分時,必須進行實車定量測試。而目前ADAS各家拉開差距正是在於將90分提高到99分。想做到這點必須要通過大量的實際道路測試打底,並對演算法的準確性和魯棒性不斷打磨。因此從某種程度上來說,經歷過主機廠Tier1嚴苛訓練的方案提供商,產品可靠性更高,前裝經驗會成為下一次合作洽談的資本。

目前企業對外宣稱衡量演算法能力的“識別率”指標不能說完全沒有參考價值。前提是談論所謂的識別率要把產品放在不同複雜場景下評估,並且單獨講識別率指標沒有意義,需要把它和其他指標放在一起考量。產品必須確保在不同的路況、天氣、車型,對不同姿態的人、不同的車道線,演算法都能穩定工作(魯棒性)。

四、一哥Mobileye

講視覺系ADAS不得不提一家以色列公司Mobileye,1999年成立,2007年推出首款產品,2014年8月1號在紐交所上市。公司主要從事汽車工業的計算機視覺演算法和駕駛輔助系統晶片技術的研究。Mobileye的產品覆蓋了全球50個國家,據官方資料顯示,截至2015年底,Mobileye在全球有1000萬的裝載量,到2016年底會有273款車的SOP的合同。 

(一)公司定位

前裝業務中,這家以色列公司作為二級零部件供應商向Tier1提供產品,涉及車輛應用的部分會和主機廠配合。通過一級供應商提供整合、個性化開發以及測試工作。後裝採取代理銷售的方式。

(二)產品功能

目前可用安裝在後視鏡後的單顆彩色攝像頭(非標準RGB Sensor)對目標物進行檢測、識別和分類,同時還會對物體的運動軌跡進行跟蹤、分析,並分析道路狀況。實現功能包括車道檢測、車輛檢測、行人檢測、動物檢測、交通標誌識別、紅綠燈識別、燈光控制。 

Mobileye具有自主研發設計的晶片EyeQ系列,由意法半導體公司生產供應。現在已經量產的晶片型號有EyeQ1、Eye Q2、EyeQ3,EyeQ4正在開發進行中,預計將於2018年推出,其工程樣本有望在2016年第四季度釋出。2016年5月Mobileye宣佈將與意法聯手合作研發下一代將用於自動駕駛的EyeQ5晶片,2018年開始提供工程樣品。 

目前Mobileye後裝產品的終端售價約為8000元左右,前裝價格會低很多。

Mobileye不同晶片可以實現不同的ADAS功能。其中EYEQ2支援產品級的AEB,EyeQ3是支援full AEB。EyeQ2等級只能做到ASIL-B,EyeQ3可以做到ASIL-D等級。(ASIL,Automotive Safety Integration Level,汽車安全完整性等級,是ISO26262中的系統危害風險等級指標,從A到D產品的安全等級依次增加。)

 Mobileye EyeQ1-EyeQ3產品地圖Mobileye EyeQ1-EyeQ3產品地圖 

2007年在沃爾沃上實現了攝像頭+雷達整合防撞預警的功能。(EyeQ1)

2008年在寶馬上實現了單攝像頭車道偏離預警、交通標誌識別等功能。(EyeQ1)

2010年在沃爾沃上做到了行人防撞檢測,首個行人檢測AEB。(EyeQ2)

在寶馬、通用、歐寶上,用單攝像頭實現了擁堵情況下車道內跟車行駛。(EyeQ2)

2013年在寶馬和尼桑上用一個攝像頭實現AEB功能(部分) 。(EyeQ2)

利用EYEQ2實現了寶馬量產的基於攝像頭的自適應巡航(ACC)和交通擁堵輔助(Traffic Jam Assistant)。(EyeQ2)

2015年在奧迪上實現了基於攝像頭的全AEB功能。(EyeQ3)

在特斯拉車型上實現了交通等檢測、利用深度神經網路判斷自由空間和路徑規劃。(EyeQ3) 

在Mobileye的過往演講和介紹中,提到了一些前車識別演算法上的細節:

從前車識別來看,一般單目有兩種演算法來進行預估,一種是THW(Time Headway),一種是TTC(Time to Collision)。THW計算公式中時間t=兩車距離/本車速度;TTC公式中時間t'=輛車距離/兩車相對速度。TTC對於計算要求也更高一些,因為除了本車速度之外,還要實時測算出前車的速度,計算方法是通過兩車之間的距離變化以及本身速度進行估算。

Mobileye將兩種演算法用在不同場景。

前向碰撞檢測(FCW)方面採用TTC,尤其是高速行駛前車急剎的情況,可以很明顯發現,TTC的演算法更符合實際情況。Mobileye檢測規劃路徑中會遇到的前車後(不僅僅是識別本車道車輛)用影象的變化快慢來做TTC,以此判斷碰撞可能,採取干預、控制、剎車操控。

目前 Mobileye 的後裝產品 TTC時間設定為 2.7 秒,官方給出的FCW精準度大約在99.99%。前裝方面,對離本車最近的本車道車輛來計算TTC做AEB,AEB一般在1秒上下的區間裡起作用。

Mobileye採用THW演算法,未來加上控制,可以做到用單個攝像頭做ACC或低速Traffic Jam Assistant。目前市面上這兩個功能都是毫米波雷達來實現,如果用攝像頭完成,可以融合視覺檢測到的車道、靜止障礙物、車輛橫向運動、限速牌,彙總多個資訊來做ACC決策,控制會更精準。

Mobileye後裝產品THW時間設定可以從2.5秒到0.1秒。

(三)自動駕駛規劃

關於自動駕駛如何實現,Mobileye一共會涉及三個方面:感知、地圖與駕駛策略。

感知方面,根據Mobileye的規劃,單用攝像頭方案實現自動駕駛功能且不考慮冗餘的情況下,需要8個攝像頭來滿足360度全方位感知的需要。2015年Mobileye釋出了三路攝像頭做ADAS功能。三個攝像頭分工不同:中間的主攝像頭可以實現大部分功能,檢測距離可以達到150米,檢測到之後跟蹤距離可以達到250米。另有一枚小角度攝像頭探測更遠距離,一枚廣角鏡頭探測更寬視野。

演算法上主要實現四項內容,並且對深度學習的要求逐項增加:

1.識別道路上移動/固定的物體;

2.識別出道路分割線以及其他交通標識;

3.在道路上沒有分割線或者分割線不清晰的情況下,分辨出哪些是可以通過的空間,並勾勒出可通過空間與其他部分的隔離線;

4.可駕駛的路徑:在識別出可通過空間之後,找到一條可供於駕駛的路線。

地圖方面是對感知系統的冗餘設計,包含Roadbook、高精度定位、可行駛路徑三個方面。Mobileye打算用具備深度學習功能的影象識別體系製作高精度地圖。資料採集上會與車企合作,用眾包方式獲得和更新資料。 

駕駛策略方面,車企可以通過提供的SDK訪問Mobileye預先訓練的網路應用層,讓控制單元很快計算並得出可通行的路徑方案。車企在其提供的演算法基礎之上,再以自身在車輛控制上的經驗進行優化或者再次開發。這一功能會基於Eye實現。

Mobileye計劃2016年推出半自動汽車技術,準備研發的系統可以讓汽車閱讀交通、街道各類訊號,從而與其它車輛保持適當車距。大眾、寶馬和通用購買了2018 年生產的系統,該系統可使車輛在高速上自動行駛。2016年5月Mobileye與兩家保密車企已經達成協議,將在2019年為後者提供全自動駕駛汽車系統。

在2016年7月,Mobileye和寶馬、英特爾共同開發無人駕駛汽車技術。2016年8月宣佈和德爾福汽車公司共同開發SAE(美國汽車工程協會)4/5級自動駕駛全套解決方案。

(四)團隊介紹

創始人之一是耶路撒冷希伯來大學計算機科學系教授阿姆農·沙書亞(Amnon Shashua)。Mobileye在美國、德國、日本、西班牙也有分部或研究部門,現在公司員工約600多人,研發人員佔比為70%-80%。目前在中國僅有面向後裝的銷售團隊,辦公地點位於上海,沒有研發人員。

(五)投融資

2006年5月,獲得1500美金投資。

2007年10月,高盛投資的1億美金投資。

2013年7月Mobileye向5家獨立的金融投資方出售4億美元股份。投資方包括黑石、Fidelity、Wellinton、恩特租車公司以及中國投資公司賽領國際投資基金。這筆交易對Mobileye的除現金外估值達到15億美元。