閆昌達(dá),王霞,*,左一凡,李磊磊,陳家斌
(1.北京理工大學(xué) 光電學(xué)院,北京100081; 2.北京理工大學(xué) 自動化學(xué)院,北京100081)
事件相機(jī)(Event Camera)是一種新興的生物視覺傳感器,傳統(tǒng)幀相機(jī)(Frame-based Camera)通過固定的曝光時間以一定幀率采集圖像,事件相機(jī)則通過檢測每一像素點(diǎn)的事件——亮度變化,在亮度變化超過設(shè)定閾值時異步輸出像素地址事件流數(shù)據(jù)。傳統(tǒng)幀相機(jī)受限于軟硬件條件,幀率一般為15~200 fps(fps為幀/s),在高速運(yùn)動的場景中會產(chǎn)生運(yùn)動模糊。與此同時,在高動態(tài)的工作場景下會產(chǎn)生過曝與欠曝的現(xiàn)象,丟失場景部分細(xì)節(jié)信息。事件相機(jī)則具有高時間分辨率、高動態(tài)范圍的特點(diǎn)[1],由于每一像素的異步輸出特性,沒有幀率的概念其響應(yīng)時間可達(dá)到微秒級別,由于其檢測光強(qiáng)對數(shù)的變化,其動態(tài)范圍可達(dá)140 dB[2]。
事件相機(jī)的特性使其吸引了很多領(lǐng)域研究人員的關(guān)注,比如在圖像信息處理方面,關(guān)注的是圖像中的“邊”“角”等紋理邊緣信息,傳統(tǒng)幀相機(jī)得到的圖像存在很多冗余信息,增加了計(jì)算量和對硬件水平的要求,事件相機(jī)可以直接輸出稀疏的運(yùn)動邊緣信息,簡化計(jì)算。此外,事件相機(jī)在視覺導(dǎo)航定位方向有應(yīng)用潛力,在實(shí)際應(yīng)用場景中,由于劇烈運(yùn)動、光照條件變化、平臺功耗限制等影響,傳統(tǒng)幀相機(jī)存在運(yùn)動模糊、過曝欠曝等限制[2],運(yùn)動劇烈時檢測的有效特征點(diǎn)減少,造成視覺信息不可靠[3],事件相機(jī)則可以彌補(bǔ)這些不足。事件相機(jī)可應(yīng)用于無人車、無人機(jī)、自主機(jī)器人以及增強(qiáng)現(xiàn)實(shí)(Augmented Reality,AR)和同時定位及地圖構(gòu)建[4-5](Simultaneous Localization and Mapping,SLAM)技術(shù),相比于傳統(tǒng)幀相機(jī)具有低延時、高動態(tài)、抗運(yùn)動模糊、低運(yùn)算量的特點(diǎn),可以提高導(dǎo)航系統(tǒng)的魯棒性[6]。
事件相機(jī)在實(shí)際應(yīng)用上還存在問題。一方面事件相機(jī)由于其本身結(jié)構(gòu)對環(huán)境亮度變化十分敏感,在輸出的異步事件流中包含大量噪聲干擾。噪聲可能來源于數(shù)字信號傳輸時的脈沖噪聲以及光電二極管所引起的高斯噪聲等,對于進(jìn)一步的應(yīng)用以及事件流可視化質(zhì)量造成很大影響[7]。提高事件相機(jī)檢測亮度變化的閾值有助于降低噪聲,但是降低了對于物體運(yùn)動引起的亮度變化檢測的靈敏度,造成信息丟失。所以,對于事件流進(jìn)行降噪處理是非常重要的預(yù)處理環(huán)節(jié)。
蘇黎世聯(lián)邦理工學(xué)院的Delbruck教授團(tuán)隊(duì),提出了一種根據(jù)臨近事件發(fā)生時間的噪聲過濾方法[8],通過在所發(fā)生事件的空間鄰域內(nèi)記錄事件時間,并與鄰域內(nèi)發(fā)生的下一事件的時間進(jìn)行比較,若二者的時間差大于所設(shè)定的時間閾值,則將其作為噪聲過濾并刷新當(dāng)前事件時間。該算法體現(xiàn)了事件流的時間和空間連續(xù)性,對于背景的噪聲具有較好的處理效果,但是其判斷相鄰事件時間間隔的方法可能在物體運(yùn)動剛發(fā)生時造成有效事件被過濾的情況。中國科學(xué)院長春光學(xué)精密機(jī)械與物理研究所的呂恒毅等提出了一種基于事件密度的噪聲處理方法[9]。首先,利用基于當(dāng)前事件的一個時空鄰域建立事件密度矩陣,通過計(jì)算矩陣的L1范數(shù)并與設(shè)定的閾值進(jìn)行比較進(jìn)行粗濾波。然后,利用粗濾波后的事件再次建立事件密度矩陣進(jìn)行精濾波,并判斷除事件像素位置外其余元素是否全部為0,若全部為0則判斷為噪聲進(jìn)行濾除。該算法可以對同一像素點(diǎn)連續(xù)出現(xiàn)的噪聲進(jìn)行處理,但是一方面其時空鄰域的選取以及兩步濾波的方式,可能造成在運(yùn)動起始或緩慢時大量有效事件被過濾。另一方面,異步事件流信息形式難以處理,且單一事件包含的信息過少,處理時需要集合事件進(jìn)行處理,同時事件流信息不直觀,不利于人眼觀察,所以需要進(jìn)行可視化處理以推進(jìn)下一步工作。基于事件相機(jī)可視化的相關(guān)工作可以簡要分為2類:①針對事件流本身,通過固定時間窗口等方式獲得事件“幀”,便于進(jìn)行進(jìn)一步觀測和應(yīng)用處理;②對事件流信息進(jìn)行圖像重建,得到估計(jì)的強(qiáng)度圖像達(dá)到可視化的效果。
南洋理工大學(xué)陳守順等提出了一種事件流可視化方案,實(shí)現(xiàn)高低幀率調(diào)節(jié),并在FPGA平臺驗(yàn)證其有效性[10]。但該方法在高幀率時降低了事件“幀”包含的信息量,在平緩運(yùn)動時得到的信息過少不利于進(jìn)一步處理。西安電子科技大學(xué)的謝雪梅教授團(tuán)隊(duì)進(jìn)行了改進(jìn),利用重疊累積的方式,可以在保證高速的情況下也保證事件“幀”信息的豐富[7]。但是,兩“幀”之間包含的重復(fù)事件在進(jìn)一步處理時可能會造成信息冗余。集合事件得到事件“幀”的方法,可以作為輸入,如特征檢測、位姿估計(jì)、神經(jīng)網(wǎng)絡(luò)等。
格拉茨科技大學(xué)的Reinbacher等提出了一個由事件流進(jìn)行實(shí)時灰度強(qiáng)度圖像重建,并且在重建過程中考慮相機(jī)噪聲對于亮度的影響的變分模型[11]。帝國理工學(xué)院的Davison教授團(tuán)隊(duì)提出一種從事件流估計(jì)強(qiáng)度圖像和光流的滑動窗口變分優(yōu)化算法,在快速運(yùn)動和高動態(tài)范圍場景取得了較好的重建結(jié)果,在傳統(tǒng)幀相機(jī)發(fā)生運(yùn)動模糊的情況下依然可以獲得運(yùn)動物體邊緣輪廓[12]。澳大利亞國立大學(xué)的Mahony教授團(tuán)隊(duì)提出了一種異步濾波器將事件流和強(qiáng)度圖像融合為高時間分辨率高動態(tài)范圍的圖像[13]。由事件流估計(jì)恢復(fù)強(qiáng)度圖像的方式主要為人眼觀察服務(wù),或者以重建運(yùn)動模糊、高動態(tài)范圍的圖像為目標(biāo),并不是為進(jìn)一步的實(shí)際任務(wù)處理服務(wù)。
本文研究針對事件流信息的降噪處理以及前一種事件流可視化的方法,通過形成事件“幀”的形式可進(jìn)行進(jìn)一步基于事件相機(jī)的相關(guān)研究。利用物體邊緣運(yùn)動引起的事件流所具有的時間和空間連續(xù)性,對事件流進(jìn)行噪聲處理,本文選取的時空鄰域在運(yùn)動起始和平緩時保留更多有效事件信息。對于處理后的有效事件利用事件數(shù)量以及時間閾值雙限制的方式累積事件形成事件“幀”,在運(yùn)動平緩時可以保證幀率,體現(xiàn)事件相機(jī)低延時特性,運(yùn)動劇烈時可以平均事件“幀”包含的事件數(shù)量,達(dá)到可視化及利于進(jìn)一步應(yīng)用目的。
事件相機(jī)的最早形式為動態(tài)視覺傳感器[13](Dynamic Vision Sensor,DVS),其 像 素 結(jié) 構(gòu) 如圖1(a)所示[14]。圖中:I為光電流;Vp為感光器輸出電壓;A=C1/C2為差分電路增益;V0為差分電路輸出電壓。每個像素獨(dú)立通過檢測光強(qiáng)對數(shù)的變化,如果變化的量超過設(shè)定的閾值,則根據(jù)其變化的情況輸出“變亮”或“變暗”事件同時記錄新的光強(qiáng)對數(shù)。DVS相機(jī)僅輸出單純的異步事件流信息,在一定程度上可以滿足計(jì)算的需求但是不直觀,不利于人眼觀察。
出于對DVS相機(jī)的改進(jìn),出現(xiàn)了結(jié)合事件和強(qiáng)度圖像的基于異步時間的圖像傳感器[14](Asynchronous Time based Image Sensor,ATIS),以及可以輸出事件流也可以輸出強(qiáng)度圖像的動態(tài)與主動式像素視覺傳感器[15](Dynamic and Active pixel Vision Sensor,DAVIS),其二者的像素結(jié)構(gòu)如圖1(b)和圖1(c)所示。圖1(b)[15]中:Iph為光電流;Vdiff為差分電路輸出電壓。圖1(c)[16]中:Vpd為光電二極管PD電壓;Vpr為感光器輸出電壓;Ipr為偏置電流;Vdr為MN1下方電壓節(jié)點(diǎn);Vaps為APS電壓。ATIS相機(jī)通過結(jié)合2個子像素的方法,ATIS相機(jī)的像素中1個子像素為DVS的像素結(jié)構(gòu),在其受到光強(qiáng)變化產(chǎn)生事件信號時激發(fā)另一子像素進(jìn)行曝光成像,可以得到亮度變化超過閾值部分像素的強(qiáng)度圖像。

