怎麼看待近兩年很流行的event-based camera?能否在未來成為主流的slam感測器?

關注到近年幾大machine vision的研究組都在event based camera上發了不少文章, 其中不乏CVPR這樣的頂會, 也獲得了高通等公司的大力關注.

作者提到這種相機幀率高, 功耗低, 非常適合visual SLAM的需求. 但需要針對它設計全新的圖像演算法, 請問是否有人比較了解這種感測器, 能否科普一下? 或者說說對這種感測器前景的展望? 謝謝


Event-based Camera 中比較普遍的一類叫做Dynamic Vision Sensor(DVS)。對此可以去看這篇文章:"A 128x128 120 dB 15us Latency Asynchronous Temporal Contrast Vision Sensor"。這篇文章主要是從器件的設計方法與性能方面進行介紹,其中較為核心的幾個點大致如下:

1. 對於單個像素點,只有接收的光強產生變化時,該像素點才會輸出。比如亮度增加並超過的一個閾值,那麼對應像素點將輸出一個亮度增加的事件;

2. 實際上,感測器對亮度變化的響應不是線性的,而是對數的;

3. 數據表示方式是Address-Event Representation(AER),也就是每一個數據都是由事件的地址(對應像素的位置),以及事件的性質(變亮還是變暗)等組成。

所以與傳統的攝像頭相比較,DVS有很大的不同,具體表現在以下幾個方面:

1. 沒有「幀率」的概念,如果說傳統的攝像頭是等時間間距採樣的,那麼DVS是等亮度變化值採樣的,因此可以捕捉更快的動作,對於非常迅速的亮度變化十分敏感;

2. 對數響應使DVS動態範圍很高;

3. 無法獲得單個像素點的亮度絕對值;

4. 減少了數據冗餘,極大地減小了傳輸帶寬;

5. 由於單個像素點的電路十分複雜,DVS的空間解析度還很低。

許多DVS的應用都是圍繞這些特性展開的,比如Tracking、Motion Detection、SLAM、Optic Flow等等,可以參考「A Review of Bioinspired Vision Sensors
and Their Applications」。有的需要雙目,有的需要結合普通相機。

題外話:

Event-based Camera 最初是神經形態學工程(Neuromorphic Engineering)的一個產物,也就是利用VLSI去模擬、實現人和其他動物的大腦中的某些神經元構造。關於對視覺神經系統的研究都表明人的視覺工作方式與傳統相機有很大的不同,其中一項就是視覺系統有Event-driven因素。DVS就是這樣一種實現,圖像通過類視網膜的電路,使用脈衝(事件)編碼的方式。

本人畢業設計選題剛好是與DVS相關的,主要考慮的是如何設計一種處理脈衝的神經計算模型,由於對VLSI不熟悉,因此對於DVS的工作機制還不是特別了解。

神經形態學工程已經有很長時間的研究了,不過目前還有一些問題,使得類似DVS的裝置不能馬上投入使用,一是造價昂貴,一個小小的DVS,價格在數萬人民幣不等,而且生產產家很少,在國內幾乎無法買到;二是空間解析度太低,限制了應用的性能。

CVPR等會議上Event-based Camera相關文章我還不是很了解,希望有人能繼續補充。


首先什麼叫很流行。大家都很喜歡,也很關注非傳統感測器,如果新的感測器原理經過研究,發現有很大的優勢,那首先研究的人就會佔據很好的位置。但這個還不能算流行。

比如你說的CVPR文章是這篇吧:「Simultaneous Optical Flow and Intensity Estimation From an Event Camera」?今年的頂會文章,還在研究視覺問題的最底層optical flow,而且intensity不能直接獲取,要估計,說明什麼,一個是這個領域的研究還很淺,二是可能在視覺上缺乏深入研究的潛力。視覺現在主流,拿到一個靜態的圖像做高層分析,場景理解、語義,往AI的方向結合,這個感測器的研究套路跟高層研究路線接不上,這是一個大問題。

