【技術大院導讀】汽車產業(yè)在芯片廠家的推動下進入了算力比拼時代,一場算力競賽已經在各大芯片企業(yè)之間悄然興起。殊不知高算力背后是高功耗和低利用率的問題日益突出,算力不可能一直提高。
事件相機的出現(xiàn)憑借自身極快的響應速度、減少無效信息、降低算力和功耗、高動態(tài)范圍等優(yōu)勢對高算力芯片形成致命打擊,它只需要傳統(tǒng)算力芯片1%甚至0.1%的算力就可完美工作,功耗是毫瓦級??梢詭椭?a class="article-link" target="_blank" href="/tag/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/">自動駕駛車輛降低信息處理的復雜度、提高車輛的行駛安全,并能夠在極亮或者極暗環(huán)境下正常工作。
像素與算力矛盾突出
需要處理的圖像像素過多與芯片算力不足的矛盾,已經成為了當前制約自動駕駛發(fā)展的瓶頸之一。
當今自動駕駛領域所運用的視覺識別算法,基本上都基于卷積神經網絡,視覺算法的運算本質上是一次次的卷積運算。這種計算并不復雜,本質上只涉及到加減乘除,也就是一種乘積累加運算。但這種簡單運算在卷積神經網絡中是大量存在的,這就對處理器的性能提出了很高的要求。
以ResNet-152為例,這是一個152層的卷積神經網絡,它處理一張224*224大小的圖像所需的計算量大約是226億次,如果這個網絡要處理一個1080P的30幀的攝像頭,他所需要的算力則高達每秒33萬億次,十分龐大。
以當前典型的百度的無人車為例,計算平臺約為800TOPS,其中1TOPS代表處理器可以每秒鐘進行一萬億次操作。假設一個攝像頭所需要的算力為33TOPS,更遑論無人車動輒配置十余個攝像頭,以及多個激光雷達和毫米波雷達。
為了準確檢測行人并預測其路徑,芯片往往需要多幀處理,至少是10幀,也就是330毫秒。這意味著相關系統(tǒng)可能需要數(shù)百毫秒才能實現(xiàn)有效探測,而對于一輛以60公里每小時行進中的車輛來說,330毫秒的時間就能行駛5.61米。如果為了保證足夠的安全,將幀數(shù)增加到每秒30幀,圖像數(shù)據(jù)很可能讓自動駕駛芯片不堪重負。
提高算力固然可以暫時解決問題,同時,算力的提高也伴隨著功耗的提高,但在新能源的大背景下,分配給芯片的能量越多,續(xù)航能力就會受到越大的影響。算力與能耗正在逐漸成為自動駕駛發(fā)展的一對矛盾。
實際上自動駕駛領域99%的視覺數(shù)據(jù)在AI處理中是無用的背景。這就好像檢測鬼探頭,變化的區(qū)域是很小一部分,但傳統(tǒng)的視覺處理仍然要處理99%的沒有出現(xiàn)變化的背景區(qū)域,這不僅浪費了大量的算力,也浪費了時間。亦或者像在沙礫里有顆鉆石,AI芯片和傳統(tǒng)相機需要識別每一顆沙粒,篩選出鉆石,但人類只需要看一眼就能檢測到鉆石,AI芯片和傳統(tǒng)相機耗費的時間是人類的100倍或1000倍。
對于人類來講,在靜止的畫面中注意到運動物體并不難。對于青蛙來說,它甚至只能看到運動的物體,對靜止的背景畫面視而不見。
針對生物這一特性,事件相機的出現(xiàn),成功解決了自動駕駛中視覺處理的問題。
事件相機的工作原理
事件相機(event cameras)是一種生物啟發(fā)的視覺傳感器,以完全不同于標準相機的方式工作。事件相機不是以恒定速率輸出強度圖像幀,而是僅輸出局部像素級亮度變化的相關信息。這些像素級亮度變化(稱為事件)超過設定閾值時,事件相機以微秒級分辨率標記時間戳,并輸出異步事件流。
事件相機的靈感來自人眼和動物的視覺,也有人稱之為硅視網膜。生物的視覺只針對有變化的區(qū)域才敏感,比如眼前突然掉下來一個物體,那么人眼會忽視背景,會將注意力集中在這個物體上,事件相機就是捕捉事件的產生或者說變化的產生。
在傳統(tǒng)的視覺領域,相機傳回的信息是同步的,所謂同步,就是在某一時刻t,相機會進行曝光,把這一時刻所有的像素填在一個矩陣里回傳,一張照片就誕生了。一張照片上所有的像素都對應著同一時刻。至于視頻,不過是很多幀的圖片,相鄰圖片間的時間間隔可大可小,這便是我們常說的幀率(frame rate),也稱為時延(time latency)。事件相機類似于人類的大腦和眼睛,跳過不相關的背景,直接感知一個場景的核心,創(chuàng)建純事件而非數(shù)據(jù)。
事件相機的工作機制是,當某個像素所處位置的亮度發(fā)生變化達到一定閾值時,相機就會回傳一個上述格式的事件,其中前兩項為事件的像素坐標,第三項為事件發(fā)生的時間戳,最后一項取值為極性(polarity)0、1(或者-1、1),代表亮度是由低到高還是由高到低,也常被稱作Positive or Negative Event,又被稱作On or Off Event。
我們通過下圖的小球實驗可以更直觀地發(fā)現(xiàn):只要小球變化的時刻,就會產生事件流,而小球靜止的時刻,就不會產生事件流。
圖:事件相機與幀相機的輸出信號對比
就這樣,在整個相機視野內,只要有一個像素值變化,就會回傳一個事件,這些所有的事件都是異步發(fā)生的(再小的時間間隔也不可能完全同時),所以事件的時間戳均不相同,由于回傳簡單,所以和傳統(tǒng)相機相比,它具有低時延的特性,可以捕獲很短時間間隔內的像素變化,延遲是微秒級的。
事件相機的優(yōu)勢
相對于傳統(tǒng)相機,事件相機還有高幀率、低功耗、高動態(tài)范圍等優(yōu)點:
1)高幀率。實際上,所謂的“幀率”概念,對事件相機是不存在的。事件相機每個感光單元都可以異步的形式記錄像素亮度變化,無需等待傳統(tǒng)相機每秒30次的“曝光”時機?;跊]有曝光的特點,事件相機的輸出頻率可以高達每秒100萬次,遠遠超過每秒30次傳統(tǒng)相機的幀率。
2)低時延。事件相機僅傳輸亮度變化,避免大量冗余數(shù)據(jù)的傳輸,因此能耗僅用于處理變化的像素。大多數(shù)事件相機的功耗約在 10 mW 級,而有部分相機原型的功耗甚至小于10 μW,遠遠低于傳統(tǒng)基于幀的相機。
3)高動態(tài)范圍。事件相機的動態(tài)范圍高達140 dB,遠遠優(yōu)于 60 dB 的幀相機。既能在光照條件良好的白天工作,也能在光線較暗的夜晚采集視場中的動態(tài)信息。這是由于事件相機每個像素的光感受器以對數(shù)方式獨立工作,而非全局快門工作模式。因此,事件相機具有與生物視網膜相似的特性,其像素可以適應非常暗和非常亮的感光刺激。
在拍攝高速物體時傳統(tǒng)相機會發(fā)生模糊(由于會有一段曝光時間),而事件相機幾乎不會。再就是真正的高動態(tài)范圍,由于事件相機的特質,在光強較強或較弱的環(huán)境下(高曝光和低曝光),傳統(tǒng)相機均會“失明”,但像素變化仍然存在,所以事件相機仍能看清眼前的東西。
傳統(tǒng)相機的動態(tài)范圍是無法做寬的,因為放大器會有線性范圍,照顧了低照度就無法適應強光,反過來適應了強光就無法顧及低照度。事件相機在目標追蹤、動作識別等領域具備壓倒性優(yōu)勢,尤其適合自動駕駛領域。
空中一個球的軌跡,
扔一個球,看看兩種相機的軌跡記錄:
事件相機的出現(xiàn)對高算力AI芯片是致命打擊,它只需要傳統(tǒng)高算力AI芯片1%甚至0.1%的算力就可完美工作,功耗是毫瓦級。事件相機基于流水線時間戳方式處理數(shù)據(jù),而不是一幀幀地平面處理各個像素。傳統(tǒng)卷積算法可能無用,AI芯片最擅長的乘積累加運算可能沒有用武之地。為了準確檢測行人并預測其路徑,需要多幀處理,至少是10幀,也就是330毫秒。這意味著相關系統(tǒng)可能需要數(shù)百毫秒才能實現(xiàn)有效探測,而對于一輛以60公里每小時行進中的車輛來說,330毫秒的時間就能行駛5.61米,而事件相機理論上不超過1毫秒。
事件相機的產品分類
當前,市場上主流的事件相機產品主要為三類:DVS、ATIS以及DAVIS,它們都采用了差分型視覺采樣模型。此外,也有一些其它類型的事件相機,比如CeleX、Vidar,但從商業(yè)化的進度來看,上述三類事件相機的商業(yè)化發(fā)展較快。
事件相機產業(yè)鏈的情況與傳統(tǒng)幀相機幾乎是相同的,主要包括上游是零部件供應商(鏡頭組零部件、膠合材料、圖像傳感器芯片等)、中游是模組供應商與系統(tǒng)集成商等、下游是主機廠。
產業(yè)鏈中的不同之處主要是在圖像傳感器芯片、算法軟件,比如更適合事件相機的芯片是類腦芯片、更適合的算法則是脈沖神經網絡。
第三代神經網絡助力大規(guī)模應用
事件相機目前之所以沒有大規(guī)模應用在自動駕駛領域,歸根結底受限于神經網絡算法。
實際上,相機獲取信息僅僅是第一步,后續(xù)事件相機信息的處理則是更為關鍵的一環(huán)。
如下圖所示,傳統(tǒng)相機的輸出是一幀幀的靜止圖片,而事件相機則是一個個事件(Event)流。
一般來說,目前的神經網絡都專注于如何提取每幀靜止圖片中的行人、汽車等目標,如YOLO,resnet等算法。針對基于時間戳的事件流,目前尚無有效的算法進行目標識別。而事件流處理算法的缺失,與當前的神經網絡結構是分不開的。
當前主流的神經網絡被稱為第二代人工神經網絡,以精確的浮點運算為基礎,缺失了在自然界中最重要的一個因素:時間。對于神經網絡而言,輸出的結果會和輸入一一對應,任何時候輸入相同的圖片,神經網絡都會輸出一樣的結果。
然而真實的大腦,是以這種浮點運算為基礎的嗎?顯然不是,真實的大腦是以脈沖為基礎的,以脈沖傳遞和處理信息。
這種以脈沖傳遞為基礎的神經網絡是脈沖神經網絡(spiking neural network,SNN),被譽為第三代人工神經網絡?;诿}沖神經網絡結構設計的芯片也被稱為類腦芯片。脈沖發(fā)生的時刻攜帶著重要信息,脈沖神經網絡天然具備對時序信息處理的能力,這與事件相機基于時間戳的事件流輸出十分吻合。
此外,脈沖神經網絡還具有事件驅動、異步運算、極低功耗等特性。
1)事件驅動。在我們的大腦中,同一時刻大約有90%以上的神經元都是沉默的。也就是說,當沒有事件輸入的時候神經元是不活動的。這與事件相機的事件流輸出十分契合,同時功耗也極大降低。
2)異步運算。脈沖神經網絡不存在“主頻”的概念。傳統(tǒng)的計算機都需要一個時鐘,以確保所有的操作都在時間步上進行,這個時鐘的頻率被稱為主頻。目前主流的計算機主頻都達到每秒1GHz以上。然而,以IBM的神經態(tài)硬件TrueNorth為例,100Hz左右的脈沖發(fā)放率即可完成圖像識別、目標檢測等任務。當前通用的計算機基本是馮·諾依曼結構,這種結構下,隨著CPU的運算速度遠遠超過內存的存取速度,已然形成難以逾越的計算瓶頸。然而,脈沖神經網絡所有的內存和運算都體現(xiàn)在神經元的異步脈沖之中,有很大希望突破目前計算機運算能力瓶頸。
3)極低功耗。在2016年著名的人機圍棋大戰(zhàn)中,Google公司的AlphaGo系統(tǒng)每局圍棋博弈的平均耗電費用高達3000美元。而作為脈沖神經網絡架構的人腦,功率僅僅為20W左右。此前,有學者將目標檢測中的經典算法YOLO進行脈沖化,在完成相同任務的情況下,功耗降低了280倍左右,同時速度提高了2.3到4倍。
總的來說,事件相機和脈沖神經網絡的結合,正如人類用眼睛和大腦觀察四周:自動忽略周圍靜止的事物,對突然出現(xiàn)的運動物體予以重點關注和運算。
寫在最后
匹茲堡大學眼科教授、CMU機器人研究所兼職教授Ryad Benosman作為基于事件的視覺技術的奠基人之一,他認為:預計神經形態(tài)視覺(基于事件相機的計算機視覺)是計算機視覺的下一個方向。
基于圖像相機的計算機視覺技術是非常低效的。Benosman將其比作中世紀城堡的防御系統(tǒng):駐守在城墻周圍的士兵從各個方向注視著接近的敵人。鼓手打著穩(wěn)定的節(jié)拍,每敲一下,每個守衛(wèi)就會大聲喊出他們所看到的東西。在所有的呼喊聲中,聽到一個守衛(wèi)在遠處森林邊緣發(fā)現(xiàn)敵人發(fā)出的聲音會有多容易?
21世紀相當于鼓點的硬件是電子時鐘信號,而衛(wèi)兵是像素,每一個時鐘周期都會產生一大批數(shù)據(jù)并必須進行檢查,這意味著有大量的冗余信息和大量不必要的計算需要。
進入神經形態(tài)視覺。其基本理念是受生物系統(tǒng)工作方式的啟發(fā),檢測場景動態(tài)的變化,而不是連續(xù)分析整個場景。在城堡比喻中,這將意味著讓守衛(wèi)保持安靜,直到他們看到感興趣的東西,然后喊出他們的位置,發(fā)出警報。在電子版本中,這意味著讓單個像素決定它們是否看到了相關的東西。
Benosman教授說:像素可以自己決定他們應該發(fā)送什么信息,而不是獲取系統(tǒng)信息,他們可以尋找有意義的信息,即特征。這就是與眾不同之處。與固定頻率的系統(tǒng)采集相比,這種基于事件的方法可以節(jié)省大量的功耗,并減少延遲。
現(xiàn)在的AI本質上還是一種蠻力計算,依靠海量數(shù)據(jù)和海量算力,對數(shù)據(jù)集和算力的需求不斷增加,這顯然離初衷越來越遠,文明的每一次進步都帶來效率的極大提高,唯有效率的提高才是進步,而依賴海量數(shù)據(jù)和海量算力的AI效率越來越低。
當前學術界已經掀起了對脈沖神經網絡研究的熱潮,隨著人們對大腦認識的深入,以及國外的TrueNorth、SpiNNaker、Loihi和國內清華的天機芯(Tianjic)和浙大的達爾文等類腦芯片的研發(fā)。
筆者堅信:事件相機與脈沖神經網絡的完美結合在目標追蹤、動作識別等領域具備壓倒性優(yōu)勢,給自動駕駛行業(yè)帶來新的突破。