圖1 三種事件相機(jī)的像素結(jié)構(gòu)Fig.1 Pixel structure of three event cameras

圖2 傳統(tǒng)幀相機(jī)和事件相機(jī)輸出對比Fig.2 Comparison of frame-based camera and event camera output
DAVIS相機(jī)則將DVS像素和傳統(tǒng)幀相機(jī)像素電路結(jié)合,利用同一個光電二極管作為APS像素和DVS像素的輸入,可以同時輸出異步的事件流信息以及同步的全局快門圖像。ATIS相機(jī)和DAVIS相機(jī)一定程度上解決了事件相機(jī)觀察不直觀的問題,但是對于輸出的事件流依然存在無法觀察的問題。事件流數(shù)據(jù)包含事件發(fā)生的像素位置、發(fā)生時間及事件極性,伴隨亮度變化產(chǎn)生,亮度不變則無數(shù)據(jù),各像素間具有異步特性。而像素感受的亮度變化,一般由場景中運(yùn)動物體邊緣與背景的差異造成,如圖2所示,具有空間稀疏性,所以事件流反映了場景的運(yùn)動狀態(tài),在劇烈運(yùn)動時會產(chǎn)生密集的大量事件,在平緩運(yùn)動時產(chǎn)生較少的事件輸出。所以利用固定時間窗口的方式,進(jìn)行事件累積得到的事件“幀”如圖3(a)和圖3(b)所示,可以通過改變幀率的方式整體調(diào)整每一幀的事件量,但是不能改善運(yùn)動狀態(tài)差異導(dǎo)致的幀間信息量差異。本文為保證事件流可視化的事件“幀”既包含足夠信息進(jìn)行進(jìn)一步處理,又盡量保證高時間分辨率特性,利用事件信息數(shù)量及時間閾值雙限制的方式累積事件得到事件“幀”,如圖3(d)所示。在形成事件“幀”時,發(fā)現(xiàn)事件流包含大量噪聲事件,在進(jìn)一步處理過程中噪聲事件會造成干擾,所以在保證有效事件信息數(shù)量的情況下需進(jìn)行噪聲處理,以得到適合進(jìn)一步處理任務(wù)的事件“幀”。

