在上期文章中,我們從Autopilot的感知堆棧的backbone網(wǎng)絡(luò)開始分析,從raw data到RegNet,再到BiFPN,最后來到多頭的Head結(jié)構(gòu),這就基本上給HydraNets的框架結(jié)構(gòu)定了性。在Tesla AI Day結(jié)束之后,很多關(guān)心自動(dòng)駕駛產(chǎn)業(yè)發(fā)展的人,觀后感普遍是智商不夠,看不懂。而實(shí)際上,如果讀者不進(jìn)入實(shí)際的研發(fā)領(lǐng)域,要理解Autopilot的工作機(jī)制、框架和基本脈絡(luò),實(shí)際上并沒有那么困難。而對于Autopilot整體框架的理解,一旦有心得,對于自動(dòng)駕駛行業(yè)的從業(yè)者、愛好者和政策關(guān)注者,其實(shí)都是大有裨益的。
而作為一個(gè)典型的跨學(xué)科產(chǎn)業(yè),傳統(tǒng)封閉知識(shí)結(jié)構(gòu)的限制讓很多初次涉足自動(dòng)駕駛行業(yè)的新手來說,都會(huì)感到明顯困難。一個(gè)突出的問題就是交叉學(xué)科概念實(shí)在太多太新了,往往名詞都看不懂,就不要說深究了。所以,小編寫這個(gè)系列文章的初衷就是盡可能拉低閱讀門檻,讓每個(gè)感興趣的讀者開卷有益。畢竟,Tesla這種具備開放心態(tài)的先鋒企業(yè),不是總能遇得到的。
所以關(guān)注這個(gè)系列的讀者,在看系列中任何一篇文章的時(shí)候,都可以聯(lián)系系列中的其它文章串起來看,各種新鮮的名詞解釋和上下文串講會(huì)協(xié)助諸位和小編一起跑完這個(gè)理解的過程的。
圖一【Tesla transformer-33.png】來自論文《EfficientDet: Scalable and Efficient ObjectDetection》中的插圖,獲取URLhttps://arxiv.org/pdf/1911.09070.pdf;
這是上一篇文章中我們所講的關(guān)鍵點(diǎn)BiFPN網(wǎng)絡(luò)結(jié)構(gòu),其中BiFPN和其他上下游的網(wǎng)絡(luò)結(jié)構(gòu)交代得比較清楚,所以小編在這里再強(qiáng)調(diào)一次。上圖左半部分為Google的EfficientNet,是一種典型的層次化的CNN Backbone結(jié)構(gòu),上圖中顯示為7層,每一層的分辨率逐漸降低,但是特征Feature map也是在這個(gè)過程中通過卷積計(jì)算來實(shí)現(xiàn)搜集的。重要的是,我們可以清晰地觀察到,從第3層到第7層的Feature map數(shù)據(jù)被依次輸入到BiFPN網(wǎng)絡(luò)內(nèi),從而可以利用BiFPN的融合結(jié)構(gòu)設(shè)計(jì),將不同層次的feature按照預(yù)定義的規(guī)則融合到一起,制造更準(zhǔn)確的識(shí)別結(jié)果。
上圖(圖一)的最右側(cè)顯示了這個(gè)整體模型中的Task Head,顯示了優(yōu)化后的backbone所提供的feature map最終被用于何種任務(wù)的實(shí)現(xiàn)。其中一個(gè)是分類任務(wù)Class,另一個(gè)是定位任務(wù)Box共兩個(gè)任務(wù)。它們兩個(gè)共享了EfficentNet backbone+BiFPN的特征識(shí)別結(jié)果,實(shí)現(xiàn)了算力的共享和高效利用。
在一個(gè)典型的CNN網(wǎng)絡(luò)中(以下圖為例是VGG16)另一個(gè)直觀的案例,原始的Input image在后續(xù)的一些列卷積處理之后,最終按照任務(wù)的要求實(shí)現(xiàn)Output輸出。通常講,CNN被用于網(wǎng)絡(luò)內(nèi)容的識(shí)別,并在識(shí)別后按照識(shí)別結(jié)果的類別來報(bào)告輸出。下圖模型就是干這個(gè)的。
圖二【Tesla transformer-34.png】來自youtube.com中賬號(hào)@denisdmitriev的VGG16 Neural Networkvisualization視頻的插圖,獲取URLhttps://www.youtube.com/watch?v=RNnKtNrsrmg;
如果將這個(gè)VGG16的卷積模型拉伸開來,就可以清晰地展示出每一個(gè)卷積層、池化層的輸出直觀計(jì)算(or感知)結(jié)果,如下:
圖三【Tesla transformer-35、36.png】來自youtube.com中賬號(hào)@denis dmitriev的VGG16 Neural Network visualization視頻的插圖,獲取URLhttps://www.youtube.com/watch?v=RNnKtNrsrmg;
由于不同卷積算子的卷積計(jì)算,原始圖像中的蘋果(或者洋蔥),其不同的特征被捕捉出來,比如顏色、形狀、表皮類型、根莖形狀,甚至不同物種常常呈現(xiàn)的不同的凹凸不平的特點(diǎn),都被CNN抓出來,并通過BiFPN類似的特征融合機(jī)制形成最終的認(rèn)知,或者提供給后端Task Head有效的、良好的認(rèn)知素材。從這個(gè)流程上看,CNN對于圖像信息特征的捕捉方式,幾乎和人類對于圖像的感知方式一致了。當(dāng)然,人類的感知能力除了視覺信息分析,我們還具備觸覺、味覺和更一般的“世界知識(shí)體系”……這是AI暫時(shí)所做不到的。比如,兩個(gè)在外觀上完全一致的蘋果和洋蔥,人類視覺無法判斷分類結(jié)果,自然會(huì)拿在手上掂量一下,甚至聞一下、嘗一口,最終總是可以找到正確答案的。
之前在這個(gè)系列的第一篇文章里,我們談到過AI技術(shù)演進(jìn)的下一個(gè)方向,也有對于多模態(tài)信息的綜合感知,那是因?yàn)門ransformer體現(xiàn)出了一定的多模態(tài)數(shù)據(jù)處理能力。其實(shí)CNN技術(shù)本身也有同時(shí)被應(yīng)用于圖形和語言的信息處理領(lǐng)域,但顯然自動(dòng)駕駛領(lǐng)域內(nèi)的感知問題,在當(dāng)前階段還是應(yīng)該關(guān)注圖形數(shù)據(jù)(視覺傳感器)為核心,解決了視覺問題,大概99%的問題都被解決了。在此基礎(chǔ)之上的更進(jìn)一步感知多模態(tài)信息,才扎實(shí)。
圖四【Tesla transformer-37.png】來自Tesla AI day主題演講視頻截圖,URLhttps://www.youtube.com/watch?v=j0z4FweCy4M&t=4115s;
Backbone+Task heads的整體架構(gòu)如上圖,這就是標(biāo)準(zhǔn)的多任務(wù)系統(tǒng)HydraNets。在這個(gè)多任務(wù)Heads框架中從左到右分別是Object Detection Task(應(yīng)該包含靜態(tài)和動(dòng)態(tài)所有道路目標(biāo)的識(shí)別)、Traffic Lights Task(交通燈和其它交通標(biāo)識(shí)的識(shí)別)和Lane Prediction Task(車道線及可行駛區(qū)域識(shí)別)。實(shí)際上FSD beta現(xiàn)在這個(gè)階段,使用到CNN backbone的任務(wù)一定不止以上三個(gè)。細(xì)分任務(wù)的原則是一個(gè)Head task無法處理和涵蓋一個(gè)類別的任務(wù),就需要擁有獨(dú)立的Head Task。比如小編推測在Lan Prediction Task中,可能不僅僅是各種車道線的識(shí)別和預(yù)測,還有可能包含同樣關(guān)鍵的馬路邊緣路緣石邊界的識(shí)別。在這個(gè)具象的Task中,系統(tǒng)框圖只給出了regression方法(reg),在對于車道線的識(shí)別這是一個(gè)普遍的方法,因?yàn)檐嚨谰€基本上可以用一個(gè)固定的二次函數(shù)、三次函數(shù)既可以描述出車道線走勢,所以機(jī)器學(xué)習(xí)里涉及的車道線識(shí)別方法,使用regression回歸方法來預(yù)測車道線的多項(xiàng)式系數(shù)即可,這是個(gè)慣用的標(biāo)準(zhǔn)做法。但對于馬路邊緣路緣石構(gòu)成的可行駛區(qū)域邊界的識(shí)別,因?yàn)槁肪壥吔绲牟灰?guī)則屬性,可能無法服用regression方法。感興趣的讀者可以參考PolyLaneNet車道線識(shí)別的方法,互聯(lián)網(wǎng)可查。
圖五【Tesla transformer-38.png】來自Youtube站點(diǎn)博主@Frenchie的測試視頻截圖,URLhttps://www.youtube.com/watch?v=rfTpt8phxL4;
上圖可以觀察到FSD beta的中控屏幕顯示的紅色曲線為路緣石線條,由于基建處理路緣石的考量不僅僅是勾畫車輛可行駛區(qū)域,相對地也要考慮行人道上的各種設(shè)備需求,因此它并不是一直和車道線保持并行,會(huì)有非規(guī)則曲線的場景出現(xiàn)。上圖中這個(gè)場景下,顯示的識(shí)別結(jié)果出現(xiàn)錯(cuò)誤,且這個(gè)非規(guī)則的路緣石不可能用低次曲線擬合出來。
對于object和traffic light的預(yù)測分類(屬性)和位置,則使用了classification、regression和attribution方法。類似的可以借鑒和查詢的論文就更多了,YOLO系列就是一個(gè)完美的參考,互聯(lián)網(wǎng)可查。
除了多頭的任務(wù)本身,圖四所顯示的多任務(wù)架構(gòu)還需要注意的是Tesla在Backbone和Head之間插入了一個(gè)叫做multi-scale features的cache環(huán)節(jié)。這個(gè)環(huán)節(jié)在模型的測試過程中扮演了關(guān)鍵角色。按照Karpathy的解釋,訓(xùn)練過程如下:
1 首先進(jìn)行的是end to end的聯(lián)合訓(xùn)練,輸入是視覺raw data,輸出是所有任務(wù)的輸出。監(jiān)督所有子任務(wù)的準(zhǔn)確度,并根據(jù)準(zhǔn)確度進(jìn)行干預(yù)(系統(tǒng)自動(dòng)執(zhí)行誤差的反向傳播)。這樣的訓(xùn)練結(jié)果將會(huì)導(dǎo)致所有子任務(wù)的“集體最優(yōu)結(jié)果”;
2 end to end的聯(lián)合訓(xùn)練會(huì)導(dǎo)致子任務(wù)集體最優(yōu),但因?yàn)樽尤蝿?wù)之間不可能做到邏輯上的完全隔離,因此集體最優(yōu)一定不是單個(gè)子任務(wù)的“個(gè)體最優(yōu)結(jié)果”,因此需要以單個(gè)任務(wù)為核心進(jìn)行調(diào)優(yōu)fine tunning;
3 以單個(gè)子任務(wù)為核心的fine tunning的輸入為經(jīng)過聯(lián)合調(diào)優(yōu)后確立的backbone所輸出的multi-scale features,從位于中部的那個(gè)cache里直接獲??;輸出則為各自子任務(wù)的輸出,還是經(jīng)過監(jiān)督學(xué)習(xí)機(jī)制,最后將每個(gè)子任務(wù)收斂到各自的最優(yōu)狀態(tài);
4 然后重復(fù)1的end to end聯(lián)合訓(xùn)練……
上述這個(gè)迭代流程可以確保網(wǎng)絡(luò)整體效能最優(yōu),且各個(gè)子任務(wù)的準(zhǔn)確度最佳。橫向看,這并非Tesla的專利(小編:盡管Tesla有訓(xùn)練多任務(wù)系統(tǒng)的一些專利,我們之前的文章有涉及過),業(yè)內(nèi)處理自動(dòng)駕駛系統(tǒng)內(nèi)的多任務(wù),大抵如此手法。但knowhow在于如何處理車載硬件的CPU算力——訓(xùn)練方法的有效性——最終模型輸出的準(zhǔn)確性,這三者之間的矛盾,達(dá)到和諧統(tǒng)一。這個(gè)Tesla當(dāng)然不會(huì)細(xì)說,就比如這個(gè)cache內(nèi)部的multi-scale feature,到底如何分配給不同的子任務(wù)可以協(xié)助子任務(wù)的預(yù)測水平實(shí)現(xiàn)最優(yōu)?這就是Tesla的秘密了。
別的不好說,但是顯然的是,誰的數(shù)據(jù)(有效數(shù)據(jù))最多最豐富最極端corner,誰就最有把握接近最佳模型。Tesla雖然扔掉了所有的毫米波雷達(dá)回波數(shù)據(jù),也不屑于Lidar的點(diǎn)云數(shù)據(jù),但在視覺領(lǐng)域的積累應(yīng)該還是有底氣的。
截至目前,HydraNets架構(gòu)已經(jīng)可以支撐標(biāo)準(zhǔn)的L2自動(dòng)駕駛業(yè)務(wù)了。對于Tesla來說,自從和Mobileye分手之后,HydraNets的框架就已經(jīng)(也必須)開始部署了,無非是在框架內(nèi)選擇不同的具體技術(shù)進(jìn)行性能更新而已。但實(shí)際上如果要往更高層級(jí)的自動(dòng)駕駛自治邁進(jìn),對于HydraNets架構(gòu)的擴(kuò)展就勢在必行了。
圖六【Tesla transformer-39、40.png】來自Tesla AI day主題演講視頻截圖,URLhttps://www.youtube.com/watch?v=j0z4FweCy4M&t=4115s;
以上兩張圖代表了兩種不同級(jí)別的自動(dòng)駕駛應(yīng)用,想必各位讀者已經(jīng)耳熟能詳了。前者是典型的單目攝像頭所獲取的信息,以及背后的多任務(wù)HydraNets NN架構(gòu)的識(shí)別結(jié)果。從Mobileye開始普及典型的Level-2自動(dòng)駕駛系統(tǒng)以來,Tesla Autopilot就一直是這個(gè)思路。唯一的變化就是2016年脫離和Mobileye的合作之后,Autopilot有一個(gè)階段是采用了Camera+mm Radar的傳感器組合,2021年上半年則轉(zhuǎn)向Full vision。
上圖前者的識(shí)別結(jié)果確實(shí)豐富,我們有過專門的公眾號(hào)文章對Autopilot在這個(gè)階段對于單目視覺信息的識(shí)別做了解讀。但這個(gè)識(shí)別結(jié)果,哪怕融合了毫米波雷達(dá)的速度信息,支持更高等級(jí)的自動(dòng)駕駛?cè)蝿?wù)也是不夠用的。所以才有了上圖后者的需求,車輛哪怕是在封閉場地和低速的限制條件下,例如Smart summon(停車場智能召喚功能),也必須要掌握主車四周的全視角道路狀態(tài)(可行駛區(qū)域),才有可能進(jìn)行路徑規(guī)劃,并發(fā)現(xiàn)召喚者。注:上圖中的九個(gè)視覺輸出中有兩個(gè)黑塊,意味著車身一共8個(gè)攝像頭,supper narrow遙距攝像頭并在Smart summon中參與道路3D信息捕獲和可行駛道路區(qū)域的識(shí)別。
對于Tesla Autopilot系統(tǒng)的識(shí)別堆棧談到這里,讀者應(yīng)當(dāng)注意這個(gè)主題的本質(zhì):花多少錢辦多少事兒。迄今為止對于CNN Backbone和純視覺的堅(jiān)持,可以在大部分的Level-2任務(wù)上得到技術(shù)落地和回報(bào),并在更大范疇的技術(shù)框架上一錘定音、不走回頭路以適應(yīng)越來越高的NN技術(shù)占比對于龐大有效的數(shù)據(jù)量的需求。只要這一步走對了,小編的角度看,Tesla就算成功了一半。自動(dòng)駕駛系統(tǒng)在未來能走多遠(yuǎn)?走多快?這就不僅僅是一家公司的事情了,很多問題也還是基礎(chǔ)科學(xué)、科學(xué)技術(shù)產(chǎn)業(yè)化的問題。舉個(gè)非常簡單的例子,純視覺如何克服目標(biāo)深度信息預(yù)測的準(zhǔn)確度和時(shí)效性問題?神經(jīng)網(wǎng)絡(luò)算子新貴Transformer轉(zhuǎn)戰(zhàn)視覺信息處理的突破,是如何提供給Tesla一個(gè)良好的視覺場轉(zhuǎn)化工具的?這里面有偶然,但更多是必然,我們相信只要走在正確的路上,困難就總是暫時(shí)的。
具體而言,當(dāng)Tesla意識(shí)到前向單目攝像頭所捕獲的視覺信息,哪怕對其再精耕細(xì)作和堆砌大量數(shù)據(jù)訓(xùn)練出來的模型,這個(gè)能力進(jìn)展也無法處理更高等級(jí)的自動(dòng)駕駛技術(shù)需求的時(shí)候,并沒有將現(xiàn)有識(shí)別堆棧推倒重來,而是繼續(xù)向前選擇了顯性的C++人工代碼試圖提供車身四周完整的3D視角視覺信息……如下圖:
圖七【Tesla transformer-41.png】來自Tesla AI day主題演講視頻截圖,URLhttps://www.youtube.com/watch?v=j0z4FweCy4M&t=4115s;
這個(gè)被叫做“Occupancy Tracker”的人工代碼被嵌入到Smart summon這個(gè)應(yīng)用的Task head底部,完成從CNN backbone提取feature map后,需要參照車身攝像頭的幾何尺寸將其轉(zhuǎn)換到路徑規(guī)劃所需要的Birds-view map。
360度的俯視圖Birds-view map在大多數(shù)Level-2自動(dòng)駕駛應(yīng)用場景中,并非必要。但在更高等級(jí)的自動(dòng)駕駛系統(tǒng)中,多傳感器數(shù)據(jù)處理結(jié)果(小編:同構(gòu)或者異構(gòu)傳感器都可以)終結(jié)在Birds-view map俯視圖結(jié)構(gòu)上,并提供給后端路徑規(guī)劃,還是最合適的。人類構(gòu)建的公路系統(tǒng)是嚴(yán)格符合“連續(xù)平面”屬性的,因此忽略高度信息的俯視圖在規(guī)劃中,比車載相機(jī)獲取的或略深度信息的投影平面,更能表現(xiàn)出道路上各種物體的相對位置關(guān)系。但問題在于如果路面拓?fù)溥^于復(fù)雜,且視覺傳感器會(huì)因?yàn)楦鞣N遮擋場景而只獲取部分信息,在這個(gè)基礎(chǔ)上,人工代碼往往力不從心。
對于上圖七的觀察我們就可以看到,在CNN backbone上增加Birds-view map獲取的“Occupancy Tracker”代碼Head之后,可以實(shí)現(xiàn)從camera視覺信息到俯視圖的轉(zhuǎn)換,但問題同樣明顯:
1 Karpathy標(biāo)識(shí)這段代碼功能非常難以落地,具體表現(xiàn)為對于場景適應(yīng)能力很差,可能在一部分場景下表現(xiàn)尚可,但一旦出現(xiàn)特殊的道路拓?fù)?,就?huì)失效;
2 精度問題。
上圖七左上角是Birds-view map的輸出結(jié)果,車輛左轉(zhuǎn)彎之后,前方兩側(cè)都出現(xiàn)大面積的無法識(shí)別狀態(tài),右后側(cè)出現(xiàn)識(shí)別精度大誤差狀態(tài)(紅色線條重疊)。讀者可以想象,一旦車速增加、出現(xiàn)大面積的路邊遮擋物和道路拓?fù)鋭×腋淖兊鹊?,識(shí)別效果會(huì)進(jìn)一步惡化。
圖八【Tesla transformer-42.png】來自Tesla AI day主題演講視頻截圖,URLhttps://www.youtube.com/watch?v=j0z4FweCy4M&t=4115s;
如果我們從smart summon應(yīng)用再往前走一步,在所有道路條件下提供投影成像到Birds-view map的轉(zhuǎn)換,再從路緣石邊界(上圖紅色線條)擴(kuò)展到對于車道線(上圖藍(lán)色箭頭)的識(shí)別和轉(zhuǎn)換視角,則之前的Occupancy tracker所面臨的問題會(huì)被進(jìn)一步放大。圖八中,我們可以看到在camera投影視圖中的路緣石邊緣識(shí)別結(jié)果,因?yàn)樘烊辉诰壬系恼`差,經(jīng)由精確的幾何變換后,在俯視圖上的誤差得到進(jìn)一步放大,甚至到會(huì)引發(fā)解讀歧義的問題:認(rèn)真看投影視圖中的紅色線條,是對路緣石的一種近似的擬合結(jié)果。CNN Backbone的各種CNN識(shí)別結(jié)果,在單目鏡頭的視覺投影信息中,只能依賴CNN的對于人類智能模擬之后的近似。Camera不可能提供和Lidar等同的測量精度,Camera+CNN更多意義上的操作本質(zhì)是“預(yù)測”。因此,建立在預(yù)測結(jié)果上,對于近似的預(yù)測結(jié)果進(jìn)行“硬橋硬馬”的集合轉(zhuǎn)換,結(jié)果就只能是這個(gè)水平。
圖中的黃色和綠色箭頭所指位置,投影成像的線條近似,被轉(zhuǎn)換為以車輛攝像頭為圓心的圓弧段,沒錯(cuò),Occupancy Tracker認(rèn)為線段上的每一個(gè)點(diǎn),到攝像頭的距離都是一樣的…….由此,更新Occupancy Tracker代碼,使用同質(zhì)的NN網(wǎng)絡(luò)來模擬人類的預(yù)測行為,來完成這個(gè)視場轉(zhuǎn)換任務(wù),就是Autopilot識(shí)別堆棧的下一個(gè)核心重點(diǎn)了!
審核編輯 :李倩
-
堆棧
+關(guān)注
關(guān)注
0文章
182瀏覽量
20002 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
788文章
14129瀏覽量
168892 -
Autopilot
+關(guān)注
關(guān)注
0文章
44瀏覽量
7009
原文標(biāo)題:Tesla Vision背后的變形金剛——系統(tǒng)需要的是測量還是預(yù)測?
文章出處:【微信號(hào):阿寶1990,微信公眾號(hào):阿寶1990】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
AFE5801 TGC配置中采用Static PGA模式時(shí)細(xì)調(diào)增益配置的疑問求解
AFE5801細(xì)調(diào)增益不起作用的原因?怎么解決?
AFE5801細(xì)調(diào)增益不起作用是什么原因?qū)е碌模?/a>
AUTOSAR中通信堆棧的配置 AUTOSAR通信模塊測試方法
TMS320C28x DSP上的在線堆棧溢出檢測

使用Simplelink無線MCU系列克隆Z堆棧網(wǎng)絡(luò)屬性

使用Simplelink?無線MCU系列測量堆棧終端器件功耗

電感器線徑究竟是粗好還是細(xì)好
C2000?MCU的運(yùn)行時(shí)堆棧大小監(jiān)測

德州儀器(TI)Wi-SUN? 堆棧:幀計(jì)數(shù)器驗(yàn)證缺失

堆棧和內(nèi)存的基本知識(shí)

如何使用Polyspace Code Prover來統(tǒng)計(jì)堆棧

評(píng)論