馬雪山,劉 斌,楊 靜,田 娟,馬 雷
(1.克拉瑪依職業(yè)技術學院,克拉瑪依 834000;2.北京大學數(shù)字媒體研究所,北京 100871)
與傳統(tǒng)的基于幀的相機不同,受到生物啟發(fā)的視覺傳感器有著不同視覺處理機制,在過去的10年間,各種神經(jīng)形態(tài)視覺傳感器被開發(fā)出來,具有代表性的神經(jīng)形態(tài)視覺傳感包括動態(tài)視覺傳感器(DVS)、基于異步時間的圖像傳 感 器(ATIS)及 動 態(tài) 主 動 成 像 傳 感 器(DAVIS)等。在眾多原理各異的神經(jīng)形態(tài)視覺傳感器中,DVS能以微秒級時間分辨率響應像素級亮度相對變化,實現(xiàn)高速運動的捕捉,但是無法重構場景完整的紋理。ATIS在DVS的基礎上引入了基于時間間隔的光強測量電路來實現(xiàn)圖像重構。DAVIS在像素級上結合了動態(tài)視覺傳感器(DVS)和有源像素傳感器(APS)的優(yōu)點,實現(xiàn)對所有像素的光強測量。但無論ATIS還是DAVIS,雖然都是對DVS的改進,仍然不能很好地解決高速運動場景的重建問題。
受視網(wǎng)膜神經(jīng)元信號處理的啟發(fā),2017年北京大學數(shù)字媒體所黃鐵軍教授的團隊研究出一種新型的仿視網(wǎng)膜中央凹的脈沖陣列式視覺傳感器Spike Camera。該傳感器空間分辨率為400×250,可以實現(xiàn)40 KHz的超高速率采樣。相比傳統(tǒng)相機和之前的神經(jīng)形態(tài)傳感器,能夠?qū)崿F(xiàn)超高速運動場景的精細紋理重建,在無人駕駛等高速場景的視覺任務中具有巨大的潛力。
基于神經(jīng)形態(tài)視覺傳感器的脈沖神經(jīng)網(wǎng)絡在目標檢測領域有明顯的速度優(yōu)勢,但是由于缺乏相應的脈沖數(shù)據(jù)集,影響了基于此類視覺類傳感器的神經(jīng)網(wǎng)絡的發(fā)展和應用。本文根據(jù)Spike Camera傳感器的原理設計并實現(xiàn)了一種脈沖相機的仿真方法,通過每個像素異步獨立的工作,可以將一段視頻轉(zhuǎn)化為Spike Camera的脈沖數(shù)據(jù)集,從而實現(xiàn)對數(shù)據(jù)集的擴充。
目前大部分的神經(jīng)形態(tài)視覺傳感器都基于灰度模式,在目標檢測、識別和跟蹤等任務中可以實現(xiàn)很好的效果。但是彩色信息在計算機視覺中也是非常重要的,比如在圖像分割和目標識別等領域。已經(jīng)有人在這方面開始了探索,如基于DAVIS的彩色事件相機SDAVIS192和Color-DAVIS346。目前第一代的Spike Camera還是以灰度模式工作的,因此本文通過仿真脈沖相機的工作模式探索在Spike Camera上實現(xiàn)彩色信息的脈沖編碼方法。實驗表明,使用RGB三通道的脈沖可以有效地編碼彩色信息,而基于拜爾陣列的RGB單通道脈沖編碼是一種有效的有損編碼,在損失很少的圖像信息的情況下,可以極大地減小脈沖帶寬,并且節(jié)省存儲和傳輸脈沖數(shù)據(jù)的空間。本文所列舉仿真方法與實驗結果對設計下一代彩色模式的脈沖相機具有重要參考意義。
Spike Camera通過模擬視網(wǎng)膜中央凹區(qū)域的細胞連接結構和信號處理機制,建立一個仿真神經(jīng)元的“積分發(fā)放模型”,如圖1所示,包含一個光感受器,一個積分器和閾值比較單元。

圖1 脈沖信號的“積分發(fā)放模型”
光感受器負責將光信號轉(zhuǎn)化為電信號傳到積分器,積分器對電信號進行累積,如公式(1)所示,代表光亮強度,代表積分時間,代表發(fā)放閾值。當累積的強度值達到脈沖發(fā)放的閾值時,輸出一個脈沖信號,同時積分器復位到0。

