事件相機(Event Camera)及相關研究簡介——新一代相機?新的計算機視覺領域?

事件相機(Event Camera)及相關研究簡介

一、概述

在這裏插入圖片描述
事件相機(Event-based camera)是近幾年出現的新型相機,它完全不同於傳統相機的數據回傳格式,而是一種新型的,異步地(asynchronously),所謂事件(event)。事件相機主要有兩種,DVS(Dynamic Vision Sensor)以及DAVIS(Dynamic and Active Pixel Vision Sensor)。DVS是普通的事件相機,而DAVIS就是在回傳事件的同時還可以回傳灰度圖。
有人把事件相機稱爲下一代相機,事實是這樣嗎?我只能說有待考驗。目前爲止我們的確發現了事件相機優於傳統相機的地方,但仍有很多地方事件相機未能做到。其實,與其說未能做到,我更願意說是還沒有開發到。現在研究所謂Event-based Vision的人越來越多,相信它的優點將被進一步發掘。今天我寫這一篇博文,用意便是將這樣一個新興事物介紹給更多的人,希望在不久的將來我們能夠一起去發現它在視覺方面的驚人之處。
詳細瞭解可以前往Gallego以及他的同事的一篇綜述:Event-based Vision:A Survey
更多的資源可以前往收錄事件視覺領域論文的github:https://github.com/uzh-rpg/event-based_vision_resources
事件相機官網鏈接:https://inivation.com/
在這裏插入圖片描述

二、事件

我們把事件相機稱爲一種bio-inspired sensor,研究它的領域稱爲bio-inspired vision,即“仿生的”。製作事件相機的人的靈感就是來自於仿生。在人的眼睛中,會有一部分視覺細胞對動態的東西特別敏感。設想一下,在你面前有一個靜態的房間,你去一點一點地觀察它,其實很慢(就像如果讓你去找到房間裏一個角落放的一本書)。但是,如果突然有一個東西動了起來,我們是視線會立刻被吸引過去。傳統的相機呈現在我們眼前的便正是前者,一個靜止的空間。而事件相機制作的目的就是:敏感地捕捉到運動的物體。
在介紹事件之前,我們先來看看傳統RGB相機。在傳統的視覺領域,相機傳回的信息是同步的,所謂同步,就是在某一時刻t,相機會進行曝光,把這一時刻所有的像素填在一個矩陣裏回傳,一張照片就誕生了。一張照片上所有的像素都對應着同一時刻。至於視頻,不過是很多幀的圖片,相鄰圖片間的時間間隔可大可小,這便是我們常說的幀率(frame rate),也稱爲時延(time latency)。這就涉及到了事件相機的優越之處,關於事件相機的優點我們後文再說。
接下來我們說事件。事件相機回傳的信息我們稱爲事件(Event),非常隨便的命名(如果是我做出來的我就用我名字命名)。一個事件所具有的格式是一個向量,如下:
ϵ=(xi,yi,ti,pi) \epsilon = (x_i,y_i,t_i,p_i)
事件相機便是這樣異步地回傳如上所示的事件。
何爲異步?就是不同於傳統相機同時地回傳所有像素值,事件相機不同事件回傳的時刻是不同的,可以看到上述事件中有一個值tit_i,便是這個事件發生的時間。
事件相機的工作機制是,當某個像素所處位置的亮度值發生變化時,相機就會回傳一個上述格式的事件,其中前兩項爲事件的像素座標,第三項爲事件發生的時間戳,最後一項取值爲極性(polarity)0、1,(或者-1、1)代表亮度是由低到高還是由高到低,也常被稱作Positive or Negtive Event,又被稱作On or Off Event。
就這樣,在整個相機視野內,只要有一個像素值變化,就會回傳一個事件,這些所有的事件都是異步發生的(再小的時間間隔也不可能完全同時),所以事件的時間戳均不相同,由於回傳很簡單,所以和傳統相機相比,它具有低時延的特性,可以捕獲很短時間間隔內的像素變化。