圖3 事件流可視化方法對比Fig.3 Comparison of event stream visualization methods
本文假設(shè)事件相機(jī)零延時,所得到的事件流即邊緣運(yùn)動信息,環(huán)境中的運(yùn)動具有時間和空間連續(xù)性,所以其引發(fā)的事件流也具有時間和空間的連續(xù)性,而噪聲則具有隨機(jī)性,利用這種差異對事件流進(jìn)行噪聲處理,并對得到的有效事件進(jìn)行可視化,可為進(jìn)一步的處理提供包含足夠數(shù)量的有效事件信息同時也盡量保持事件相機(jī)低延時的特點(diǎn),實(shí)驗(yàn)結(jié)果證明了本文可視化及降噪算法的有效性。
事件相機(jī)輸出的異步事件流代表像素點(diǎn)亮度變化超出閾值,單個事件可以表示為eventi=(xi,yi,ti,pi),i為序號,(x,y)為事件發(fā)生的像素位置坐標(biāo),t為事件發(fā)生時間,p∈{0,1}表示事件極性(0代表亮度變暗,1代表亮度變亮)。假設(shè)事件相機(jī)零延時且無噪聲干擾,則t時刻物體邊緣運(yùn)動所引起的事件集合可以表示為

式中:N為物體邊緣在事件相機(jī)成像區(qū)域中所占的像素點(diǎn)數(shù)。假設(shè)噪聲noise表示為式(2),j為序號,Nnoise為噪聲事件點(diǎn)像素?cái)?shù),則實(shí)際事件流集合event′表示為式(3)。