由這樣一組“積分發(fā)放模型”的像素單元共同組成一個二維陣列,陣列中的每個像素單元獨立地進行從光強接收到脈沖發(fā)放的過程。
傳感器生成的脈沖數(shù)據(jù)由0和1組成。每個像素在一個采樣時刻用一個比特表示脈沖的發(fā)放,如果有脈沖發(fā)放用1表示,沒有脈沖用0表示,這樣同一時刻所有像素的脈沖發(fā)放情況構成了一個只有0和1的二值脈沖矩陣。
因為每個像素獨立地發(fā)放脈沖,所以脈沖信號具有異步性,亮度高的像素發(fā)送脈沖的頻率高于亮度低的像素。通過分析這個脈沖的序列,可以重建每個采樣時刻的視覺紋理。針對不同任務的場景,幾種視覺場景重建的算法被提出,其中TFP(Texture from Playback)和TFA(Texture from Adaptive threshold)適合重建靜態(tài)場景的紋理。文獻[14]提出了一種三層神經(jīng)脈沖模型,在高速和靜態(tài)場景中都能很好地重建圖像紋理。
本文使用TFI(Texture from ISI)方法重建圖像紋理。脈沖間隔(ISI)指的是兩次脈沖之間的相鄰間隔,如圖2所示,光強與脈沖間隔成反比,光強高的像素產(chǎn)生的脈沖間隔小,而光強低的像素產(chǎn)生的脈沖間隔則較大。如公式(2)所示,只需要使用兩次脈沖之間的間隔,就可以重建光強的亮度。基于脈沖間隔的圖像重構算法TFI適合高速場景的圖像重構。

圖2 不同亮度像素產(chǎn)生脈沖間隔的示意圖

其中P代表在t時刻重建的像素值,代表最大的動態(tài)范圍,Δt表示兩次脈沖的間隔。
基于“積分發(fā)放模型”的原理,本文實現(xiàn)了Spike Camera脈沖相機的仿真。圖3是仿真脈沖相機生成脈沖數(shù)據(jù)的基本流程。

圖3 仿真脈沖相機的基本流程
仿真脈沖相機的核心部分是脈沖生成器,它由400×250個脈沖生成單元組成,其中每個脈沖生成單元與傳感器的一個像素單元對應。仿真脈沖相機輸入數(shù)據(jù)是一組連續(xù)的圖像幀序列,輸出數(shù)據(jù)是一個只包含0和1的二值脈沖矩陣序列。
獲取輸入的圖像幀序列有兩種方式,一種是使用傳統(tǒng)的高速鏡頭拍攝運動的場景,然后將拍攝的視頻流轉(zhuǎn)換為連續(xù)的圖像幀;第二種是直接使用計算機生成的動畫,模擬高速的運動場景。
在生成仿真脈沖的過程中,首先將輸入圖像幀的分辨率調(diào)整至與Spike Camera傳感器同樣的分辨率,分辨率為400×250。將每一圖像幀作為一個采樣時刻,用圖像幀中像素的亮度值模擬傳感器中到達的光子數(shù),送入對應的脈沖生成單元中。
脈沖生成單元包括累加器、閾值比較器和脈沖生成器。累加器保存著每次采樣結束后的像素累加值。在一個采樣時刻,當采樣的像素值(光子數(shù))到達后,先送往累加器中進行累加,然后將累加結果送入閾值比較器,與設定的閾值進行比較。當累積的像素值(光子數(shù))超過設定的閾值時,在生成的脈沖矩陣數(shù)據(jù)中,將對應坐標標記為1,表示脈沖生成器發(fā)放一個脈沖,同時將累加器重置到值為0的初始狀態(tài);如果沒有超過設定的閾值,脈沖矩陣對應的坐標標記為0,表示此時沒有發(fā)放脈沖。
每個脈沖生成單元獨立進行脈沖的生成,在一個采樣時刻結束后,仿真脈沖相機生成一個由0,1組成的二值矩陣。如圖3所示,在連續(xù)時間的采樣后,仿真脈沖相機將連續(xù)的圖像幀序列轉(zhuǎn)化為對應的脈沖矩陣序列。
像素單元的脈沖生成算法
輸入:一個采樣時刻的像素值p,累加器保存的狀態(tài)值s,脈沖發(fā)放閾值
輸出:1或0,1表示發(fā)放一個脈沖,0表示沒有發(fā)放脈沖
1 s←s+p
2 IF s>=
3 s←0
4 RETURN 1
5 ELSE
6 RETURN 0
7 ENDIF
位于視網(wǎng)膜上的光感受器細胞負責將接收到的光信號轉(zhuǎn)換成為電信號。人類的光感受器細胞是由桿細胞和錐細胞組成,其中桿細胞的功能是亮度感知,不具有顏色的感知能力,而錐細胞能夠?qū)ξ矬w的細節(jié)進行感知,并且具有顏色的感知能力。根據(jù)楊-赫的三原色理論,彩色信息可以通紅、綠、藍三種色彩混合相加形成,在視網(wǎng)膜上存在L、M、S三種錐細胞,分別對紅色、綠色和藍色光最為敏感。
Spike Camera傳感器本身是基于灰度模式的,如果要傳輸彩色場景的信息,可以使用三種顏色的傳感器代替三種錐細胞,將一個彩色的場景分解為R、G、B三個通道,如圖4所示,彩色場景中的每個像素用R、G、B的三個值表示。

