自動(dòng)駕駛「感知」的革新?從人腦和蛙眼得到的啟示
???
本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請(qǐng)至雷鋒網(wǎng)官網(wǎng)申請(qǐng)授權(quán)。
需要處理的圖像像素過多與芯片算力不足的矛盾,已經(jīng)成為了當(dāng)前制約自動(dòng)駕駛發(fā)展的瓶頸之一。
為了解決上述問題,事件相機(jī)與脈沖神經(jīng)網(wǎng)絡(luò)的結(jié)合或許會(huì)是一個(gè)可行的解決方案。
卷積神經(jīng)網(wǎng)絡(luò)是目前圖像目標(biāo)檢測(cè)算法的重要手段。以ResNet-152為例,一個(gè)152層的卷積神經(jīng)網(wǎng)絡(luò),處理一張224*224大小的圖像所需的計(jì)算量大約是226億次,如果這個(gè)網(wǎng)絡(luò)要處理一個(gè)1080P的30幀的攝像頭,那么它所需要的計(jì)算量將高達(dá)每秒33萬億次,十分龐大。
以當(dāng)前典型的百度的無人車為例,計(jì)算平臺(tái)約為800TOPS,其中1TOPS代表處理器可以每秒鐘進(jìn)行一萬億次操作。
假設(shè)一個(gè)攝像頭所需要的算力為33TOPS,更遑論無人車動(dòng)輒配置十余個(gè)攝像頭,以及多個(gè)激光雷達(dá)和毫米波雷達(dá)。
為了準(zhǔn)確檢測(cè)行人并預(yù)測(cè)其路徑,芯片往往需要多幀處理,至少是10幀,也就是330毫秒。這意味著相關(guān)系統(tǒng)可能需要數(shù)百毫秒才能實(shí)現(xiàn)有效探測(cè),而對(duì)于一輛以60公里每小時(shí)行進(jìn)中的車輛來說,330毫秒的時(shí)間就能行駛5.61米。
如果為了保證足夠的安全,將幀數(shù)增加到每秒30幀,圖像數(shù)據(jù)很可能讓自動(dòng)駕駛芯片不堪重負(fù)。
針對(duì)算力不足的問題,提高算力是業(yè)內(nèi)玩家最容易想到的方法。然而,目前芯片的制程正在不斷壓縮,在極小尺寸下,量子遂穿效應(yīng)逐漸顯著,摩爾定律逐漸失效,芯片算力的提升也在面臨巨大挑戰(zhàn)。
同時(shí),算力的提高也伴隨著功耗的提高,但在新能源的大背景下,分配給芯片的能量越多,續(xù)航能力就會(huì)受到越大的影響。
算力與能耗正在逐漸成為自動(dòng)駕駛發(fā)展的一對(duì)矛盾。
那么我們能不能另辟蹊徑呢?仿生學(xué)也許能給我們帶來新的思路。
對(duì)于人類來講,在靜止的畫面中注意到運(yùn)動(dòng)物體并不難。對(duì)于青蛙來說,它甚至只能看到運(yùn)動(dòng)的物體,對(duì)靜止的背景畫面視而不見。
針對(duì)生物這一特性,研究者們?cè)O(shè)計(jì)出一種事件相機(jī)。
傳統(tǒng)相機(jī)以固定幀率重復(fù)掃描整個(gè)場(chǎng)景,無論場(chǎng)景中是否有目標(biāo)活動(dòng),均忠實(shí)的輸出由一幀幀圖片組成的視頻流。毫無疑問,這種連續(xù)的視頻流存在高度的信息冗余,大量無用的背景圖片也被送入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行運(yùn)算。
事件相機(jī)則不同,事件相機(jī)僅記錄亮度“變化”的像素點(diǎn)。
傳統(tǒng)幀相機(jī)與事件相機(jī)輸出的效果對(duì)比如下圖所示,即傳統(tǒng)的幀相機(jī)輸出為整個(gè)視場(chǎng)的全部信息(左圖),而事件相機(jī)只捕捉場(chǎng)景中運(yùn)動(dòng)的手臂,如(右圖)所示。
???
基于重點(diǎn)關(guān)注運(yùn)動(dòng)目標(biāo)這一特點(diǎn),事件相機(jī)也許能在自動(dòng)駕駛領(lǐng)域大展身手。
由于事件相機(jī)剔除了靜止的背景圖片,所以每幀產(chǎn)生的數(shù)據(jù)量大大減少,達(dá)到幾十kb的級(jí)別。
相對(duì)于傳統(tǒng)相機(jī),事件相機(jī)還有高幀率、低功耗、高動(dòng)態(tài)范圍等優(yōu)點(diǎn):
-
1)高幀率。實(shí)際上,所謂的“幀率”概念,對(duì)事件相機(jī)是不存在的。事件相機(jī)每個(gè)感光單元都可以以異步的形式來記錄像素亮度的變化,無需等待傳統(tǒng)相機(jī)每秒30次的“曝光”時(shí)機(jī)?;跊]有曝光的特點(diǎn),事件相機(jī)的輸出頻率可以高達(dá)每秒100萬次,遠(yuǎn)遠(yuǎn)超過每秒30次傳統(tǒng)相機(jī)的幀率。
-
2)低時(shí)延。事件相機(jī)僅僅傳輸亮度變化,從而避免了大量冗余數(shù)據(jù)的傳輸,因此能耗僅用于處理變化的像素。大多數(shù)事件相機(jī)的功耗約在 10 mW 級(jí),而有部分相機(jī)原型的功耗甚至小于10 μW,遠(yuǎn)遠(yuǎn)低于傳統(tǒng)基于幀的相機(jī)。
-
3)高動(dòng)態(tài)范圍。事件相機(jī)的動(dòng)態(tài)范圍高達(dá)140 dB,遠(yuǎn)遠(yuǎn)優(yōu)于 60 dB 的幀相機(jī)。這使得事件相機(jī)既能在光照條件良好的白天工作,也能在光線較暗的夜晚采集視場(chǎng)中的動(dòng)態(tài)信息。這是由于事件相機(jī)每個(gè)像素的光感受器以對(duì)數(shù)方式獨(dú)立工作,而非全局快門工作模式。因此,事件相機(jī)具有與生物視網(wǎng)膜相似的特性,其像素可以適應(yīng)非常暗和非常亮的感光刺激。
下面兩張圖展現(xiàn)了事件相機(jī)的關(guān)注運(yùn)動(dòng)物體和高動(dòng)態(tài)范圍的特性。傳統(tǒng)相機(jī)在光線較暗的情況下,難以辨識(shí)圖片中右邊的行人。然而事件相機(jī)卻能夠十分清晰的捕捉到右邊的行人,并同時(shí)濾出圖像右下靜止的車輛信息。
???
傳統(tǒng)相機(jī)
???
事件相機(jī)
在自動(dòng)駕駛領(lǐng)域,事件相機(jī)相對(duì)于傳統(tǒng)相機(jī)具有巨大的優(yōu)勢(shì),不過需要注意的是,事件相機(jī)無法提取出距離信息,需要激光雷達(dá)配合判斷目標(biāo)距離。
或許會(huì)有人感到疑惑:事件相機(jī)這么好,為什么沒有大量應(yīng)用在自動(dòng)駕駛領(lǐng)域呢?
實(shí)際上,相機(jī)獲取信息僅僅是第一步,后續(xù)事件相機(jī)信息的處理則是更為關(guān)鍵的一環(huán)。
如下圖所示,傳統(tǒng)相機(jī)的輸出是一幀幀的靜止圖片,而事件相機(jī)則是一個(gè)個(gè)事件(Event)流。
???
一般來說,目前的神經(jīng)網(wǎng)絡(luò)都專注于如何提取每幀靜止圖片中的行人、汽車等目標(biāo),如YOLO,resnet等算法。針對(duì)基于時(shí)間戳的事件流,目前尚無有效的算法進(jìn)行目標(biāo)識(shí)別。
而事件流處理算法的缺失,與當(dāng)前的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是分不開的。
當(dāng)前主流的神經(jīng)網(wǎng)絡(luò)被稱為第二代人工神經(jīng)網(wǎng)絡(luò),以精確的浮點(diǎn)運(yùn)算為基礎(chǔ),缺失了在自然界中最重要的一個(gè)因素:時(shí)間。對(duì)于神經(jīng)網(wǎng)絡(luò)而言,輸出的結(jié)果會(huì)和輸入一一對(duì)應(yīng),任何時(shí)候輸入相同的圖片,神經(jīng)網(wǎng)絡(luò)都會(huì)輸出一樣的結(jié)果。
然而真實(shí)的大腦,是以這種浮點(diǎn)運(yùn)算為基礎(chǔ)的嗎?顯然不是,真實(shí)的大腦是以脈沖為基礎(chǔ)的,以脈沖傳遞和處理信息。
這種以脈沖傳遞為基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)是脈沖神經(jīng)網(wǎng)絡(luò)(spiking neural network,SNN),被譽(yù)為第三代人工神經(jīng)網(wǎng)絡(luò)。基于脈沖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的芯片也被稱為類腦芯片。
脈沖發(fā)生的時(shí)刻攜帶著重要信息,脈沖神經(jīng)網(wǎng)絡(luò)天然具備對(duì)時(shí)序信息處理的能力,這與事件相機(jī)基于時(shí)間戳的事件流輸出十分吻合。
此外,脈沖神經(jīng)網(wǎng)絡(luò)還具有事件驅(qū)動(dòng)、異步運(yùn)算、極低功耗等特性。
-
1)事件驅(qū)動(dòng)。在我們的大腦中,同一時(shí)刻大約有90%以上的神經(jīng)元都是沉默的。也就是說,當(dāng)沒有事件輸入的時(shí)候神經(jīng)元是不活動(dòng)的。這一特點(diǎn)也使得事件相機(jī)的事件流的輸出與SNN十分契合,同時(shí)功耗也極大降低。
-
2)異步運(yùn)算。脈沖神經(jīng)網(wǎng)絡(luò)不存在“主頻”的概念。傳統(tǒng)的計(jì)算機(jī)都需要一個(gè)時(shí)鐘,以確保所有的操作都在時(shí)間步上進(jìn)行,這個(gè)時(shí)鐘的頻率被稱為主頻。目前主流的計(jì)算機(jī)主頻都達(dá)到每秒1GHz以上。然而,以IBM的神經(jīng)態(tài)硬件TrueNorth為例,100Hz左右的脈沖發(fā)放率即可完成圖像識(shí)別、目標(biāo)檢測(cè)等任務(wù)。當(dāng)前通用的計(jì)算機(jī)基本是馮·諾依曼結(jié)構(gòu),這種結(jié)構(gòu)下,隨著CPU的運(yùn)算速度遠(yuǎn)遠(yuǎn)超過內(nèi)存的存取速度,已然形成難以逾越的計(jì)算瓶頸。然而,脈沖神經(jīng)網(wǎng)絡(luò)所有的內(nèi)存和運(yùn)算都體現(xiàn)在神經(jīng)元的異步脈沖之中,有很大希望突破目前計(jì)算機(jī)運(yùn)算能力瓶頸。
-
3)極低功耗。在2016年著名的人機(jī)圍棋大戰(zhàn)中,Google公司的AlphaGo系統(tǒng)每局圍棋博弈的平均耗電費(fèi)用高達(dá)3000美元。而作為脈沖神經(jīng)網(wǎng)絡(luò)架構(gòu)的人腦,功率僅僅為20W左右。此前,有學(xué)者將目標(biāo)檢測(cè)中的經(jīng)典算法YOLO進(jìn)行脈沖化,在完成相同任務(wù)的情況下,功耗降低了280倍左右,同時(shí)速度提高了2.3到4倍。
總的來說,事件相機(jī)和脈沖神經(jīng)網(wǎng)絡(luò)的結(jié)合,正如人類用眼睛和大腦觀察四周:自動(dòng)忽略周圍靜止的事物,對(duì)突然出現(xiàn)的運(yùn)動(dòng)物體予以重點(diǎn)關(guān)注和運(yùn)算。
當(dāng)前學(xué)術(shù)界已經(jīng)掀起了對(duì)脈沖神經(jīng)網(wǎng)絡(luò)研究的熱潮,但由于神經(jīng)態(tài)硬件的發(fā)展正處于起步階段,并且人們對(duì)于大腦的工作機(jī)理認(rèn)識(shí)還不夠全面,目前尚無基于脈沖神經(jīng)網(wǎng)絡(luò)在商業(yè)上的應(yīng)用。
隨著人們對(duì)大腦認(rèn)識(shí)的深入,以及國(guó)外的TrueNorth、SpiNNaker、Loihi和國(guó)內(nèi)清華的天機(jī)芯(Tianjic)和浙大的達(dá)爾文等類腦芯片的研發(fā)。我們也期待,事件相機(jī)與脈沖神經(jīng)網(wǎng)絡(luò)的結(jié)合能夠給自動(dòng)駕駛行業(yè)帶來新的突破。