馬雪山,劉 斌,楊 靜,田 娟,馬 雷
(1.克拉瑪依職業(yè)技術(shù)學(xué)院,克拉瑪依 834000;2.北京大學(xué)數(shù)字媒體研究所,北京 100871)
與傳統(tǒng)的基于幀的相機(jī)不同,受到生物啟發(fā)的視覺傳感器有著不同視覺處理機(jī)制,在過去的10年間,各種神經(jīng)形態(tài)視覺傳感器被開發(fā)出來,具有代表性的神經(jīng)形態(tài)視覺傳感包括動(dòng)態(tài)視覺傳感器(DVS)、基于異步時(shí)間的圖像傳 感 器(ATIS)及 動(dòng) 態(tài) 主 動(dòng) 成 像 傳 感 器(DAVIS)等。在眾多原理各異的神經(jīng)形態(tài)視覺傳感器中,DVS能以微秒級(jí)時(shí)間分辨率響應(yīng)像素級(jí)亮度相對(duì)變化,實(shí)現(xiàn)高速運(yùn)動(dòng)的捕捉,但是無法重構(gòu)場景完整的紋理。ATIS在DVS的基礎(chǔ)上引入了基于時(shí)間間隔的光強(qiáng)測量電路來實(shí)現(xiàn)圖像重構(gòu)。DAVIS在像素級(jí)上結(jié)合了動(dòng)態(tài)視覺傳感器(DVS)和有源像素傳感器(APS)的優(yōu)點(diǎn),實(shí)現(xiàn)對(duì)所有像素的光強(qiáng)測量。但無論ATIS還是DAVIS,雖然都是對(duì)DVS的改進(jìn),仍然不能很好地解決高速運(yùn)動(dòng)場景的重建問題。
受視網(wǎng)膜神經(jīng)元信號(hào)處理的啟發(fā),2017年北京大學(xué)數(shù)字媒體所黃鐵軍教授的團(tuán)隊(duì)研究出一種新型的仿視網(wǎng)膜中央凹的脈沖陣列式視覺傳感器Spike Camera。該傳感器空間分辨率為400×250,可以實(shí)現(xiàn)40 KHz的超高速率采樣。相比傳統(tǒng)相機(jī)和之前的神經(jīng)形態(tài)傳感器,能夠?qū)崿F(xiàn)超高速運(yùn)動(dòng)場景的精細(xì)紋理重建,在無人駕駛等高速場景的視覺任務(wù)中具有巨大的潛力。
基于神經(jīng)形態(tài)視覺傳感器的脈沖神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測領(lǐng)域有明顯的速度優(yōu)勢,但是由于缺乏相應(yīng)的脈沖數(shù)據(jù)集,影響了基于此類視覺類傳感器的神經(jīng)網(wǎng)絡(luò)的發(fā)展和應(yīng)用。本文根據(jù)Spike Camera傳感器的原理設(shè)計(jì)并實(shí)現(xiàn)了一種脈沖相機(jī)的仿真方法,通過每個(gè)像素異步獨(dú)立的工作,可以將一段視頻轉(zhuǎn)化為Spike Camera的脈沖數(shù)據(jù)集,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)集的擴(kuò)充。
目前大部分的神經(jīng)形態(tài)視覺傳感器都基于灰度模式,在目標(biāo)檢測、識(shí)別和跟蹤等任務(wù)中可以實(shí)現(xiàn)很好的效果。但是彩色信息在計(jì)算機(jī)視覺中也是非常重要的,比如在圖像分割和目標(biāo)識(shí)別等領(lǐng)域。已經(jīng)有人在這方面開始了探索,如基于DAVIS的彩色事件相機(jī)SDAVIS192和Color-DAVIS346。目前第一代的Spike Camera還是以灰度模式工作的,因此本文通過仿真脈沖相機(jī)的工作模式探索在Spike Camera上實(shí)現(xiàn)彩色信息的脈沖編碼方法。實(shí)驗(yàn)表明,使用RGB三通道的脈沖可以有效地編碼彩色信息,而基于拜爾陣列的RGB單通道脈沖編碼是一種有效的有損編碼,在損失很少的圖像信息的情況下,可以極大地減小脈沖帶寬,并且節(jié)省存儲(chǔ)和傳輸脈沖數(shù)據(jù)的空間。本文所列舉仿真方法與實(shí)驗(yàn)結(jié)果對(duì)設(shè)計(jì)下一代彩色模式的脈沖相機(jī)具有重要參考意義。
Spike Camera通過模擬視網(wǎng)膜中央凹區(qū)域的細(xì)胞連接結(jié)構(gòu)和信號(hào)處理機(jī)制,建立一個(gè)仿真神經(jīng)元的“積分發(fā)放模型”,如圖1所示,包含一個(gè)光感受器,一個(gè)積分器和閾值比較單元。
圖1 脈沖信號(hào)的“積分發(fā)放模型”
光感受器負(fù)責(zé)將光信號(hào)轉(zhuǎn)化為電信號(hào)傳到積分器,積分器對(duì)電信號(hào)進(jìn)行累積,如公式(1)所示,代表光亮強(qiáng)度,代表積分時(shí)間,代表發(fā)放閾值。當(dāng)累積的強(qiáng)度值達(dá)到脈沖發(fā)放的閾值時(shí),輸出一個(gè)脈沖信號(hào),同時(shí)積分器復(fù)位到0。
由這樣一組“積分發(fā)放模型”的像素單元共同組成一個(gè)二維陣列,陣列中的每個(gè)像素單元獨(dú)立地進(jìn)行從光強(qiáng)接收到脈沖發(fā)放的過程。
傳感器生成的脈沖數(shù)據(jù)由0和1組成。每個(gè)像素在一個(gè)采樣時(shí)刻用一個(gè)比特表示脈沖的發(fā)放,如果有脈沖發(fā)放用1表示,沒有脈沖用0表示,這樣同一時(shí)刻所有像素的脈沖發(fā)放情況構(gòu)成了一個(gè)只有0和1的二值脈沖矩陣。
因?yàn)槊總€(gè)像素獨(dú)立地發(fā)放脈沖,所以脈沖信號(hào)具有異步性,亮度高的像素發(fā)送脈沖的頻率高于亮度低的像素。通過分析這個(gè)脈沖的序列,可以重建每個(gè)采樣時(shí)刻的視覺紋理。針對(duì)不同任務(wù)的場景,幾種視覺場景重建的算法被提出,其中TFP(Texture from Playback)和TFA(Texture from Adaptive threshold)適合重建靜態(tài)場景的紋理。文獻(xiàn)[14]提出了一種三層神經(jīng)脈沖模型,在高速和靜態(tài)場景中都能很好地重建圖像紋理。
本文使用TFI(Texture from ISI)方法重建圖像紋理。脈沖間隔(ISI)指的是兩次脈沖之間的相鄰間隔,如圖2所示,光強(qiáng)與脈沖間隔成反比,光強(qiáng)高的像素產(chǎn)生的脈沖間隔小,而光強(qiáng)低的像素產(chǎn)生的脈沖間隔則較大。如公式(2)所示,只需要使用兩次脈沖之間的間隔,就可以重建光強(qiáng)的亮度?;诿}沖間隔的圖像重構(gòu)算法TFI適合高速場景的圖像重構(gòu)。
圖2 不同亮度像素產(chǎn)生脈沖間隔的示意圖
其中P代表在t時(shí)刻重建的像素值,代表最大的動(dòng)態(tài)范圍,Δt表示兩次脈沖的間隔。
基于“積分發(fā)放模型”的原理,本文實(shí)現(xiàn)了Spike Camera脈沖相機(jī)的仿真。圖3是仿真脈沖相機(jī)生成脈沖數(shù)據(jù)的基本流程。
圖3 仿真脈沖相機(jī)的基本流程
仿真脈沖相機(jī)的核心部分是脈沖生成器,它由400×250個(gè)脈沖生成單元組成,其中每個(gè)脈沖生成單元與傳感器的一個(gè)像素單元對(duì)應(yīng)。仿真脈沖相機(jī)輸入數(shù)據(jù)是一組連續(xù)的圖像幀序列,輸出數(shù)據(jù)是一個(gè)只包含0和1的二值脈沖矩陣序列。
獲取輸入的圖像幀序列有兩種方式,一種是使用傳統(tǒng)的高速鏡頭拍攝運(yùn)動(dòng)的場景,然后將拍攝的視頻流轉(zhuǎn)換為連續(xù)的圖像幀;第二種是直接使用計(jì)算機(jī)生成的動(dòng)畫,模擬高速的運(yùn)動(dòng)場景。
在生成仿真脈沖的過程中,首先將輸入圖像幀的分辨率調(diào)整至與Spike Camera傳感器同樣的分辨率,分辨率為400×250。將每一圖像幀作為一個(gè)采樣時(shí)刻,用圖像幀中像素的亮度值模擬傳感器中到達(dá)的光子數(shù),送入對(duì)應(yīng)的脈沖生成單元中。
脈沖生成單元包括累加器、閾值比較器和脈沖生成器。累加器保存著每次采樣結(jié)束后的像素累加值。在一個(gè)采樣時(shí)刻,當(dāng)采樣的像素值(光子數(shù))到達(dá)后,先送往累加器中進(jìn)行累加,然后將累加結(jié)果送入閾值比較器,與設(shè)定的閾值進(jìn)行比較。當(dāng)累積的像素值(光子數(shù))超過設(shè)定的閾值時(shí),在生成的脈沖矩陣數(shù)據(jù)中,將對(duì)應(yīng)坐標(biāo)標(biāo)記為1,表示脈沖生成器發(fā)放一個(gè)脈沖,同時(shí)將累加器重置到值為0的初始狀態(tài);如果沒有超過設(shè)定的閾值,脈沖矩陣對(duì)應(yīng)的坐標(biāo)標(biāo)記為0,表示此時(shí)沒有發(fā)放脈沖。
每個(gè)脈沖生成單元獨(dú)立進(jìn)行脈沖的生成,在一個(gè)采樣時(shí)刻結(jié)束后,仿真脈沖相機(jī)生成一個(gè)由0,1組成的二值矩陣。如圖3所示,在連續(xù)時(shí)間的采樣后,仿真脈沖相機(jī)將連續(xù)的圖像幀序列轉(zhuǎn)化為對(duì)應(yīng)的脈沖矩陣序列。
像素單元的脈沖生成算法
輸入:一個(gè)采樣時(shí)刻的像素值p,累加器保存的狀態(tài)值s,脈沖發(fā)放閾值
輸出:1或0,1表示發(fā)放一個(gè)脈沖,0表示沒有發(fā)放脈沖
1 s←s+p
2 IF s>=
3 s←0
4 RETURN 1
5 ELSE
6 RETURN 0
7 ENDIF
位于視網(wǎng)膜上的光感受器細(xì)胞負(fù)責(zé)將接收到的光信號(hào)轉(zhuǎn)換成為電信號(hào)。人類的光感受器細(xì)胞是由桿細(xì)胞和錐細(xì)胞組成,其中桿細(xì)胞的功能是亮度感知,不具有顏色的感知能力,而錐細(xì)胞能夠?qū)ξ矬w的細(xì)節(jié)進(jìn)行感知,并且具有顏色的感知能力。根據(jù)楊-赫的三原色理論,彩色信息可以通紅、綠、藍(lán)三種色彩混合相加形成,在視網(wǎng)膜上存在L、M、S三種錐細(xì)胞,分別對(duì)紅色、綠色和藍(lán)色光最為敏感。
Spike Camera傳感器本身是基于灰度模式的,如果要傳輸彩色場景的信息,可以使用三種顏色的傳感器代替三種錐細(xì)胞,將一個(gè)彩色的場景分解為R、G、B三個(gè)通道,如圖4所示,彩色場景中的每個(gè)像素用R、G、B的三個(gè)值表示。
圖4 RGB三通道彩色脈沖的過程
在R、G、B三個(gè)通道中,分別應(yīng)用Spike Camera的積分發(fā)放模型,對(duì)每個(gè)像素進(jìn)行脈沖的發(fā)放,根據(jù)亮度的累計(jì)產(chǎn)生脈沖信號(hào)。在一個(gè)采樣時(shí)刻生成的原始脈沖數(shù)據(jù)應(yīng)當(dāng)包括R、G、B三個(gè)通道的脈沖數(shù)據(jù)。
使用脈沖數(shù)據(jù)重建彩色圖像時(shí),首先使用重構(gòu)圖片的TFI算法分別恢復(fù)R、G、B三個(gè)通道,得到每個(gè)通道任一采樣時(shí)刻的重構(gòu)圖。再對(duì)每個(gè)像素利用重建后的亮度值(R’G’B’)合并成一個(gè)通道,最終重建彩色圖像。
在彩色的脈沖編碼中,如果采用三通道分別傳輸RGB的亮度信息,每個(gè)像素需要對(duì)應(yīng)三個(gè)脈沖生成單元,產(chǎn)生的脈沖帶寬達(dá)到原來的3倍,生成的脈沖數(shù)據(jù)規(guī)模也變?yōu)?倍,這對(duì)傳遞、保存脈沖數(shù)據(jù)和重構(gòu)圖像都帶來了更大的存儲(chǔ)空間和性能的要求。
為了減少脈沖數(shù)據(jù)的產(chǎn)生,本文在脈沖的發(fā)放前,先將三個(gè)通道的R、G、B值編碼在一個(gè)通道中,如圖5所示,本文使用拜耳陣列對(duì)彩色場景進(jìn)行編碼。在傳感器上規(guī)律分布綠色、紅色和藍(lán)色的像素,因?yàn)槿搜蹖?duì)綠光最敏感,這里綠色的像素是其他顏色的兩倍,具體的排列方式是奇數(shù)行為GRGR,偶數(shù)行為BGBG。每個(gè)像素只保留對(duì)應(yīng)顏色的亮度值,通過脈沖生成器分別進(jìn)行亮度的積分和脈沖的發(fā)放。產(chǎn)生的脈沖數(shù)據(jù)只包含一個(gè)通道,傳輸?shù)膸捄蛿?shù)據(jù)減少到原來的三分之一。
圖5 RGB單通道彩色脈沖的過程
使用單通道的脈沖數(shù)據(jù)重構(gòu)圖片時(shí),會(huì)得到一個(gè)三種顏色的馬賽克圖像,每個(gè)像素只有一種顏色的信息。然后對(duì)每個(gè)像素利用周圍像素的顏色信息,使用邊緣自適應(yīng)彩色插值的方法,推導(dǎo)出像素缺失的其他兩種顏色,將這個(gè)圖像重新解碼成三個(gè)通道,最后合并成一個(gè)彩色圖像。
與彩色的RGB三通道編碼相比,這種方式每個(gè)像素只使用一個(gè)脈沖生成單元,在脈沖編碼時(shí)也只占用了一個(gè)通道,極大節(jié)省了存儲(chǔ)和傳輸?shù)目臻g,重建圖像紋理時(shí)的效率也有很大提升。在硬件實(shí)現(xiàn)上,通過傳感器直接采集彩色的RGB信息,每個(gè)像素需要有限的空間中有三塊完全對(duì)齊的三色濾鏡,技術(shù)難度比較大。而使用拜耳陣列的顏色濾鏡,每個(gè)像素只需要一種顏色的濾鏡,相比起來是更高效的方案。
YUV是在電視、計(jì)算機(jī)視頻和圖像領(lǐng)域常用的一種顏色空間,本文也嘗試了YUV顏色空間中進(jìn)行彩色脈沖的編碼。YUV是一種常見的顏色編碼格式,具有易壓縮性,方便顏色信息的處理和傳輸。Y代表亮度信息,U和V代表色度信息,描述是像素的色彩及飽和度。
使用YUV顏色空間對(duì)彩色脈沖編碼也可以分為三通道編碼和單通道編碼兩種方式。YUV三通道彩色脈沖編碼與RGB三通道彩色脈沖類似,Y、U、V三個(gè)通道獨(dú)立進(jìn)行脈沖的生成和發(fā)放。
YUV單通道的彩色脈沖編碼,在生成脈沖之前,先對(duì)色度即U、V通道下采樣,然后將Y、U、V的值編碼在一個(gè)通道中,先保存所有的Y值,依次再保存U值、V值,從而有效降低脈沖帶寬。本文使用YUV420采樣方式對(duì)彩色信息進(jìn)行編碼,在亮度Y通道上不變,在色度U、V通道上分別進(jìn)行垂直下采樣和水平下采樣,每個(gè)四像素的Y值共享一組U、V值。因此存儲(chǔ)U、V值的數(shù)量分別只有Y的四分之一,壓縮比可以達(dá)到50%。
本文使用Python和OpenCV實(shí)現(xiàn)了Spike Camera的工作模式仿真。在傳感器的仿真中,大量的運(yùn)算是對(duì)三維矩陣和二維矩陣的操作。NumPy是Python的一個(gè)用于定義多維數(shù)據(jù)的庫,提供一個(gè)強(qiáng)大的N維數(shù)組對(duì)象ndarray,支持大量的數(shù)組與矩陣的運(yùn)算。使用NumPy庫,可以極大地提升仿真?zhèn)鞲衅魈幚矶嗑S數(shù)組的能力和性能。仿真脈沖傳感器的分辨率為400*250,發(fā)放脈沖的閾值為360。
首先測試在灰度模式下工作的仿真脈沖相機(jī),使用一段計(jì)算機(jī)生成動(dòng)畫作為數(shù)據(jù)集,動(dòng)畫的每一幀為灰度圖,動(dòng)畫內(nèi)容是一枚旋轉(zhuǎn)硬幣。將每一幀作為一個(gè)采樣時(shí)刻,用像素的亮度值模擬到達(dá)的光子數(shù),每個(gè)像素單元獨(dú)立累積到達(dá)的光子數(shù)。當(dāng)累積的光子數(shù)超過閾值時(shí),發(fā)送一個(gè)脈沖并重置到初始狀態(tài)。
如圖6所示,動(dòng)畫的原始幀首先生成為脈沖陣列數(shù)據(jù),與圖像幀類似,這里使用脈沖幀描述一個(gè)采樣時(shí)刻產(chǎn)生脈沖的情況,白點(diǎn)表示此時(shí)像素單元產(chǎn)生了一個(gè)脈沖。最后再使用重構(gòu)算法從脈沖數(shù)據(jù)中重建圖像幀。通過計(jì)算,灰度模式下重構(gòu)圖像幀與原始幀的PSNR值達(dá)到了32。
圖6 原始幀、脈沖幀和重構(gòu)幀
基于仿真?zhèn)鞲衅?,本文分別在多個(gè)彩色場景的數(shù)據(jù)集上進(jìn)行了RGB顏色空間上三通道和單通道彩色脈沖編碼和YUV顏色空間上的三通道和單通道彩色脈沖編碼的仿真實(shí)驗(yàn)。彩色場景的數(shù)據(jù)集如圖7所示,第一個(gè)數(shù)據(jù)集是計(jì)算機(jī)生成的動(dòng)畫,內(nèi)容是一枚旋轉(zhuǎn)的硬幣,第二、第三個(gè)數(shù)據(jù)集是使用高速鏡頭拍攝的場景,分別是飛行的鳥類和奔跑的豹子。
圖7 彩色脈沖編碼使用的彩色場景數(shù)據(jù)集
分別在每個(gè)數(shù)據(jù)集上連續(xù)采樣500個(gè)彩色幀,使用同樣硬件環(huán)境和重建幀算法,使用不用的顏色編碼方式生成脈沖數(shù)據(jù)并重構(gòu)彩色的圖像幀。以原始圖像幀作為參考,使用峰值信噪比PSNR和結(jié)構(gòu)相似性SSIM等度量指標(biāo)對(duì)比每種彩色脈沖編碼的重構(gòu)圖像質(zhì)量,實(shí)驗(yàn)結(jié)果如表1和圖8、圖9所示。
表1 彩色脈沖編碼重構(gòu)圖像質(zhì)量的對(duì)比
圖8 彩色脈沖編碼重構(gòu)圖像PSNR對(duì)比
圖9 彩色脈沖編碼重構(gòu)圖像SSIM對(duì)比
本文同時(shí)還對(duì)比了500次采樣后,生成的脈沖數(shù)據(jù)帶寬、脈沖數(shù)據(jù)大小、算法平均的重建時(shí)間等性能指標(biāo),實(shí)驗(yàn)結(jié)果如表2所示。實(shí)驗(yàn)結(jié)果表明,與YUV顏色空間相比,在RGB顏色空間中可以更有效地編碼彩色脈沖信息。分析YUV顏色空間上的三通道彩色脈沖編碼,計(jì)算Y、U、V三個(gè)通道重構(gòu)的PSNR值,對(duì)比后得出U、V通道重構(gòu)質(zhì)量明顯低于Y通道,表明在YUV空間上的脈沖編碼,相比亮度信息,顏色信息損失較大。
表2 彩色脈沖編碼性能的對(duì)比
在RGB顏色空間上,雖然重構(gòu)圖片的部分運(yùn)動(dòng)細(xì)節(jié)有所丟失,但是顏色信息得到了很好的重構(gòu)。采用RGB三通道的彩色脈沖編碼的重構(gòu)圖像質(zhì)量最好,而采用RGB單通道的彩色脈沖編碼在損失很少的性能下極大地壓縮了脈沖數(shù)據(jù),減少了傳輸帶寬。
新型的神經(jīng)形態(tài)視覺傳感器Spike Camera,相比傳統(tǒng)相機(jī)和之前的神經(jīng)形態(tài)傳感器,在超高速場景的視覺任務(wù)中有巨大的潛力。本文基于Spike Camera的原理,通過設(shè)計(jì)與實(shí)現(xiàn)Spike Camera的仿真相機(jī),探索了在Spike Camera上的彩色脈沖編碼方法。實(shí)驗(yàn)結(jié)果表明,采用單通道的RGB彩色脈沖編碼能在損失很少的圖像信息的情況下,極大地壓縮脈沖數(shù)據(jù),減少傳輸帶寬,為下一代的彩色脈沖相機(jī)在硬件實(shí)現(xiàn)上提供了重要設(shè)計(jì)參考。
致 謝:本文為作者在北大訪學(xué)期間完成,非常感謝北京大學(xué)視覺感知研究中心黃鐵軍教授,馬雷副研究員在科研方法、研究思路和實(shí)驗(yàn)設(shè)計(jì)過程中提供了寶貴的指導(dǎo)意見,在此表示誠摯謝意!