圖4 RGB三通道彩色脈沖的過程
在R、G、B三個通道中,分別應用Spike Camera的積分發(fā)放模型,對每個像素進行脈沖的發(fā)放,根據(jù)亮度的累計產(chǎn)生脈沖信號。在一個采樣時刻生成的原始脈沖數(shù)據(jù)應當包括R、G、B三個通道的脈沖數(shù)據(jù)。
使用脈沖數(shù)據(jù)重建彩色圖像時,首先使用重構圖片的TFI算法分別恢復R、G、B三個通道,得到每個通道任一采樣時刻的重構圖。再對每個像素利用重建后的亮度值(R’G’B’)合并成一個通道,最終重建彩色圖像。
在彩色的脈沖編碼中,如果采用三通道分別傳輸RGB的亮度信息,每個像素需要對應三個脈沖生成單元,產(chǎn)生的脈沖帶寬達到原來的3倍,生成的脈沖數(shù)據(jù)規(guī)模也變?yōu)?倍,這對傳遞、保存脈沖數(shù)據(jù)和重構圖像都帶來了更大的存儲空間和性能的要求。
為了減少脈沖數(shù)據(jù)的產(chǎn)生,本文在脈沖的發(fā)放前,先將三個通道的R、G、B值編碼在一個通道中,如圖5所示,本文使用拜耳陣列對彩色場景進行編碼。在傳感器上規(guī)律分布綠色、紅色和藍色的像素,因為人眼對綠光最敏感,這里綠色的像素是其他顏色的兩倍,具體的排列方式是奇數(shù)行為GRGR,偶數(shù)行為BGBG。每個像素只保留對應顏色的亮度值,通過脈沖生成器分別進行亮度的積分和脈沖的發(fā)放。產(chǎn)生的脈沖數(shù)據(jù)只包含一個通道,傳輸?shù)膸捄蛿?shù)據(jù)減少到原來的三分之一。

圖5 RGB單通道彩色脈沖的過程
使用單通道的脈沖數(shù)據(jù)重構圖片時,會得到一個三種顏色的馬賽克圖像,每個像素只有一種顏色的信息。然后對每個像素利用周圍像素的顏色信息,使用邊緣自適應彩色插值的方法,推導出像素缺失的其他兩種顏色,將這個圖像重新解碼成三個通道,最后合并成一個彩色圖像。
與彩色的RGB三通道編碼相比,這種方式每個像素只使用一個脈沖生成單元,在脈沖編碼時也只占用了一個通道,極大節(jié)省了存儲和傳輸?shù)目臻g,重建圖像紋理時的效率也有很大提升。在硬件實現(xiàn)上,通過傳感器直接采集彩色的RGB信息,每個像素需要有限的空間中有三塊完全對齊的三色濾鏡,技術難度比較大。而使用拜耳陣列的顏色濾鏡,每個像素只需要一種顏色的濾鏡,相比起來是更高效的方案。
YUV是在電視、計算機視頻和圖像領域常用的一種顏色空間,本文也嘗試了YUV顏色空間中進行彩色脈沖的編碼。YUV是一種常見的顏色編碼格式,具有易壓縮性,方便顏色信息的處理和傳輸。Y代表亮度信息,U和V代表色度信息,描述是像素的色彩及飽和度。
使用YUV顏色空間對彩色脈沖編碼也可以分為三通道編碼和單通道編碼兩種方式。YUV三通道彩色脈沖編碼與RGB三通道彩色脈沖類似,Y、U、V三個通道獨立進行脈沖的生成和發(fā)放。
YUV單通道的彩色脈沖編碼,在生成脈沖之前,先對色度即U、V通道下采樣,然后將Y、U、V的值編碼在一個通道中,先保存所有的Y值,依次再保存U值、V值,從而有效降低脈沖帶寬。本文使用YUV420采樣方式對彩色信息進行編碼,在亮度Y通道上不變,在色度U、V通道上分別進行垂直下采樣和水平下采樣,每個四像素的Y值共享一組U、V值。因此存儲U、V值的數(shù)量分別只有Y的四分之一,壓縮比可以達到50%。
本文使用Python和OpenCV實現(xiàn)了Spike Camera的工作模式仿真。在傳感器的仿真中,大量的運算是對三維矩陣和二維矩陣的操作。NumPy是Python的一個用于定義多維數(shù)據(jù)的庫,提供一個強大的N維數(shù)組對象ndarray,支持大量的數(shù)組與矩陣的運算。使用NumPy庫,可以極大地提升仿真?zhèn)鞲衅魈幚矶嗑S數(shù)組的能力和性能。仿真脈沖傳感器的分辨率為400*250,發(fā)放脈沖的閾值為360。
首先測試在灰度模式下工作的仿真脈沖相機,使用一段計算機生成動畫作為數(shù)據(jù)集,動畫的每一幀為灰度圖,動畫內(nèi)容是一枚旋轉(zhuǎn)硬幣。將每一幀作為一個采樣時刻,用像素的亮度值模擬到達的光子數(shù),每個像素單元獨立累積到達的光子數(shù)。當累積的光子數(shù)超過閾值時,發(fā)送一個脈沖并重置到初始狀態(tài)。
如圖6所示,動畫的原始幀首先生成為脈沖陣列數(shù)據(jù),與圖像幀類似,這里使用脈沖幀描述一個采樣時刻產(chǎn)生脈沖的情況,白點表示此時像素單元產(chǎn)生了一個脈沖。最后再使用重構算法從脈沖數(shù)據(jù)中重建圖像幀。通過計算,灰度模式下重構圖像幀與原始幀的PSNR值達到了32。

