孟天禹,陳春雨,趙丹丹,趙金龍
哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001
圖像修復(fù)算法是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要的課題,通常是對(duì)于殘缺的RGB 圖片進(jìn)行修復(fù),對(duì)殘缺的位置進(jìn)行補(bǔ)充,從而使得修復(fù)后的圖片變得合理或者與破損前的原圖接近。近年來深度學(xué)習(xí)技術(shù)和計(jì)算機(jī)并行計(jì)算能力快速發(fā)展,使用深度學(xué)習(xí)技術(shù)的圖像修復(fù)算法的效果也得到了大幅的提升,相較于傳統(tǒng)的方法只能得出模糊的修復(fù)結(jié)果,最新的圖像修復(fù)算法已經(jīng)能夠得出語義合理的修復(fù)效果,在顏色、紋理甚至結(jié)構(gòu)信息上都能達(dá)到人眼不容易分辨的水平[1]。隨著深度學(xué)習(xí)技術(shù)在RGB 圖片上的廣泛應(yīng)用,深度圖像的處理算法也在快速發(fā)展。得益于微軟Kinect 以及英特爾RealSense 等消費(fèi)級(jí)深度相機(jī)的普及,越來越多的研究人員開始專注于深度圖像的各種處理算法。然而圖像修復(fù)算法在深度圖像中的應(yīng)用并沒有得到廣泛的關(guān)注。一個(gè)在深度圖像中較為重要的課題是深度補(bǔ)全,由于深度相機(jī)在獲取圖片時(shí)依賴結(jié)構(gòu)光投射到被拍攝物體上,再由專門的紅外攝像頭進(jìn)行采集,以獲取目標(biāo)物體到深度相機(jī)的距離。在這一過程中,如果被攝物體與背景有較大的距離或者場景中包含窗戶或較遠(yuǎn)的物體時(shí),極易在獲取到的深度圖像中產(chǎn)生無效像素[2],深度補(bǔ)全即研究如何正確修復(fù)這些無效像素。由于無效像素的存在有特定的原因,比如經(jīng)常出現(xiàn)在較大面積的窗戶或兩物體的邊緣位置,因此可以有針對(duì)性地對(duì)這2 種情況進(jìn)行深度的填充[3]。通常只需要將周圍物體的深度延伸至無效像素位置,即可獲取到較為合理的補(bǔ)全結(jié)果。深度補(bǔ)全中較為傳統(tǒng)的方法主要是通過濾波的方式,比如主要針對(duì)深度圖像中較小孔洞的像素濾波[3],可使用周圍像素的眾數(shù)將深度圖像中較小的噪聲進(jìn)行填充,這種方法對(duì)于深度圖像中常見的無法測量的小孔洞可以獲得合理的補(bǔ)全結(jié)果,但是對(duì)于較大孔洞無法修復(fù);自適應(yīng)雙邊濾波[4]可以針對(duì)不同孔洞的大小自適應(yīng)地調(diào)節(jié)核的大小,對(duì)一些較大的孔洞進(jìn)行修復(fù),但是計(jì)算量較大,而且對(duì)于較大的孔洞無法獲得語義合理的結(jié)果;基于彩色圖和深度圖連續(xù)性的深度圖增強(qiáng)方法[5]引入了彩色圖像作為引導(dǎo),有效提升了深度圖像的補(bǔ)全效果,但是由于需要與深度圖像對(duì)齊的彩色圖像,需要的預(yù)處理步驟較多。邊緣引導(dǎo)的深度圖增強(qiáng)方法[6]使用了完整的邊緣作為引導(dǎo),修復(fù)效果相較于傳統(tǒng)的濾波方法有較大的提升,但同樣需要彩色圖像的輔助。
在實(shí)際的應(yīng)用中,圖像的破損可以是任意大小、任意位置、任意形狀的,而僅靠深度補(bǔ)全往往不能得到理想的效果。因此本文的研究目的是對(duì)深度圖像中任意形式的缺失進(jìn)行修復(fù)。本文針對(duì)存在破損的深度圖像,通過應(yīng)用較為先進(jìn)的圖像修復(fù)算法以及曲面法線圖輔助深度圖像修復(fù)的方法,提出了一種更為有效和快速的深度圖像修復(fù)方法。
圖像修復(fù)算法的發(fā)展過程可以粗略地分為2 個(gè)階段。傳統(tǒng)的圖像修復(fù)算法中較有代表性的是Patch Match 方法[7],其主要思想是挑選完好圖像中較為匹配的部分作為補(bǔ)丁來修復(fù)破損區(qū)域,這種傳統(tǒng)方法取得的修復(fù)效果往往不盡如人意。較為先進(jìn)的圖像修復(fù)算法都會(huì)使用深度學(xué)習(xí)技術(shù),例如早期的GL 方法[8],通過兩路網(wǎng)絡(luò)分別改善修復(fù)圖像的整體效果和局部細(xì)節(jié),使得修復(fù)的圖像更加合理。在應(yīng)用了深度學(xué)習(xí)技術(shù)的圖像修復(fù)算法較好地修復(fù)圖像紋理的同時(shí),如何恢復(fù)圖像破損區(qū)域正確的結(jié)構(gòu)和語義信息成為了一個(gè)難題。Edge connect 方法[9]提出了一種較為新穎的解決方案:首先對(duì)破損的圖像提取出邊緣輪廓,之后用一個(gè)輔助的修復(fù)網(wǎng)絡(luò)將殘缺的邊緣圖修復(fù)出完整的破損圖像邊緣,最后利用修復(fù)出的邊緣指引最終的圖像修復(fù)結(jié)果。這種方法較好地提升了圖像修復(fù)算法對(duì)于破損區(qū)域結(jié)構(gòu)的修復(fù)。其他如 Foreground-aware[10]和 Gated Convolution[11]方法,都使用到了邊緣、前景物體等輔助信息指引最終修復(fù)的思想,這些方法都使得圖像修復(fù)算法得到很好的進(jìn)步。本文方法也利用這種思想,對(duì)深度圖像修復(fù)的效果進(jìn)行了提升。
曲面法線是一種深度圖像或點(diǎn)云數(shù)據(jù)中用于表示局部的平面朝向方法,其廣泛應(yīng)用在同步定位與建圖(simultaneous localization and mapping,SLAM)、三維重建[12]等課題中。由于曲面法線在同一平面上可以表示出相近的特征,因此相較于單純的深度圖像,可以更好地表達(dá)語義信息[13]。由于曲面法線的每一個(gè)法向量都包含x、y、z這3 個(gè)坐標(biāo),正好可以對(duì)應(yīng)彩色圖像的RGB 3 個(gè)通道,因此曲面法線可以以彩色圖像的形式保存。
對(duì)于給出的單張破損的深度圖像和指示破損區(qū)域的掩模,本文方法的目的是修復(fù)出深度合理的完整深度圖像,主要結(jié)構(gòu)如圖1 所示。本方法主要包含3 個(gè)步驟:1)對(duì)破損的深度圖像計(jì)算出殘缺的曲面法線圖;2)通過曲面法線預(yù)測網(wǎng)絡(luò)修復(fù)出完整的曲面法線圖;3)利用曲面法線指引網(wǎng)絡(luò),結(jié)合修復(fù)后的曲面法線圖對(duì)破損的深度圖像進(jìn)行補(bǔ)全。
圖1 曲面法線引導(dǎo)的深度圖像修復(fù)策略
較為廣泛接受的曲面法線計(jì)算方式為,將像素i位置的一個(gè)鄰域認(rèn)為屬于同一個(gè)切平面,使用最小二乘法擬合出一條合理的曲面法向量[13]。在本文的方法中,使用簡化的計(jì)算方式,將像素周圍的4 個(gè)點(diǎn)認(rèn)為屬于同一個(gè)切平面,并使用橫向向量和縱向向量叉乘的方式,計(jì)算出此像素位置的曲面法向量。
如圖2 所示,將深度圖像中的每一個(gè)像素認(rèn)為是三維空間中的一個(gè)點(diǎn),像素在深度圖中的像素值作為其在三維空間中的z分量,即可獲得像素i位置鄰域內(nèi)的上下左右4 個(gè)點(diǎn)。從4 個(gè)點(diǎn)的坐標(biāo)可以求取2 個(gè)向量,分別為橫向向量vver和縱向向量vhor,將2 向量叉乘即可得到像素i位置的曲面法向量vnor。
圖2 深度圖像及對(duì)應(yīng)曲面法線圖
式(1)~(3)得到的曲面法向量并不是一個(gè)合適的表達(dá),將其歸一化后,得到的曲面法向量的x、y、z坐標(biāo)范圍均在[-1,1],進(jìn)而將其線性地映射到[0,255]的整數(shù)范圍內(nèi),即可對(duì)應(yīng)彩色圖像的RGB 3 個(gè)通道。對(duì)深度圖像中的每一個(gè)像素位置進(jìn)行周圍橫、縱向量的叉乘,歸一化等步驟的計(jì)算,即可得到深度圖像對(duì)應(yīng)的曲面法線圖,如圖3 所示。
圖3 曲面法線計(jì)算示意
在運(yùn)用深度學(xué)習(xí)技術(shù)的多種圖像修復(fù)算法中,門限卷積[8]是一種較為簡單但很有效的算法。由于破損的深度圖像在輸入修復(fù)網(wǎng)絡(luò)時(shí),并非每一個(gè)像素點(diǎn)都能提供足夠有效的信息供網(wǎng)絡(luò)學(xué)習(xí)和推測,例如破損區(qū)域的像素[14]。與此同時(shí),位于缺損區(qū)域距離不同的像素點(diǎn),也對(duì)網(wǎng)絡(luò)預(yù)測提供不同價(jià)值的信息。因此門限卷積學(xué)習(xí)每一層特征的一個(gè)掩模,其值范圍為[0,1],用以給每一個(gè)特征的通道分配不同的權(quán)重,相乘之后即可突出有利于推測缺損像素的特征,而弱化甚至忽略無效的特征。通過網(wǎng)絡(luò)自主學(xué)習(xí)掩模,可以更好地生成修復(fù)結(jié)果。
通過某種輔助信息指引圖像修復(fù)過程的方法已經(jīng)成為近年來先進(jìn)的圖像修復(fù)算法常用的策略。而對(duì)于深度圖像,有著一種天然且優(yōu)越的輔助信息,那就是曲面法線圖。圖1 為使用曲面法線圖輔助修復(fù)深度圖像的步驟,對(duì)于存在破損的深度圖像,可以對(duì)其計(jì)算出存在缺損的曲面法線圖像,使用二維圖像修復(fù)網(wǎng)絡(luò)將曲面法線圖修復(fù)出相同的顏色,得到合理且完整的曲面法線圖。將曲面法線圖與待修復(fù)的深度圖像在通道上進(jìn)行疊加,使用另外的二維圖像修復(fù)網(wǎng)絡(luò)結(jié)合曲面法線圖提供的信息即可修復(fù)出完整的深度圖像。
本文實(shí)驗(yàn)部分需要已有的大量深度圖像作為訓(xùn)練數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)需要包含大量的場景及深度信息供網(wǎng)絡(luò)學(xué)習(xí)。因此,本文實(shí)驗(yàn)部分做了如下的實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)備工作。
2.1.1 NYUv2 數(shù)據(jù)集
因此,高校輔導(dǎo)員要全面了解新媒體發(fā)展給高校學(xué)生帶來的影響,通過運(yùn)用新媒體技術(shù)推動(dòng)高校學(xué)生思想素質(zhì)的提升,促使學(xué)生合理使用各種新媒體,接受積極有益的信息。
本文采用NYUv2 數(shù)據(jù)集[15]進(jìn)行實(shí)驗(yàn)。NYUv2數(shù)據(jù)集是由紐約大學(xué)通過微軟Kinect 深度攝像頭采集的多種室內(nèi)場景下的RGB 圖像和深度圖像,由視頻序列中采樣得出。NYUv2 數(shù)據(jù)集包含了464個(gè)來自3 個(gè)不同城市的不同場景,并包含407 024個(gè)無標(biāo)簽的RGB-D 幀。其中帶有標(biāo)簽的數(shù)據(jù)為1 449 幀,成對(duì)的RGB 彩色圖像和深度圖像已經(jīng)經(jīng)過了對(duì)齊處理。本文采用NYUv2 數(shù)據(jù)集中帶有標(biāo)注的1 449 張成對(duì)的RGB-D 圖像,并隨機(jī)地選取其中1 304 張作為訓(xùn)練集數(shù)據(jù),剩余的145 張作為測試集數(shù)據(jù)用于對(duì)比實(shí)驗(yàn)。訓(xùn)練集與測試集數(shù)據(jù)量比例約為9∶1。
2.1.2 數(shù)據(jù)預(yù)處理
NYUv2 數(shù)據(jù)集中的深度圖像經(jīng)過了預(yù)處理過程,與RGB 彩色圖像對(duì)齊。深度圖像中的每一個(gè)像素點(diǎn)代表空間中目標(biāo)和攝像頭之間的距離。由于不同場景下物體距離攝像頭的距離不同,因此每張深度圖像的像素值分布也不同。
本文實(shí)驗(yàn)將每張深度圖像中的像素值歸一化至0~1,并以16 位深度的圖像格式保存。曲面法線圖像計(jì)算得出后以三通道RGB 圖像的形式保存。除了深度圖像和曲面法線圖像的準(zhǔn)備,實(shí)驗(yàn)中還需要進(jìn)行圖像破損部位的隨機(jī)生成。對(duì)于圖像破損,本文實(shí)驗(yàn)要求做到破損部位的形狀、面積、位置都是隨機(jī)的。利用Open CV 圖像處理庫,可以實(shí)現(xiàn)在模型訓(xùn)練過程中同步隨機(jī)地生成不同的掩模。掩模的生成過程是隨機(jī)地生成一些直線、圓和弧線,其大小、數(shù)量和位置均使用隨機(jī)生成的數(shù)字。掩模的大小與數(shù)據(jù)集中深度圖像的大小相同,可以通過對(duì)數(shù)據(jù)集中完整圖片的覆蓋,實(shí)現(xiàn)人為制造的破損效果。圖4 展示了部分掩模和對(duì)應(yīng)的破損深度圖像。
實(shí)驗(yàn)首先需要對(duì)曲面法線圖像修復(fù)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。使用隨機(jī)生成的掩模覆蓋訓(xùn)練集中的曲面法線圖以制作殘缺的曲面法線圖,掩模指示位置即為人為制造的缺損部分。將曲面法線圖像對(duì)應(yīng)的缺損位置像素值設(shè)置為1,與掩模圖像疊加為4 通道的輸入矩陣,輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練。網(wǎng)絡(luò)的輸出結(jié)果為3 通道圖像,將輸出結(jié)果對(duì)應(yīng)的缺損位置取出,并與殘缺的曲面法線圖像疊加,即可得到曲面法線圖像的修復(fù)結(jié)果。將修復(fù)結(jié)果與完整的曲面法線圖像計(jì)算損失,不斷反向傳播和迭代。當(dāng)損失值趨于穩(wěn)定時(shí),可以觀察到網(wǎng)絡(luò)可以對(duì)殘缺的曲面法線圖像實(shí)現(xiàn)修復(fù)。
單獨(dú)訓(xùn)練完成曲面法線圖像修復(fù)網(wǎng)絡(luò)之后,需要訓(xùn)練深度圖像修復(fù)網(wǎng)絡(luò)。深度圖像修復(fù)網(wǎng)絡(luò)與曲面法線圖像修復(fù)網(wǎng)絡(luò)采取同樣的網(wǎng)絡(luò)結(jié)構(gòu)以及訓(xùn)練策略。在訓(xùn)練過程中,輸入采用深度圖像與深度圖像直接計(jì)算得到的完整曲面法線圖像疊加。需要說明的是,只有在測試時(shí),采用深度圖像與曲面法線修復(fù)網(wǎng)絡(luò)的輸出圖像疊加的輸入方式。
2.3.1 消融實(shí)驗(yàn)
圖5 消融實(shí)驗(yàn)結(jié)果對(duì)比
表1 中給出了3 種方式獲取的深度圖像修復(fù)效果的客觀評(píng)價(jià)。從平均絕對(duì)誤差(MAE)、均方根誤差(RMSE)、峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)4 項(xiàng)指標(biāo)可以看出,將真實(shí)的曲面法線作為指引時(shí),相較于直接修復(fù)深度圖像的方式可以獲得較大的提升。將修復(fù)后的曲面法線作為指引時(shí),修復(fù)效果相對(duì)于直接修復(fù)深度圖像仍有一定程度的提升??紤]到在現(xiàn)實(shí)場景中,僅僅根據(jù)缺損深度圖像無法獲得真實(shí)的曲面法線,因此根據(jù)修復(fù)后的曲面法線作為指引修復(fù)深度圖像的方式更符合實(shí)際情況。
表1 消融實(shí)驗(yàn)結(jié)果對(duì)比
2.3.2 與其他深度修復(fù)方法對(duì)比
本文實(shí)驗(yàn)同時(shí)與其他傳統(tǒng)的深度圖像修復(fù)算法結(jié)果進(jìn)行了對(duì)比,包括傳統(tǒng)的方法有聯(lián)合雙邊濾波方法,以及基于聯(lián)合雙邊濾波改進(jìn)的自適應(yīng)聯(lián)合雙邊濾波方法[14],對(duì)比結(jié)果見圖6 及表2。
圖6 不同方法修復(fù)效果對(duì)比
表2 本文方法與其他方法對(duì)比
值得注意的是,聯(lián)合雙邊濾波和自適應(yīng)雙邊濾波都需要彩色圖像作為指引,相對(duì)于本文方法,這2 種方法都提供了更多的信息。從圖6 中可以看出,本文方法相較于其他方法,修復(fù)出的結(jié)果更加合理。
從表2 中可以看出,相較于其他2 種濾波方法,本文方法在各項(xiàng)指標(biāo)中都取得了更好的效果。
2.3.3 深度傳感器孔洞填充效果
深度圖像修復(fù)常用于對(duì)深度傳感器捕捉到的原始深度圖像進(jìn)行修復(fù)。由于消費(fèi)級(jí)深度傳感器的精度不足,其捕捉到的原始深度圖像通常在物體邊緣存在較大的孔洞以及噪聲。本實(shí)驗(yàn)部分使用英特爾公司生產(chǎn)的Realsense D435 深度傳感器獲取深度圖像,并使用聯(lián)合雙邊濾波、自適應(yīng)聯(lián)合雙邊濾波[14]以及本文方法進(jìn)行修復(fù)孔洞,效果如圖7 所示。
圖7 深度傳感器獲取的原始深度圖孔洞填充效果
由于深度傳感器的限制,無法獲取孔洞位置的真實(shí)深度,因此本部分實(shí)驗(yàn)只能主觀地評(píng)估修復(fù)效果。從圖7 中可以看出,本文方法對(duì)于物體邊緣的空洞修復(fù)效果欠佳??赏茰y是由于本文方法使用的訓(xùn)練集并不存在這種處于物體邊緣的孔洞,且孔洞兩側(cè)通常是不同物體,深度值總是存在突變的情況,修復(fù)出的曲面法線無法提供有效的幫助。因此本文方法針對(duì)深度傳感器獲取的原始深度圖像中的孔洞圖像修復(fù)效果不理想。
2.3.4 深度圖像的物體移除效果
由于本文方法可以對(duì)任意大小和任意形狀的缺損進(jìn)行修復(fù),因此本文方法適用于對(duì)深度圖像中的物體進(jìn)行移除,圖8 展示了通過人為涂畫掩模的方式,將深度圖像中的物體進(jìn)行覆蓋,繼而進(jìn)行修復(fù)的效果。從圖8 中可以看出,人為將深度圖像中的某一物體進(jìn)行涂抹作為掩模制作的缺損深度圖像,經(jīng)過本文方法的修復(fù)后,可以生成合理的背景深度圖,達(dá)到了物體移除的效果。修復(fù)的深度圖像背景連續(xù),且移除部分生成的補(bǔ)丁較為合理。
圖8 深度圖像的物體移除效果
本文通過實(shí)驗(yàn)對(duì)比了3 種不同的深度圖像修復(fù)策略,實(shí)驗(yàn)證明了通過曲面法線指引可以使得深度神經(jīng)網(wǎng)絡(luò)更好地修復(fù)深度圖像。
1)由于在實(shí)際的破損圖像修復(fù)場景中并不能獲取到真實(shí)的曲面法線圖,因此首先要修復(fù)曲面法線,繼而指引修復(fù)深度圖像的策略具有更好的現(xiàn)實(shí)意義。
2)在接下來的研究中,可以通過加入對(duì)抗訓(xùn)練等方式繼續(xù)優(yōu)化曲面法線修復(fù)網(wǎng)絡(luò)和深度圖像修復(fù)網(wǎng)絡(luò)的修復(fù)效果,更加接近真實(shí)的曲面法線圖將會(huì)給深度圖像的修復(fù)帶來更大的提升。