王 斌,梁 杰,王 盼,顧正華,蓋 文
中國空氣動力研究與發(fā)展中心 設(shè)備設(shè)計與測試技術(shù)研究所,四川 綿陽 621000
高速攝影技術(shù)是爆炸力學(xué)、流體力學(xué)、彈道觀測等科研試驗中重要的測試手段,用于觀測、記錄快速變化的物理現(xiàn)象[1-5]。高速攝影系統(tǒng)包括膠片式高速攝影系統(tǒng)和電子式高速攝影系統(tǒng)。與膠片式高速攝影系統(tǒng)相比,電子式高速攝影系統(tǒng)[6]成本低、使用靈活,具有極大的應(yīng)用前景。但是,受電子系統(tǒng)帶寬限制,它難以長時間拍攝高速視頻。達爭尚等[7]通過理論分析與實際應(yīng)用測試指出,電子系統(tǒng)帶寬限制是制約電子式高速攝像系統(tǒng)應(yīng)用于導(dǎo)彈觀測的主要因素,使之還不能完全取代傳統(tǒng)的膠片式高速攝影系統(tǒng)。
近十年來電子技術(shù)的快速發(fā)展使電子系統(tǒng)帶寬得到極大提高,但仍無法滿足高達20 GB/s 的海量視頻數(shù)據(jù)實時傳輸需求。為拍攝高速視頻,現(xiàn)有電子式高速攝影系統(tǒng)通常將拍攝的圖像數(shù)據(jù)存儲于內(nèi)存中;但有限的內(nèi)存容量難以存儲海量視頻,無法持續(xù)拍攝高分辨率圖像序列(如彈道觀測拍攝)。為延長拍攝時間,現(xiàn)有電子式高速攝像機通常采用TOM(Thin Out Mode)模式[6]降低成像分辨率,以增加幀率或延長拍攝時間;但降低圖像分辨率會影響圖像清晰度,無法滿足定性分析和定量測量需求。
圖像數(shù)據(jù)在空域、頻域都存在極大冗余,通過圖像壓縮方法,可在保證在圖像內(nèi)容不明顯失真的情況下,降低圖像傳輸與存儲容量。近年來,學(xué)者們針對圖像/視頻壓縮問題,研究了大量壓縮算法,比如JPEG、MPEG、H.264、H.265 等,特別是H.265 等視頻壓縮算法,極大地降低了視頻數(shù)據(jù)量。但是,現(xiàn)有圖像/視頻壓縮算法涉及圖像頻域變換、幀間預(yù)測等復(fù)雜操作,計算量大,以目前硬件水平還不能在電子式高速攝像機中實現(xiàn)海量視頻數(shù)據(jù)實時壓縮。
學(xué)者們受壓縮傳感理論[8]的啟發(fā),提出了壓縮成像技術(shù):在光學(xué)成像過程中,通過光學(xué)物理方法獲取比傳統(tǒng)成像方法更少的數(shù)據(jù),達到降低成像數(shù)據(jù)量的目的,再通過壓縮感知重建算法,計算期望圖像。如圖1所示,壓縮成像[9-10]采用只有1 像素的攝像機對觀測對象進行多次成像,每次成像獲取被觀察對象的1 次測量值(1 像素)。對于一幅256 像素×256 像素的圖像(圖1(b)),經(jīng)過1300 次單像素成像,獲取1300 個像素值,再通過壓縮感知重建算法估計原圖像內(nèi)容(圖1(c))。單像素相機具有成本極低的優(yōu)勢,以1 個像素即可完成任意分辨率圖像獲取。實現(xiàn)壓縮成像的核心在于找到合適的光學(xué)物理方法模擬壓縮感知中測量矩陣的觀測過程。學(xué)者們將編碼光圈[11]、編碼曝光[12]等計算攝影技術(shù)用于壓縮成像,并取得了一定成果。Raskar 等[11]采用編碼光圈實現(xiàn)了周期性運動對象的壓縮成像;Gu 等[12]采用編碼曝光實現(xiàn)了高速成像;Agrawal 等[13]采用低速攝像機陣列合成了高速視頻;Liu 等[14]采用偏振光選通技術(shù)實現(xiàn)了10 倍超幀率成像。壓縮成像為實現(xiàn)低成本高速成像開辟了一條新的道路,但其采用的物理方法還難以落地應(yīng)用。
圖1 單像素相機及成像結(jié)果[9]Fig.1 Single pixel camera and its imaging result[9]
對于電子式高速攝像系統(tǒng)而言,現(xiàn)有CCD 特別是ICCD 的感光靈敏度已能滿足高速成像需求,制約其應(yīng)用的是電子系統(tǒng)帶寬不足的問題。因此,對拍攝圖像進行壓縮以降低圖像數(shù)據(jù)量,在現(xiàn)有帶寬條件下實現(xiàn)高速視頻同步傳輸與存儲,具有極大實用價值。為此,本文提出一種簡單、易于硬件實現(xiàn)的圖像壓縮方法——伯努利采樣圖像壓縮。在CCD 或CMOS圖像采集過程中,通過伯努利采樣,隨機保存部分像素,實現(xiàn)圖像快速壓縮;在計算機端,通過對未采樣像素進行估計實現(xiàn)圖像解壓縮(重建)。
為了降低計算復(fù)雜度、減小計算量、實現(xiàn)簡單高效的圖像壓縮,本文在圖像空域進行伯努利采樣,達到像素流同步壓縮目的。伯努利采樣定義為服從伯努利分布的隨機抽樣過程,伯努利分布函數(shù)為:
其中:(i,j)表 示像素坐標(biāo);P為分布概率;fi,j為分布輸出結(jié)果,取值為1 或0,1 表示 (i,j)位置處像素被采樣,0 表示不被采樣。定義圖像壓縮率r=1–P,P越大,采樣像素越多,圖像壓縮率r越小。
圖2(a)為源圖像(Lena 的人臉圖像),圖2(b)為對圖2(a)進行伯努利采樣的圖像,未采樣像素分布輸出結(jié)果設(shè)置為0,P=0.3,圖2(c)為根據(jù)已經(jīng)采樣的像素采用開關(guān)中值濾波(Switch Median Filter,SMF)[15]算法恢復(fù)出鄰域內(nèi)未采樣像素的結(jié)果。從圖2可以看出重建圖像與原始圖像之間不存在明顯視覺差異。因此,在高速攝像機成像采集過程中,對CCD 或CMOS 采集的圖像像素執(zhí)行伯努利采樣操作,抽取部分像素,可達到圖像壓縮目的。
圖2 圖像伯努利采樣與重建效果示例Fig.2 Image Bernoulli sampling and reconstruction effect example
在具體實現(xiàn)時,可根據(jù)式(1)設(shè)置一個采樣標(biāo)記矩陣,根據(jù)標(biāo)記矩陣中標(biāo)志位執(zhí)行抽樣操作。具體方法為:根據(jù)設(shè)定的壓縮率r,設(shè)定伯努利分布參數(shù)P=1–r,根據(jù)壓縮圖像尺寸(m×n)生成一個m×n維的標(biāo)記矩陣:
標(biāo)記矩陣F中元素取值為1 或0,1 表示當(dāng)前位置像素進行采樣,0 表示當(dāng)前位置像素不采樣,m、n分別為圖像高度和寬度。
伯努利采樣圖像壓縮過程如圖3(a)所示,在攝像機端,通過標(biāo)記矩陣F判定原始圖像Io中像素是否被采樣,重新排序后得到壓縮圖像Ic。
圖3 伯努利采樣圖像壓縮及圖像重構(gòu)算法流程Fig.3 The framework of image compression with Bernoulli sampling and image reconstruction
伯努利采樣圖像壓縮本質(zhì)上是對原始數(shù)據(jù)在空域進行隨機抽樣,因此,圖像解壓就是利用采樣的已知像素去估計未采樣的未知像素的過程。計算機端的具體流程如圖3(b)所示:首先,根據(jù)標(biāo)記矩陣F計算壓縮圖像Ic中像素在原始圖像Io中的坐標(biāo),并保存為查找表(Look Up Table,LUT);其次,根據(jù)查找表對壓縮圖像進行重排列,得到與Io同分辨率的重排列圖像Is;最后,根據(jù)圖像局部鄰域相關(guān)先驗知識,選擇合適的方法,根據(jù)采樣像素估計出未采樣像素,完成圖像解壓縮(重建)。
當(dāng)把重排序圖像Is中的未采樣像素取值為0 時,Is中未采樣像素估計問題可視為圖像沖擊噪聲去除問題。中值濾波是最早應(yīng)用的沖擊噪聲去除方法。因中值濾波并未檢測、識別沖擊噪聲,導(dǎo)致找到的中值仍可能包含噪聲,使圖像修復(fù)效果欠佳。針對該問題,Chen 等[15]提出了開關(guān)中值濾波算法,在進行中值濾波前,先對圖像鄰域內(nèi)像素執(zhí)行沖擊噪聲檢測,僅利用非噪聲圖像像素估計中值。與中值濾波方法相比,開關(guān)中值濾波算法在估計中值時,利用的是真實的非噪聲像素,從而大幅提升了重建效果。本文選擇開關(guān)中值濾波算法用于未采樣像素估計。
當(dāng)圖像壓縮率增大時,相同局部鄰域內(nèi)采樣像素數(shù)量減小。比如:當(dāng)壓縮率為50%時,3×3 鄰域內(nèi)約有4 像素被采樣;當(dāng)壓縮率為90%時,3×3 鄰域內(nèi)可能沒有像素被采樣,此時將無法進行未采樣像素估計。在開關(guān)中值濾波算法[15]中,可以采用增大鄰域尺寸的方式解決,但增大鄰域尺寸會導(dǎo)致圖像重建時間大幅增加。針對該問題,本文對開關(guān)中值濾波算法[15]進行了改進,提出了小尺寸鄰域迭代開關(guān)中值濾波算法?;舅枷胧牵涸O(shè)定局部鄰域窗口尺寸后,進行循環(huán)迭代,每一輪循環(huán)在對未采樣像素進行估計時,只在設(shè)定尺寸鄰域內(nèi)進行未知像素估計,直至所有未采樣像素都完成重建;在循環(huán)迭代過程中,重建的像素在下一輪循環(huán)迭代中視為已采樣像素。小尺寸鄰域迭代重建方法可以適應(yīng)任意壓縮率圖像,當(dāng)壓縮率低時,迭代次數(shù)較少;當(dāng)壓縮率高時,迭代次數(shù)增加。在高壓縮率情況下,與采用更大鄰域尺寸的開關(guān)中值濾波算法[15]相比,圖像重建速度更快。
選用圖2中的Lena 圖像(Image 1)和原子彈爆炸圖像(Image 2)對本文方法進行驗證,圖像壓縮率分別設(shè)定為90%、95%、99%。TOM 是高速攝像機通過降低圖像分辨率提升幀率的方法,為此,本文模擬高速攝像機TOM 成像方式,并采用插值方法對低分辨率圖像進行放大。定量分析采用常用圖像質(zhì)量評價標(biāo)準(zhǔn):峰值信噪比PSNR、圖像結(jié)構(gòu)相似性SSIM。PSNR 定義為:
其中,I(i,j)表示大小為m×n的原始圖像像素,K(i,j)表示測試圖像像素。
SSIM 的定義如下:
其中,μI、μK為原始圖像、測試圖像像素的均值;σI、σK為原始圖像、測試圖像像素的方差;σI,K為原始圖像、測試圖像像素的協(xié)方差;c1=(k1L)2、c2=(k2L)2為用于維持穩(wěn)定的常數(shù),L為像素值的動態(tài)范圍,k1=0.01,k2=0.03。
圖4為Image 2 分別在99%、95%、90%壓縮率下的圖像壓縮、重建結(jié)果,圖5為Image 1、Image 2在不同壓縮率條件下的PSNR、SSIM 定量測量結(jié)果。其中,TOM 為高速攝像機低分辨率成像+插值放大方法,BCI 為本文方法。
圖4 Image 2 試驗結(jié)果Fig.4 Experimental results of image 2
圖5 PSNR、SSIM 定量分析結(jié)果Fig.5 The quantity comparison results of PSNR and SSIM
采用小尺寸鄰域迭代開關(guān)中值濾波算法進行壓縮圖像重建時,在壓縮率為99%時,鄰域尺寸設(shè)置為11×11,經(jīng)5 次迭代,完成圖像重建;在壓縮率為95%時,鄰域尺寸設(shè)置為7×7,經(jīng)4 次迭代,完成圖像重建;在壓縮率為90%時,鄰域尺寸設(shè)置為5×5,經(jīng)2 次迭代,完成圖像重建。
與圖1(b)中單像素相機[9]獲取的R 字母圖像進行對比,單像素相機進行了1300 次測量,重建圖像分辨率為256 像素×256 像素,本文等效壓縮率為98%,對比結(jié)果如圖6所示。
圖6 與單像素相機壓縮成像結(jié)果對比Fig.6 Comparison results with single pixel camera
在圖4中,第一行圖像為Image 2 的原始圖像;第二行為TOM 采集圖像,從左至右,分別為按原圖像分辨率的0.01、0.05、0.10 大小進行降分辨率成像(TOM 采集圖像實際尺寸較小,為了方便展示,對采集圖像進行了一定放大);第三行為TOM 采集圖像進行插值放大的結(jié)果;第四行為伯努利采樣圖像,未采樣像素賦值為0,從左至右,壓縮率r分別為99%、95%、90%;第五行為采用小尺寸鄰域迭代開關(guān)中值濾波算法對第四行采樣圖像重建的結(jié)果。
在圖4中,壓縮率達到極限(99%)時,TOM 采集圖像信息損失嚴(yán)重,在插值放大圖像中,已無法看出與原子彈爆炸相關(guān)的任何影像;而本文方法(第五行)保留了原子彈爆炸場景粗略信息,可以辨別。隨著壓縮率的降低,重建圖像細節(jié)不斷豐富。當(dāng)壓縮率降到90%時,本文算法可以清晰地展現(xiàn)原子彈爆炸影像,但TOM+插值方法結(jié)果仍較模糊。
從圖4可以看出,隨著壓縮率增大,圖像壓縮后空間尺度分辨率降低。比如:當(dāng)壓縮率為90%時,從概率上看,在3×3 鄰域內(nèi)會采樣1 像素,從而部分保留3×3 鄰域空間尺度信息;當(dāng)壓縮率增大到99%時,從概率上看,在10×10 鄰域內(nèi)會采樣1 像素,此時,僅能部分保留10×10 鄰域空間尺度信息,與90%壓縮率相比,損害了圖像空間尺度信息。不過,從圖4中的重建圖像細節(jié)可以看出,本文算法的空間尺度損失明顯小于TOM+插值方法。對于高速成像時間尺度,存在同樣的規(guī)律。
圖5是兩種方法進行PSNR、SSIM 定量對比結(jié)果。其中,PSNR 越大效果越好,SSIM 越接近1 效果越好。在兩個定量對比中,本文算法都優(yōu)于TOM+插值方法。采用本文方法,Image 1、Image 2 的PSNR 在壓縮率為99%時達到了20.20、25.60,在壓縮率為90% 時達到了26.00、32.47。由此可見,本文算法可在一定信噪比條件下實現(xiàn)高速攝像機圖像高效壓縮。
圖6(a)為單像素相機[9]成像目標(biāo),圖6(b)和(c)分別為單像素相機和本文方法結(jié)果??梢钥闯?,與單像素相機重建圖像相比,本文算法得到的圖像細節(jié)更豐富,且圖像尺寸與真實圖像更接近。由于單像素相機需要特殊光學(xué)單元用于模擬壓縮感知過程,因此,它無法直接與現(xiàn)有高速攝像機進行結(jié)合;同時,單像素相機1 次只能獲取1 個測量值,獲取目標(biāo)圖像需多次測量,這使單像素相機難以應(yīng)用于高速成像場景。本文算法僅在高速成像采集過程中對圖像傳感器獲取的圖像執(zhí)行伯努利采樣操作,無需額外光學(xué)機構(gòu),只需在圖像采集軟件上進行適當(dāng)調(diào)整即可應(yīng)用于現(xiàn)有高速攝像機中。當(dāng)采用FPGA 實現(xiàn)上述操作時,還可實現(xiàn)與像素時鐘同步的像素流實時壓縮。
本文方法可適用于以下高速攝像機:科學(xué)級高速相機,如FASTCAM,其成像分辨率為1024 像素×1024 像素,滿畫幅幀率為20000 幀/s,圖像位深為8 bits 時,數(shù)據(jù)帶寬為20 GB/s;工業(yè)級高速相機,比如NXA5,其分辨率為2560 像素×1920 像素,滿畫幅幀率為700 幀/s,位深為8 bits 時,傳輸容量為3.5 GB/s。上述兩類相機的數(shù)據(jù)傳輸帶寬需求,都超過了現(xiàn)有最快攝像機數(shù)據(jù)接口CLHS-F 的極限(1.2 GB/s)。針對該問題,現(xiàn)有高速攝像機采用具有更高數(shù)據(jù)帶寬的DDR 內(nèi)存進行海量高速圖像序列存儲。DDR 成本較高,容量有限。比如FASTCAM 8GB 型高速相機,在分辨率為1024 像素×1024 像素,幀率為20000幀/s 時,只能拍攝0.399 s。此外,DDR 內(nèi)存是斷電數(shù)據(jù)丟失的存儲介質(zhì),在使用過程中必須持續(xù)供電,并在拍攝結(jié)束后需及時將數(shù)據(jù)轉(zhuǎn)移到固態(tài)非失電存儲介質(zhì)中(如SSD 硬盤)。若采用本文方法對其進行軟件改造,在相同成像參數(shù)條件下,當(dāng)壓縮率設(shè)置為90%時,拍攝時長可達到3.99 s。同樣地,對于工業(yè)級高速相機,當(dāng)壓縮率設(shè)置為85%時,即可采用現(xiàn)有標(biāo)準(zhǔn)數(shù)據(jù)接口進行實時數(shù)據(jù)傳輸,壓縮后數(shù)據(jù)帶寬需求為0.52 GB/s,采用CLHS-F 接口即可。因此,本文方法與磁盤矩陣結(jié)合,即可實現(xiàn)長時高速成像。
在高速成像過程中,采用伯努利采樣方法對圖像進行隨機采樣存儲,可以達到高速圖像實時壓縮目的,顯著降低高速攝像機數(shù)據(jù)傳輸帶寬和存儲容量需求,延長高速攝像機拍攝時長。與壓縮感知技術(shù)相比,伯努利采樣圖像壓縮無需額外的光學(xué)單元,僅需對現(xiàn)有高速攝像機軟件進行改造即可實現(xiàn)。特別地,當(dāng)采用FPGA 時,可以極小的硬件成本實現(xiàn)與像素時鐘同步的像素流實時壓縮。
在高速序列成像中,時空域也存在較大冗余,本文僅展示了空域伯努利采樣壓縮,未來將開展時空域采樣壓縮以及感興趣對象的非均勻采樣壓縮,以進一步提升高速成像序列壓縮率,并更多地保留感興趣對象的細節(jié)。雖然本文提出的小尺寸鄰域迭代開關(guān)中值濾波算法實現(xiàn)了未采樣圖像重建,但重建圖像細節(jié)還需提升,未來將采用稀疏表示[16-17]、張量表示[18]、自動編碼器[19]等方法進一步提升壓縮圖像重建質(zhì)量。