圖6 原始幀、脈沖幀和重構幀
基于仿真?zhèn)鞲衅鳎疚姆謩e在多個彩色場景的數(shù)據(jù)集上進行了RGB顏色空間上三通道和單通道彩色脈沖編碼和YUV顏色空間上的三通道和單通道彩色脈沖編碼的仿真實驗。彩色場景的數(shù)據(jù)集如圖7所示,第一個數(shù)據(jù)集是計算機生成的動畫,內(nèi)容是一枚旋轉(zhuǎn)的硬幣,第二、第三個數(shù)據(jù)集是使用高速鏡頭拍攝的場景,分別是飛行的鳥類和奔跑的豹子。

圖7 彩色脈沖編碼使用的彩色場景數(shù)據(jù)集
分別在每個數(shù)據(jù)集上連續(xù)采樣500個彩色幀,使用同樣硬件環(huán)境和重建幀算法,使用不用的顏色編碼方式生成脈沖數(shù)據(jù)并重構彩色的圖像幀。以原始圖像幀作為參考,使用峰值信噪比PSNR和結構相似性SSIM等度量指標對比每種彩色脈沖編碼的重構圖像質(zhì)量,實驗結果如表1和圖8、圖9所示。

表1 彩色脈沖編碼重構圖像質(zhì)量的對比

圖8 彩色脈沖編碼重構圖像PSNR對比

圖9 彩色脈沖編碼重構圖像SSIM對比
本文同時還對比了500次采樣后,生成的脈沖數(shù)據(jù)帶寬、脈沖數(shù)據(jù)大小、算法平均的重建時間等性能指標,實驗結果如表2所示。實驗結果表明,與YUV顏色空間相比,在RGB顏色空間中可以更有效地編碼彩色脈沖信息。分析YUV顏色空間上的三通道彩色脈沖編碼,計算Y、U、V三個通道重構的PSNR值,對比后得出U、V通道重構質(zhì)量明顯低于Y通道,表明在YUV空間上的脈沖編碼,相比亮度信息,顏色信息損失較大。

表2 彩色脈沖編碼性能的對比
在RGB顏色空間上,雖然重構圖片的部分運動細節(jié)有所丟失,但是顏色信息得到了很好的重構。采用RGB三通道的彩色脈沖編碼的重構圖像質(zhì)量最好,而采用RGB單通道的彩色脈沖編碼在損失很少的性能下極大地壓縮了脈沖數(shù)據(jù),減少了傳輸帶寬。
新型的神經(jīng)形態(tài)視覺傳感器Spike Camera,相比傳統(tǒng)相機和之前的神經(jīng)形態(tài)傳感器,在超高速場景的視覺任務中有巨大的潛力。本文基于Spike Camera的原理,通過設計與實現(xiàn)Spike Camera的仿真相機,探索了在Spike Camera上的彩色脈沖編碼方法。實驗結果表明,采用單通道的RGB彩色脈沖編碼能在損失很少的圖像信息的情況下,極大地壓縮脈沖數(shù)據(jù),減少傳輸帶寬,為下一代的彩色脈沖相機在硬件實現(xiàn)上提供了重要設計參考。
致 謝:本文為作者在北大訪學期間完成,非常感謝北京大學視覺感知研究中心黃鐵軍教授,馬雷副研究員在科研方法、研究思路和實驗設計過程中提供了寶貴的指導意見,在此表示誠摯謝意!