實(shí)際處理中,事件相機(jī)也具有一定延時且不同邊緣位置與背景亮度變化差異不一定一致,同時運(yùn)動的物體邊緣并非反應(yīng)在事件流的絕對同一時刻。所以,一般需要一定的時間窗口進(jìn)行事件累積。
根據(jù)假設(shè)物體邊緣運(yùn)動所引起的事件流具有時間和空間連續(xù)性,而噪聲具有隨機(jī)性,所以通過對某時刻的所有事件進(jìn)行判斷其前后時刻的相鄰空間是否有相關(guān)事件發(fā)生即可判斷此事件是否為噪聲。考慮實(shí)際事件相機(jī)存在低延時將前后時刻擴(kuò)展為時間窗口長度為Δt的(t-Δt,t+Δt)時間窗口,將事件eventi需要計(jì)算的去心鄰域表示為式(4),設(shè)L為空間窗口長度,則事件eventi是否為噪聲可以通過式(5)判斷。

通過噪聲處理將得到的噪聲事件eventno去除,得到有效事件eventef進(jìn)行下一步累積事件的可視化處理。
將噪聲處理后得到的有效事件在一定時間窗口內(nèi)進(jìn)行事件累積,形成事件“幀”是最簡單的可視化方法之一,但是場景環(huán)境運(yùn)動狀態(tài)會導(dǎo)致單位時間得到的事件信息量不均勻,進(jìn)而導(dǎo)致運(yùn)動平緩時所形成的事件“幀”包含事件信息過少,運(yùn)動劇烈時所形成的事件“幀”包含事件信息過多,均不利于進(jìn)一步應(yīng)用處理。通過重疊累積事件的方式可以提高平緩運(yùn)動時的信息量且保證高幀率,但是劇烈運(yùn)動時依然會造成事件過多,且重復(fù)累積的事件在進(jìn)一步處理中產(chǎn)生冗余。
若為保證事件“幀”包含信息量一致采用累積等量事件的方式,可以保證在運(yùn)動平緩和劇烈時均得到包含更利于進(jìn)一步處理的事件信息量的事件“幀”。但是,在運(yùn)動平緩時累積一幀所需時間較長,導(dǎo)致事件“幀”包含大量“過時”信息。

