事件相機和脈衝神經網路的結合,正如生物眼睛與大腦的協作。
作者 | 李偉
需要處理的影象畫素過多與晶片算力不足的矛盾,已經成為了當前制約自動駕駛發展的瓶頸之一。
為了解決上述問題,事件相機與脈衝神經網路的結合或許會是一個可行的解決方案。
卷積神經網路是目前影象目標檢測演算法的重要手段。以ResNet-152為例,一個152層的卷積神經網路,處理一張224*224大小的影象所需的計算量大約是226億次,如果這個網路要處理一個1080P的30幀的攝像頭,那麼它所需要的計算量將高達每秒33萬億次,十分龐大。
以當前典型的百度的無人車為例,計算平臺約為800TOPS,其中1TOPS代表處理器可以每秒鐘進行一萬億次操作。
假設一個攝像頭所需要的算力為33TOPS,更遑論無人車動輒配置十餘個攝像頭,以及多個鐳射雷達和毫米波雷達。
為了準確檢測行人並預測其路徑,晶片往往需要多幀處理,至少是10幀,也就是330毫秒。這意味著相關係統可能需要數百毫秒才能實現有效探測,而對於一輛以60公里每小時行進中的車輛來說,330毫秒的時間就能行駛5.61米。
如果為了保證足夠的安全,將幀數增加到每秒30幀,影象資料很可能讓自動駕駛晶片不堪重負。
針對算力不足的問題,提高算力是業內玩家最容易想到的方法。然而,目前晶片的製程正在不斷壓縮,在極小尺寸下,量子遂穿效應逐漸顯著,摩爾定律逐漸失效,晶片算力的提升也在面臨巨大挑戰。
同時,算力的提高也伴隨著功耗的提高,但在新能源的大背景下,分配給晶片的能量越多,續航能力就會受到越大的影響。
算力與能耗正在逐漸成為自動駕駛發展的一對矛盾。
那麼我們能不能另闢蹊徑呢?仿生學也許能給我們帶來新的思路。
對於人類來講,在靜止的畫面中注意到運動物體並不難。對於青蛙來說,它甚至只能看到運動的物體,對靜止的背景畫面視而不見。
針對生物這一特性,研究者們設計出一種事件相機。
傳統相機以固定幀率重複掃描整個場景,無論場景中是否有目標活動,均忠實的輸出由一幀幀圖片組成的影片流。毫無疑問,這種連續的影片流存在高度的資訊冗餘,大量無用的背景圖片也被送入卷積神經網路進行運算。
事件相機則不同,事件相機僅記錄亮度“變化”的畫素點。
傳統幀相機與事件相機輸出的效果對比如下圖所示,即傳統的幀相機輸出為整個視場的全部資訊(左圖),而事件相機只捕捉場景中運動的手臂,如(右圖)所示。
基於重點關注運動目標這一特點,事件相機也許能在自動駕駛領域大展身手。
由於事件相機剔除了靜止的背景圖片,所以每幀產生的資料量大大減少,達到幾十kb的級別。
相對於傳統相機,事件相機還有高幀率、低功耗、高動態範圍等優點:
1)高幀率。實際上,所謂的“幀率”概念,對事件相機是不存在的。事件相機每個感光單元都可以以非同步的形式來記錄畫素亮度的變化,無需等待傳統相機每秒30次的“曝光”時機。基於沒有曝光的特點,事件相機的輸出頻率可以高達每秒100萬次,遠遠超過每秒30次傳統相機的幀率。
2)低時延。事件相機僅僅傳輸亮度變化,從而避免了大量冗餘資料的傳輸,因此能耗僅用於處理變化的畫素。大多數事件相機的功耗約在 10 mW 級,而有部分相機原型的功耗甚至小於10 μW,遠遠低於傳統基於幀的相機。
3)高動態範圍。事件相機的動態範圍高達140 dB,遠遠優於 60 dB 的幀相機。這使得事件相機既能在光照條件良好的白天工作,也能在光線較暗的夜晚採集視場中的動態資訊。這是由於事件相機每個畫素的光感受器以對數方式獨立工作,而非全域性快門工作模式。因此,事件相機具有與生物視網膜相似的特性,其畫素可以適應非常暗和非常亮的感光刺激。
下圖展現了事件相機的關注運動物體和高動態範圍的特性。傳統相機在光線較暗的情況下,難以辨識圖片中右邊的行人。然而事件相機卻能夠十分清晰的捕捉到右邊的行人,並同時濾出影象右下靜止的車輛資訊。
在自動駕駛領域,事件相機相對於傳統相機具有巨大的優勢,不過需要注意的是,事件相機無法提取出距離資訊,需要鐳射雷達配合判斷目標距離。
或許會有人感到疑惑:事件相機這麼好,為什麼沒有大量應用在自動駕駛領域呢?
實際上,相機獲取資訊僅僅是第一步,後續事件相機資訊的處理則是更為關鍵的一環。
如下圖所示,傳統相機的輸出是一幀幀的靜止圖片,而事件相機則是一個個事件(Event)流。
一般來說,目前的神經網路都專注於如何提取每幀靜止圖片中的行人、汽車等目標,如YOLO,resnet等演算法。針對基於時間戳的事件流,目前尚無有效的演算法進行目標識別。
而事件流處理演算法的缺失,與當前的神經網路結構是分不開的。
當前主流的神經網路被稱為第二代人工神經網路,以精確的浮點運算為基礎,缺失了在自然界中最重要的一個因素:時間。對於神經網路而言,輸出的結果會和輸入一一對應,任何時候輸入相同的圖片,神經網路都會輸出一樣的結果。
然而真實的大腦,是以這種浮點運算為基礎的嗎?顯然不是,真實的大腦是以脈衝為基礎的,以脈衝傳遞和處理資訊。下面的影片簡單講解了脈衝神經元的工作機理。
這種以脈衝傳遞為基礎的神經網路是脈衝神經網路(spiking neural network,SNN),被譽為第三代人工神經網路。基於脈衝神經網路結構設計的晶片也被稱為類腦晶片。
從上面影片中可以看出,脈衝發生的時刻攜帶著重要資訊,脈衝神經網路天然具備對時序資訊處理的能力,這與事件相機基於時間戳的事件流輸出十分吻合。
此外,脈衝神經網路還具有事件驅動、非同步運算、極低功耗等特性。
1)事件驅動。在我們的大腦中,同一時刻大約有90%以上的神經元都是沉默的。也就是說,當沒有事件輸入的時候神經元是不活動的。這一特點也使得事件相機的事件流的輸出與SNN十分契合,同時功耗也極大降低。
2)非同步運算。脈衝神經網路不存在“主頻”的概念。傳統的計算機都需要一個時鐘,以確保所有的操作都在時間步上進行,這個時鐘的頻率被稱為主頻。目前主流的計算機主頻都達到每秒1GHz以上。然而,以IBM的神經態硬體TrueNorth為例,100Hz左右的脈衝發放率即可完成影象識別、目標檢測等任務。當前通用的計算機基本是馮·諾依曼結構,這種結構下,隨著CPU的運算速度遠遠超過記憶體的存取速度,已然形成難以逾越的計算瓶頸。然而,脈衝神經網路所有的記憶體和運算都體現在神經元的非同步脈衝之中,有很大希望突破目前計算機運算能力瓶頸。
3)極低功耗。在2016年著名的人機圍棋大戰中,Google公司的AlphaGo系統每局圍棋博弈的平均耗電費用高達3000美元。而作為脈衝神經網路架構的人腦,功率僅僅為20W左右。此前,有學者將目標檢測中的經典演算法YOLO進行脈衝化,在完成相同任務的情況下,功耗降低了280倍左右,同時速度提高了2.3到4倍。
總的來說,事件相機和脈衝神經網路的結合,正如人類用眼睛和大腦觀察四周:自動忽略周圍靜止的事物,對突然出現的運動物體予以重點關注和運算。
當前學術界已經掀起了對脈衝神經網路研究的熱潮,但由於神經態硬體的發展正處於起步階段,並且人們對於大腦的工作機理認識還不夠全面,目前尚無基於脈衝神經網路在商業上的應用。
隨著人們對大腦認識的深入,以及國外的TrueNorth、SpiNNaker、Loihi和國內清華的天機芯(Tianjic)和浙大的達爾文等類腦晶片的研發。
我們也期待,事件相機與脈衝神經網路的結合能夠給自動駕駛行業帶來新的突破。
參考文獻:
https://mp.weixin.qq.com/s/9DSaLUuIIndV1s71VKDRRA
https://mp.weixin.qq.com/s/iEBPf4VZYUv-hYLnYdJcYg
桑永勝,李仁昊,李耀仟,王薔薇,毛耀.神經形態視覺感測器及其應用研究[J].物聯網學報,2019,3(04):63-71.
Kim S , Park S , Na B , et al. Spiking-YOLO: Spiking Neural Network for Energy-Efficient Object Detection[J]. Proceedings of the AAAI Conference on Artificial Intelligence, 2020, 34(7):11270-11277.
https://www.bilibili.com/video/BV1eE41167AX
https://www.bilibili.com/video/BV1EK4y1K71C