事件的觸發是由複雜電路所確保的,在研究時,通常將其建模如下(看不懂可以跳過,問題不大):
設某一個特徵點在某視頻中對應的軌跡爲u(t)\vec u(t)其中u=(u,v)\vec u=(u,v)也即該點座標隨時間在變化。
假設圖片光強值爲I(u(t),t)I(\vec u(t),t),即一個傳統視頻。
在極短時間內,類似光流基本假設光度不變,在該點軌跡出的光度應該是不變的,由全微分公式可以得到如下方程:
dI~dt=<uI~,u˙>+I~t=0 \frac{d\tilde I}{dt}=<\nabla_u \tilde I,\dot u>+\frac{\partial \tilde I}{\partial t}=0
其中<,><·,·>表示點乘,uI~=(I~u,I~v)T\nabla_u \tilde I=(\frac{\partial \tilde I}{\partial u},\frac{\partial \tilde I}{\partial v})^T是光度值隨軌跡變化的梯度,u˙=(u˙,v˙)T\dot {\vec u}=(\dot u,\dot v)^T即爲該點的像素運動速度。
DVS中考慮對數域的光度值,即:
I~=log(I) \tilde I=log(I)
故光度值變化爲:
Δlog(I)log(I)tΔt=<ulog(I),u˙Δt> \Delta log(I)\approx\frac{\partial log(I)}{\partial t}\Delta t=-<\nabla_u log(I),\dot u\Delta t>
當光度變化大於某閾值C時,事件觸發:
Δlog(I)<ulog(I),u˙Δt>C |\Delta log(I)|\approx|<\nabla_u log(I),\dot u\Delta t>|\geq C
Δlog(I)C\Delta log(I)\geq C,觸發正事件(p=+1),當Δlog(I)C\Delta log(I)\leq -C時,觸發負事件(p=-1)。
下面看一下事件長什麼樣:
在這裏插入圖片描述
(a)圖是畫在三維座標系裏的事件,將(a)圖每個像素事件累加,壓成一張圖,便是(b)圖(紅色和藍色代表正負事件)
再來幾張圖:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
(部分圖片來自網絡和他人博客,侵刪)

三、事件相機的優點

當你看event相關的論文時,經常遇到的便是low time latency and high dynamic range,即低時延,高動態範圍,這大概就是事件相機的主要優點,在這裏我再列舉一下,可能不全,大家可以在使用中慢慢發現。
1、高動態範圍,低時延,相鄰Event之間的時間可以小於1微秒,這個前面也說過。
2、由於低時延,在拍攝高速物體時傳統相機會發生模糊(由於會有一段曝光時間),而事件相機幾乎不會。如下圖介紹:
在拍攝一個旋轉的圓盤時,如果轉速較慢:
在這裏插入圖片描述
而如果轉速較快:
在這裏插入圖片描述
可以看到轉速較快時傳統相機發生了模糊,而事件依然完整地記錄運動狀態。
3、由於事件相機的特質,在光強較強或較弱的環境下(高曝光和低曝光),傳統相機均會“失明”,但像素變化仍然存在,所以事件相機仍能看清眼前的東西。這就能引申到很多方面,比如自動駕駛,在黑夜裏行走,可能傳統相機已經幾乎看不到前方黑暗中的人,但事件相機看得一清二楚。

四、未來,新一代相機?

事件相機確實有優於傳統相機的能力,但也有其不足,如數據難以處理,只有輪廓信息缺乏光強信息。在時間域上取值是連續的但在值域的取值是離散的,這一點也有別於常見的數字信號。這樣的數據在處理時已經完全不能用傳統RGB相機的方法處理了。但是它仍能夠完成傳統相機所能完成的任務,如光流估計、特徵提取、三維重建、模式識別、SLAM等等等等。
我想在未來我們一定是將兩種相機各取其長,我相信在我們的手裏它一定能發揮它最大的價值。也希望能夠有更多的人投入到這個新興的領域來。

之後我將繼續更近對事件相機的介紹,並整理出一些論文筆記。有興趣的朋友可以一起討論呀!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章