噪聲處理及可視化算法如下:


1.初始化起始時間t0,累計(jì)事件數(shù)量n=0。
2.輸入事件eventi,確定其去心鄰域U·(eventi,L,Δt)。
3.根據(jù)式(5)判斷事件點(diǎn)為噪聲點(diǎn)還是有效事件點(diǎn),若為噪聲點(diǎn)返回步驟2,若為有效點(diǎn)記錄eventefn,n+1。
4.判斷ti-t0>Tth,若成立執(zhí)行步驟6。
5.判斷n<Nth,若成立返回步驟2。

圖4 本文算法結(jié)構(gòu)示意圖Fig.4 Structure of proposed algorithm
為驗(yàn)證和分析事件流可視化及降噪效果,本文在真實(shí)事件數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)和測試。數(shù)據(jù)集由ETH Zurich的傳感器實(shí)驗(yàn)室利用DAVIS 240C型號的事件相機(jī)獲取,采用其中城市部分環(huán)境采集數(shù)據(jù)[17]。DAVIS 240C分辨率為240×180,動態(tài)范圍為120 dB,最小敏感度為11%,最小延時為12μs。
實(shí)驗(yàn)分別比較固定時間窗口、重疊累積、固定事件數(shù)量、時間和事件雙限制4種事件“幀”形成方法,并且進(jìn)行事件流降噪前后對比。如圖5~圖10所示。選取的場景1為運(yùn)動較平緩時刻,場景2為運(yùn)動較劇烈時刻。
由圖5(b)~圖5(d)、圖7(b)~圖7(d)可以看出,利用運(yùn)動邊緣引起的事件流的時間和空間的連續(xù)性,可以對背景處的噪聲進(jìn)行較好的處理,但是在物體邊緣的噪聲依然存在。圖5(c)中對于噪聲處理較好,但是由于場景1的運(yùn)動較為平緩,大量有效事件也被濾除,丟失大量場景物體邊緣信息。由表1、表2可以看出,運(yùn)動越平緩事件去除率越高,其中文獻(xiàn)[9]事件去除率最高,導(dǎo)致檢測事件數(shù)量嚴(yán)重降低,尤其在平緩運(yùn)動時損失過多物體邊緣信息,本文噪聲處理方法相比于文獻(xiàn)[9]的方法,在運(yùn)動起始或緩慢時可以保存更多細(xì)節(jié)邊緣事件信息,相比于文獻(xiàn)[8]的方法,噪聲處理中改變的時空鄰域可以獲得更多的事件點(diǎn),在運(yùn)動越平緩時效果越明顯。圖6、圖8展示了降噪處理后進(jìn)行角點(diǎn)檢測[18]的效果,可以看出,噪聲處理可以有效降低噪聲事件對角點(diǎn)檢測的干擾,當(dāng)運(yùn)動平緩時本文降噪方法保留更多的事件信息,可以提升有效角點(diǎn)檢測數(shù)量。
圖9、圖10中,圖(a)、(b)為固定時間窗口處理方式;圖(c)、(d)為文獻(xiàn)[7]的重疊累積處理方式;圖(e)、(f)為固定事件數(shù)量處理方式;圖(g)、(h)為雙重限制方法,XX/YY意義同上。由圖9、圖10對比可以看出,在平緩運(yùn)動狀態(tài)和劇烈運(yùn)動狀態(tài)下事件隨時間分布不均勻,圖9(a)、(b)和圖10(a)、(b)按照固定時間窗口的方式累積事件會造成事件“幀”包含信息量產(chǎn)生差異,運(yùn)動平緩時可能導(dǎo)致信息不足,運(yùn)動劇烈時可能造成物體邊緣模糊。利用重疊累積的方式,可以在保證與固定時間窗口相同事件信息量的情況下提高幀率,但是依然無法解決事件隨時間分布不均,導(dǎo)致事件“幀”包含信息過多或過少的問題。圖9(e)、(f)和圖10(e)、(f)按照事件數(shù)量進(jìn)行事件“幀”累積,可以保證均勻的信息量。但是,在運(yùn)動十分平緩時會造成一幀輸出時間過長同時包含大量“過時”事件,丟失了事件相機(jī)的低延時優(yōu)勢。本文方法如圖9(g)、(f)和圖10(g)、(h)所示,可以在運(yùn)動劇烈時保證事件“幀”信息相對均勻分布,在運(yùn)動平緩時按照時間輸出事件“幀”,保持了事件信息的低延時特性。

