鄭耿忠,宋亞男,徐榮華,黎兆鍇,李發(fā)義
(廣東工業(yè)大學(xué) 自動(dòng)化學(xué)院,廣東 廣州 510006)
波浪作為海洋中常見的物理現(xiàn)象,能反應(yīng)出海洋的諸多信息,所以監(jiān)測(cè)和研究波浪具有重要的研究意義和應(yīng)用價(jià)值。其中,立體成像技術(shù)提供了廉價(jià)又不失準(zhǔn)確的大范圍的波浪觀測(cè),并且從中推斷出波浪的實(shí)時(shí)信息。隨著技術(shù)的發(fā)展,波浪測(cè)量的精度越來越高。波浪測(cè)量技術(shù)也從基于幾何約束[1]、到基于雙目視覺[2]、到基于神經(jīng)網(wǎng)絡(luò)[3]逐步迭代更新。本文使用Pixel2Mesh深度學(xué)習(xí)網(wǎng)絡(luò)[4]三維重建波浪,Pixel2Mesh以波浪RGB圖像作為輸入,使用圖卷積神經(jīng)網(wǎng)絡(luò)[5](Graph Convolutional Network, GCN)處理輸出的三維網(wǎng)格,并逐漸將其形變?yōu)閷?duì)應(yīng)的波浪表面。一方面,深度學(xué)習(xí)網(wǎng)絡(luò)在擁有大量數(shù)據(jù)后通過訓(xùn)練獲得強(qiáng)大的非線性映射能力,另一方面,訓(xùn)練后的網(wǎng)絡(luò)能以極低的計(jì)算代價(jià)生成重建波浪表面。然而,僅僅使用Pixel2Mesh不能大量恢復(fù)波浪細(xì)節(jié),重建的波浪易在波浪邊緣出現(xiàn)網(wǎng)格點(diǎn)分布不均勻的情況,或者是一些“洞”(沒有匹配特征點(diǎn))出現(xiàn)在高波浪的背面,或者在沒有明顯光度特征的區(qū)域(如破碎波形成的平坦白頂區(qū)域)位置。優(yōu)化三維重建的結(jié)果模型,提高精度可以借助波浪的先驗(yàn)知識(shí)。比如波浪的時(shí)間連續(xù)性,波浪觀測(cè)往往是一段時(shí)間內(nèi)的連續(xù)觀測(cè),其以圖像序列或視頻的方式儲(chǔ)存和分析,序列中波浪隨時(shí)間的起伏必然是連續(xù)的。本文在重建和分析波浪時(shí)結(jié)合這一先驗(yàn)知識(shí),優(yōu)化重建精度;針對(duì)“孔洞”問題,聯(lián)合傳統(tǒng)插值和離散卷積神經(jīng)網(wǎng)絡(luò)方式進(jìn)行深度補(bǔ)全。
波浪三維重建的架構(gòu)如圖1所示,使用Pixel2Mesh三維重建網(wǎng)絡(luò)重建出波浪序列中連續(xù)三幀的波浪三維模型,后續(xù)設(shè)計(jì)連續(xù)幀組合模塊和深度補(bǔ)全模塊進(jìn)行三維模型優(yōu)化。Pixel2Mesh是一個(gè)端到端的深度學(xué)習(xí)三維重建網(wǎng)絡(luò),結(jié)合輸入的波浪圖像frame逐步迭代推理出精確的波浪模型mesh。本文基于此mesh進(jìn)行模型的后續(xù)優(yōu)化,由于序列的時(shí)間連續(xù)性,用下標(biāo)t-1,t,t+1表示連續(xù)的3幀并加權(quán)組合,生成相對(duì)平滑的波浪表面同時(shí)生成投影圖projection。投影時(shí),以海平面作為投影平面,歸一化波浪高度作為像素值。投影后,將網(wǎng)格表示的三維模型轉(zhuǎn)換為單通道二維圖像。然后,進(jìn)行深度補(bǔ)全,通過反距離加權(quán)插值(Inverse Distance Weighted,IDW)粗略補(bǔ)全生成projection’;同時(shí),補(bǔ)全前后的projection相減生成對(duì)應(yīng)的掩膜mask,將mask與projection’維度疊加輸入卷積神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)對(duì)粗補(bǔ)全過的表面進(jìn)行優(yōu)化,同時(shí)均勻化了Pixel2Mesh重建表面時(shí)分布不均的網(wǎng)格點(diǎn),恢復(fù)波浪細(xì)節(jié),如圖1所示。
圖1 Pixel2mesh網(wǎng)絡(luò)架構(gòu)
由于波浪在時(shí)間和空間上都是連續(xù)的,所以連續(xù)(相鄰)幀之間的波浪存在時(shí)間連續(xù)性。如果連續(xù)幀間隔時(shí)間足夠短,可以把兩幀中的波浪近似為相同的。由于數(shù)據(jù)集中波浪圖像是定時(shí)等間隔拍攝的或是以視頻的形式拍攝的,按照這個(gè)思想,可以利用連續(xù)幀平滑當(dāng)前幀的波浪:將3幀分別命名為mesht-1,mesht,mesht+1,其中當(dāng)前幀為mesht,以平滑當(dāng)前幀為目的,將三維網(wǎng)格投影至平面后得到投影圖projection(簡(jiǎn)稱pro,prot為當(dāng)前幀投影圖),此時(shí)當(dāng)前幀的投影圖應(yīng)該滿足等于連續(xù)三幀的加權(quán)平均,組合公式如下,其中α∈[0,1]是一個(gè)加權(quán)參數(shù),在實(shí)驗(yàn)中α=0.8是一個(gè)相對(duì)較優(yōu)的值。
prot+1
(1)
深度補(bǔ)全模塊是使用IDW粗略地補(bǔ)全投影圖,IDW又稱反距離加權(quán)法,是一種傳統(tǒng)的圖像插值方法,IDW權(quán)重ωi公式如下,其中Di為距離,n為鄰點(diǎn)總數(shù):
(2)
Di表示離散點(diǎn)(xi,yi)到插值點(diǎn)(x,y)的距離,x、y分別為二維圖中的橫縱坐標(biāo)。
(3)
在插值公式中,p表示一點(diǎn)像素值。
(4)
粗略的投影圖往往傾向于非常平滑地關(guān)閉“孔洞”,而如果使用小窗口的離散卷積神經(jīng)網(wǎng)絡(luò)[6]也可以通過訓(xùn)練實(shí)現(xiàn)關(guān)閉孔洞,但是網(wǎng)絡(luò)越深,得出的結(jié)果越平滑。而如果使用多尺度的網(wǎng)絡(luò),又會(huì)變得難以訓(xùn)練,所以本文使用兩者結(jié)合的方式,即保留了網(wǎng)絡(luò)訓(xùn)練的能力也不會(huì)使得補(bǔ)全的表面過于平滑。使用離散卷積神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)結(jié)構(gòu)見圖2(下)深度補(bǔ)全模塊。網(wǎng)絡(luò)輸入也可以看做一種擴(kuò)展維度的操作:將IDW補(bǔ)全后的二維圖減去起始投影圖pro得到單通道m(xù)ask,與補(bǔ)全后的二維圖一起送入卷積神經(jīng)網(wǎng)絡(luò)。其中,原來的“孔洞”在mask中往往為1,而沒有改動(dòng)的地方mask為0或者接近0。網(wǎng)絡(luò)中,卷積神經(jīng)網(wǎng)絡(luò)對(duì)稀疏數(shù)據(jù)進(jìn)行一系列4次的ReLU激活的稀疏卷積。最后,得到最終的輸出波浪曲面。
圖2 波浪三維重建框架(上),深度補(bǔ)全模塊(下)
為了驗(yàn)證本文算法的有效性,使用2011年在黑海海洋水文物理研究所研究平臺(tái)上獲得的雙目系統(tǒng)記錄數(shù)據(jù)集[7],該平臺(tái)位于黑海Katsiveli海岸(44.39°N, 33.98°E)附近500 m的海岸;觀測(cè)區(qū)水深約為30 m;雙目相機(jī)安裝在海面以上11 m,使用一對(duì)同步的500萬像素(2 048×2 456pixels) BM-500GE JAI相機(jī),焦距5 mm。此次訓(xùn)練設(shè)備參數(shù)如下:基于Ubuntu16.04操作系統(tǒng),python2.7+Tensorflow1.3.0+cuda8.0環(huán)境,CPU為Intel i5-7400,主頻率為3.00 GHz,GPU使用NVIDIA GeForce GTX 1050。
由于卷積神經(jīng)網(wǎng)絡(luò)最終的輸出為二維的波浪高度圖,故采用傳統(tǒng)的圖像質(zhì)量客觀評(píng)價(jià)方法作為指標(biāo)。圖像質(zhì)量客觀評(píng)價(jià)方法是根據(jù)人眼的視覺系統(tǒng)建立的數(shù)學(xué)模型,并通過具體的公式計(jì)算表達(dá)圖像間的相似性,在本文中以結(jié)果波浪與真值的相似性來評(píng)價(jià)結(jié)果波浪的精度。本文使用兩個(gè)指標(biāo):均方誤差(MSE,Mean Squared Error)和峰值信噪比(PSNR,Peak Signal to Noise Rate)。均方誤差公式如下,其中m和n為圖像的長(zhǎng)和寬,i和K分別為做對(duì)比的兩個(gè)圖像,該值越小說明圖像越接近。
(4)
峰值信噪比是衡量圖像失真或是噪聲水平的指標(biāo)。公式(5)中,MAX表示圖像像素的最大數(shù)值,8bit圖像最大值為255。MSE為均方差,該值越大說明圖像越接近。
(5)
對(duì)比Pixel2Mesh三維重建得到的波浪(未經(jīng)過優(yōu)化)和經(jīng)過本文算法優(yōu)化后的波浪,計(jì)算評(píng)價(jià)指標(biāo),驗(yàn)證優(yōu)化后的波浪更加接近數(shù)據(jù)集中的真值。如表1—2所示,優(yōu)化后的波浪的指標(biāo)更好。與重建精度相比,未經(jīng)過優(yōu)化的有所提高。
表1 經(jīng)過優(yōu)化前后的MAE
表2 經(jīng)過優(yōu)化前后的PSNR
為了對(duì)結(jié)果進(jìn)行定性對(duì)比,將二維投影圖以散點(diǎn)形式繪制出來。其中,點(diǎn)的像素值代表點(diǎn)的高度,像素點(diǎn)越黑表示該點(diǎn)高度越高。圖3中左右分別為重建后未優(yōu)化、重建后優(yōu)化的散點(diǎn)圖。從圖3可以看出,優(yōu)化后的散點(diǎn)更加均勻。每一行顯示了一個(gè)場(chǎng)景,第一行中間部分的散點(diǎn)經(jīng)過優(yōu)化后分布更加均勻;第二、三行對(duì)于散點(diǎn)造成的“孔洞”(右上部分)也能較好地閉合起來。
圖3 波浪三維重建結(jié)果定性對(duì)比
本文研究了基于Pixel2Mesh的波浪三維重建時(shí),后續(xù)優(yōu)化提升精度的步驟。本研究利用波浪序列的連續(xù)性特點(diǎn)約束最終的輸出波浪。訓(xùn)練后,本算法可以以更高的精度重建波浪,提供波浪測(cè)量數(shù)據(jù)。實(shí)驗(yàn)表明,新方法有更好的指標(biāo)表現(xiàn),更加接近波浪真實(shí)值。