我去年去過兩個機器人頂會,都有event camera的paper在講,還有workshop,關注的人也很多。我一開始也覺得這種感測器思路很對胃口,從傳統的固定幀率採樣,變成記錄脈衝,時間精度特別高。我本科弄過無人車的odometry,在嵌入式上讀取一個encoder,我也是用一個改進,從固定時間採樣,到記錄硬體中斷時間。這種改動態範圍的思路並不是很複雜。但是想弄一個來玩,卻發現這個感測器還是很貴,玩不起。

那麼這個感測器有什麼優勢吧。就是幀率高(延遲低),功耗低。你看見高通支持這個,一個是因為高通主業是搞晶元感測器,他開發一個這個很快,而且他也希望開拓這種市場;第二這種感測器目前研究出來,發現對無人機應用很好,無人機飛行控制定位,正需要這種延遲低功耗低的系統,高通有一個部門做無人機的。

但是這種感測器還沒發掘出什麼革命性的優勢。比高幀率那就往信號處理的領域走了,都是合成孔徑雷達MHz級採樣率玩剩下的,但是它的數據在spatial上就很難看很難弄了。再說現在VSLAM,無人車一概用激光,無人機用傳統攝像頭,都已經在生產環境驗證清楚了,從理論到實踐都基本解決問題滿足需求,往高層視覺問題走了。現有的技術已經「足夠好」,這個新東西要取而代之就一定要有革命性的優勢。

沒有革命性的優勢,又跟現有的研究路線方針不匹配,找不到殺手應用,就不容易有硬體廠商跟進。沒有硬體廠商大規模生產此類感測器,這方面的研究也就不容易擴大。不容易形成一個正循環。比如RGB-D方面的研究變得很火,有很大原因是微軟賣了太多Kinect,這樣做研究很便宜,研究做出來,也可以立刻廣大變現成應用。

不過我覺得這個思路仍然是很有價值的,這方面做一些基礎研究。現有的固定幀率攝像頭系統完全可以改成,直接把在器件層面把感光元件接到一個RNN上,把continuous-time的數據做底層視覺處理,encode成某種形式壓縮傳出來,然後可以傳給高層繼續處理,或者decode/discretize成普通圖像。我們已經被30Hz的傳統攝像頭荼毒太久。

我並沒有專門研究event camera,所以非常希望有相關人士提出樂觀見解。


我畢業設計做的就是event-based visual odometry。之前答案也說了event-based camera的原理跟成像特性,這裡不贅述了。我就從VO/vSLAM的角度說一下。

Visual Odometry(VO)相比vSLAM,沒有loop detection而且mapping也不是重點,算是vSLAM的一部分。VO的原理是通過求相鄰圖片的差別求相機的姿態轉換,然後累積求出現有的姿態。VO有兩種approach,direct approach和feature-based approach。前者minimize photometric error來算。後者一般是sparse的,先detect feature 然後match/track feature, 再minimize reprojection error。由於處理器的限制,大部分演算法都用後者。

之前答案提到events一般都會大量出現在明暗分界線很明顯的地方。而feature-based approach 裡面用到的feature (points, line, blob, etc) 一般都是在亮暗分明的地方。Event-based camera 沒有得到的那些明暗差別不大的點(event),對於feature-based approach來說並沒有什麼卵用。所以說,其實這個新相機自動幫我們過濾掉了一些無用信息,幫助我們減少了計算量。我認為這也是做vSLAM的人想用它的一大原因。

但它相比傳統相機麻煩的地方在於每個點(event)的時間都不一樣。而6DOF pose estimation在傳統方法兩幀之間至少要有5個matched points。所以為了要至少5個點同時出現在一個時間裡,現在的做法是選一個時間段(比如20毫秒之類),假設這些event都是在同一時間出現的。

當然event-based camera還有很多其他適合無人機的優點,比如在光線很暗的時候還是有feature。移動很快的時候不像傳統相機一樣有motion blur等等。

PS:你是想做這方面的研究嗎?如果要用第二代的話,買之前發郵件問問inilabs關於發表文章的事。不然寫完論文無法發表就囧了。