圖5 噪聲處理效果圖(場景1)Fig.5 Noise processing(Scene 1)

圖6 角點(diǎn)檢測效果圖(場景1)Fig.6 Corner detection(Scene 1)

圖7 噪聲處理效果圖(場景2)Fig.7 Noise processing(Scene 2)

圖8 角點(diǎn)檢測效果圖(場景2)Fig.8 Corner detection(Scene 2)

圖9 不同參數(shù)3種可視化方法對比(場景1)Fig.9 Comparison of three visualization methods with different parameters(Scene 1)
在進(jìn)行噪聲處理后,不同可視化方法處理得到的事件“幀”幀率以及平均包含事件數(shù)量,在噪聲處理后,平均包含事件數(shù)量以及事件數(shù)量方差可以一定程度反應(yīng)不論運(yùn)動劇烈或平緩,事件“幀”包含信息的均勻性,如表3和表4所示。可以看出,重疊累積的方式可以有效提高幀率,但是無法改善事件隨時間分布不均的問題,按照事件數(shù)量累積可以使事件“幀”的事件信息平均,但是在平緩運(yùn)動的情況下幀率過低,本文方法可以有效降低事件數(shù)量方差,提高事件“幀”信息的均勻性。

圖10 不同參數(shù)3種可視化方法對比(場景2)Fig.10 Comparison of three visualization methods with different parameters(Scene 2)

表1 噪聲處理后事件數(shù)量統(tǒng)計(jì)(場景1)Table 1 Counts of the number of events after noise processing(Scene 1)

表2 噪聲處理后事件數(shù)量統(tǒng)計(jì)(場景2)Table 2 Counts of the number of events after noise processing(Scene 2)

表4 事件“幀”幀率及事件方差統(tǒng)計(jì)(場景2)Table 4 Frame rate and variance of events number(Scene 2)
本文利用運(yùn)動邊緣引起的事件流具有時間和空間的連續(xù)性進(jìn)行噪聲處理,并利用事件數(shù)量和時間閾值雙重限制的方法進(jìn)行事件流可視化。本文通過對真實(shí)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)表明:
1)基于事件流時空連續(xù)性的噪聲處理方法可以降低事件噪聲,時空鄰域的選取在運(yùn)動起始和平緩時也可以保留更多事件信息。
2)事件數(shù)量和時間閾值雙限制的可視化方法可以為進(jìn)一步任務(wù)提供事件“幀”,在運(yùn)動平緩時可以保證事件“幀”輸出的低延時特性,運(yùn)動劇烈時可以平均事件“幀”包含的事件信息量。
后續(xù)工作將會針對物體邊緣依然存在噪聲殘余的問題以及算法結(jié)構(gòu)進(jìn)行優(yōu)化,降低運(yùn)行時間。未來將進(jìn)一步進(jìn)行基于事件相機(jī)的檢測、跟蹤、定位等視覺導(dǎo)航任務(wù)研究。