PPS: Feature Detection and Tracking with the
Dynamic and Active-pixel Vision Sensor (DAVIS) (http://rpg.ifi.uzh.ch/docs/EBCCSP16_Tedaldi.pdf) 這篇文章說從frame里detect feature然後在event 里track feature 行不通,以後要研究從events裡面直接detect feature。


並不是做SLAM相關行當的,但恰巧花了幾個月打醬油玩了一下Event-based Camera,說一下我的感受吧。

技術細節方面@何舜成 的答案總結得很好。我再啰嗦強調一點:快。我做過測試,event較多的場景中一般運動下,兩個events之間平均時間差是0.1us左右;在一般速度運動中如果想要截取一幀單獨的圖像進行處理,可以達到1000fps。若是高速運動可能會更快,這個我沒有做過測試。

此外,雖然event-based camera的輸出event只有高低電平之分,無法分辨intensity,但是在我的實際測試中,不同強度的變化激發的event數量是不同的。舉例來說,當相機運動時,若視野內存在一條明暗邊界,則邊界會激發一條同形狀的event點群,因為邊界兩邊存在明暗對比;然而,同樣的形狀,明暗對比越大的邊界在同樣情況下激發的event數量更多。這個特點也可以用來得到粗糙的強度信息。

演算法方面,許多傳統的圖像方面的演算法基本都能用的。從最入門的說,可以截取一個時間段內的event寫成frame, 當成普通圖像處理。但是由於數據本身簡化了,以及高速運算的需求,一些函數有不少簡化、優化空間。若是繼續深入,想根據event sensor自身的特點設計新的演算法,來獲得更多的信息量,也是有不少可能性的。

我認為event-based camera還是有很大的發展潛力的。主要基於以下幾個看法:

1. Visual odometry。Event-based camera不能等同於傳統相機,因此在一些傳統視覺應用上,比如語義理解上,並無優勢。然而它的長處應該主要在於運動檢測,尤其是高速條件下。在這方面基於Event-based camera數據的高速和高效,它的作用可能很難替代。

2. Sensor fusion. 我玩的相機是2代的event camera: Dynamic and Active-pixel Vision Sensor。簡單地說,這個版本的sensor在高速event的基礎上同時集成了普通相機(黑白,30fps左右,dynamic range很不佳)、IMU。如果能將普通的亮度圖像和event結合在一起,潛力還是很大的。

3. 其它方面應用。在許多需要光學感測的領域,比如檢測、醫療等領域,對圖像信號的質量要求並不高,但是對速度、適應性(是否在低光照環境或high dynamic range環境下依然能獲得穩定信號)要求較高。對於他們來說,event-based camera所具有的特點非常有吸引力。

然而event-based camera也面臨著以下挑戰:

1. 硬體限制。這個幾乎是決定它生死攸關的問題了。現有版本的event camera噪音挺大的,加上本身解析度低,信號質量其實非常差。Sensor本身體積也較大,限制了許多應用。以及價格非常高。這些問題主要因為現有的版本基本還只是成熟的實驗室版本,成本主要未必在硬體,而是在開發成本和小規模生產的成本。如果能將這個產品在工程上進行改良,大規模生產,這裡的許多問題可以克服,也更有利於event sensor的普及;反之,如果沒有企業的介入進行改良,現在的這個實驗版本還是很難被大規模地開發,前景也很受限。

2. 適用性窄。這個觀點是一個比較年長的教授提出的,他對於event camera並不熱衷。他認為,現在技術發展非常快,各種硬體更新換代非常快,有可能隨著技術的發展,幾年後或者十幾二十年後,傳統的相機能克服許多現在的限制,比如成像速度,那時event camera的優勢將不復存在。這樣在event camera上做的大量開發工作都不再有意義。歷史上也曾經有各種專用的視覺感測器存在過,但都隨著技術整體的發展而成了曇花一現。


推薦閱讀:

為什麼VR遊戲玩完後會頭暈、噁心?
光電感測器可以多敏感?
國內感測器行業和國外差距在哪裡?
如何評價 RED ONE 系列攝影機?看起來似乎超越對手的強大感光感測器算是黑科技嗎?
自動駕駛汽車上面有哪些感測器?

TAG:機器人 | 感測器 | 計算機視覺 | 同時定位和地圖構建SLAM |