李婧雯 計(jì)忠平
(杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院 浙江 杭州 310018)
浮雕作為一種雕刻藝術(shù),可以根據(jù)不同的空間壓縮程度分為高浮雕和淺浮雕。高浮雕在造型上更接近完整的3D模型,而淺浮雕是通過(guò)對(duì)其高度場(chǎng)進(jìn)行壓縮,將形狀擠壓到接近平坦的表面,同時(shí)又不失三維場(chǎng)景的感知,保持空間立體感,是一種介于二維平面和三維雕刻之間的獨(dú)特藝術(shù)效果。淺浮雕的應(yīng)用廣泛,如圖1所示,可以從歷史中輕易找到大量的淺浮雕藝術(shù)品。時(shí)至今日,淺浮雕在硬幣、工業(yè)設(shè)計(jì)和建筑等多種行業(yè)中應(yīng)用廣泛。
圖1 淺浮雕應(yīng)用
傳統(tǒng)的浮雕制作依靠老藝術(shù)家的手藝,不僅耗時(shí)費(fèi)力,對(duì)藝術(shù)家的技術(shù)要求十分嚴(yán)格,一旦出錯(cuò)就前功盡棄。隨著數(shù)字信息技術(shù)的發(fā)展和3D打印技術(shù)的普及,數(shù)字浮雕和傳統(tǒng)浮雕相比,其易生成且容易再次編輯修改,可以用來(lái)批量生產(chǎn),大大提高了淺浮雕的制作效率和精度,降低了制作成本。
近年來(lái),涌現(xiàn)出大量的數(shù)字淺浮雕研究工作,主要分為三類:基于圖像、基于高度場(chǎng)、基于法線。基于圖像的淺浮雕生成方法主要利用特征提取、三維重建等技術(shù)從二維圖像生成三維淺浮雕。吳文明等[1]將圖像的灰度值作為初始高度場(chǎng)通過(guò)光滑處理得到初始淺浮雕,再融合圖像細(xì)節(jié)增強(qiáng)的部分,最終得到保細(xì)節(jié)特征的淺浮雕。Wu等[2]將2D線型筆畫與法線筆畫相結(jié)合,提出一種由單幅圖像交互式構(gòu)建高度場(chǎng)的方法。Sohn[3]提出使用智能手機(jī)生成淺浮雕的算法,用智能手機(jī)拍攝照片得到原始圖像,利用原始圖像、梯度圖像和深度圖組合生成淺浮雕表面,并使用三個(gè)參數(shù)控制淺浮雕的細(xì)節(jié)紋理。雖然二維圖像的方法對(duì)輸入要求降低,但是單幅圖像的信息不充分,很難獲取絕對(duì)的深度信息,無(wú)法得到唯一的高度信息。而基于高度場(chǎng)的淺浮雕設(shè)計(jì)的基本方法是對(duì)空間中給定觀察視點(diǎn)的3D幾何模型,獲取其深度值然后進(jìn)行壓縮來(lái)獲得最終的淺浮雕。Cignoni等[4]首次分析了淺浮雕的幾何屬性,基于圖形透視轉(zhuǎn)換關(guān)系將3D場(chǎng)景轉(zhuǎn)換成高度場(chǎng),然后直接對(duì)高度值進(jìn)行縮放得到淺浮雕。Song等[5]在微分坐標(biāo)中表示3D形狀,然后結(jié)合網(wǎng)格的顯著性使用非銳化遮罩和平滑技術(shù)來(lái)生成淺浮雕,但是該方法沒(méi)有增強(qiáng)輪廓特征。Kerber等[6]借鑒了Lee等[7]的思想,結(jié)合線性重縮放和梯度域增強(qiáng)技術(shù),通過(guò)四個(gè)參數(shù)控制深度壓縮比例和物體表面的細(xì)節(jié)信息。Weyrich等[8]為了改善深度值不連續(xù)的問(wèn)題,從HDR圖像的壓縮算法中得到靈感,在梯度域通過(guò)參數(shù)控制邊緣輪廓的檢測(cè),再非線性地壓縮梯度值,最終得到淺浮雕。Kerber等[9]通過(guò)采用雙線性濾波技術(shù)和非線性壓縮的方法,解決在壓縮的過(guò)程中三維模型表面精細(xì)特征丟失的問(wèn)題,用戶通過(guò)指定壓縮比來(lái)控制最終的淺浮雕高度。Bian等[10]使用拉普拉斯坐標(biāo)存儲(chǔ)細(xì)節(jié)特征,并提出一種新的基于反正切的壓縮函數(shù),最后依賴閾值來(lái)精確調(diào)整淺浮雕高度。由于在圖像空間生成淺浮雕耗費(fèi)時(shí)性,文獻(xiàn)[11-13]通過(guò)微分網(wǎng)格形變和雙邊濾波技術(shù)來(lái)實(shí)現(xiàn)對(duì)淺浮雕的實(shí)時(shí)建模,并保留淺浮雕的細(xì)節(jié)特征。Zhang等[14]考慮光照對(duì)淺浮雕外形的影響,提出了一種根據(jù)給定的照明方向、材料和模型厚度自適應(yīng)生成淺浮雕的新方法。Wei等[15]基于法線的網(wǎng)格處理,解決了離散幾何處理中的淺浮雕建模問(wèn)題,使用三個(gè)參數(shù)控制最終淺浮雕的細(xì)節(jié)、高度和樣式,使得最終的淺浮雕在具有高壓縮比的情況下更好地保留了幾何細(xì)節(jié)和整體形狀。Nie[16]首次提出基于點(diǎn)云數(shù)據(jù),采用改進(jìn)的Z-Buffer算法和雙線性插值分兩步生成淺浮雕,并使用多個(gè)參數(shù)控制淺浮雕的壓縮方案,該方法新穎,但是只適用于干凈、均勻采樣的點(diǎn)云。相較于前兩種方式,基于三維模型的方法是近年來(lái)研究的熱點(diǎn),已經(jīng)有很多學(xué)者取得了不錯(cuò)的進(jìn)展。還有一些研究者在產(chǎn)生的浮雕基礎(chǔ)上進(jìn)行編輯和風(fēng)格化,如Ji等[17]提出一種基于法向域編輯的淺浮雕風(fēng)格化設(shè)計(jì),通過(guò)對(duì)法向域分頻處理,得到風(fēng)格迥異的淺浮雕模型?;谏疃葓?chǎng)的淺浮雕建模方法目前的研究核心是如何最大限度的保留細(xì)節(jié)特征以及他的連續(xù)性、層次感、平面約束等。根據(jù)研究發(fā)現(xiàn)此前的大部分淺浮雕算法對(duì)參數(shù)有很強(qiáng)的依賴性,不同的場(chǎng)景往往需要選擇不同的參數(shù),參數(shù)選擇得不好將導(dǎo)致細(xì)節(jié)丟失或高度不連續(xù)無(wú)法去除,因此需要設(shè)計(jì)一個(gè)更加智能的算法以自動(dòng)地生成淺浮雕模型。
本文將結(jié)合圖像和深度場(chǎng)兩種方法研究如何自動(dòng)生成淺浮雕,首次提出基于邊緣概率場(chǎng)的自適應(yīng)非線性壓縮,并且在不需要人為輸入?yún)?shù)的情況下能控制淺浮雕的細(xì)節(jié)層次。
首先輸入高度場(chǎng),將高度場(chǎng)轉(zhuǎn)換為高度圖,再對(duì)高度圖進(jìn)行邊緣檢測(cè)。本文提出基于結(jié)構(gòu)化隨機(jī)決策森林[18]對(duì)三維場(chǎng)景的高度場(chǎng)進(jìn)行邊緣檢測(cè)。利用局部圖像結(jié)構(gòu)化的優(yōu)點(diǎn),將一幅完整的三通道圖像分割成n份圖像塊,用決策樹對(duì)結(jié)構(gòu)化的圖像塊進(jìn)行分類,再將多棵決策樹結(jié)果進(jìn)行融合得到最后的邊緣圖。
2.1.1訓(xùn)練決策樹
給定一棵決策樹ft(p),每個(gè)節(jié)點(diǎn)通過(guò)一個(gè)二元分裂函數(shù),向左向右分支,直到葉子節(jié)點(diǎn),從而對(duì)樣本p∈P進(jìn)行分類。定義一個(gè)分裂函數(shù):
ψ(p,θ)={0,1}
(1)
當(dāng)ψ(p,θ)=0時(shí),將p分給左邊,否則分給右邊,直到葉子節(jié)點(diǎn)結(jié)束。一個(gè)很有效的方法是將p的單個(gè)特征維度與閾值進(jìn)行比較:
θ=(k,τ)ψ(p,θ)=[p(k)<τ]
(2)
這里我們定義一個(gè)信息增益標(biāo)準(zhǔn):
(3)
訓(xùn)練時(shí),對(duì)每棵樹的訓(xùn)練結(jié)果或者對(duì)每個(gè)節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行隨機(jī)采樣。在節(jié)點(diǎn)注入隨機(jī)性會(huì)產(chǎn)生更高的精度,這種犧牲單棵樹精度的方法會(huì)提升整體結(jié)果的多樣化。
2.1.2結(jié)構(gòu)化隨機(jī)森林
本節(jié)描述如何對(duì)高維度復(fù)雜的結(jié)構(gòu)化標(biāo)簽進(jìn)行訓(xùn)練。首先將每個(gè)局部圖像p∈P的結(jié)構(gòu)化標(biāo)簽q∈Q映射到離散標(biāo)簽c∈C:
∏:Q→C
結(jié)構(gòu)化標(biāo)簽是高維度且復(fù)雜的,如果對(duì)應(yīng)每個(gè)標(biāo)簽q分別計(jì)算c,會(huì)很浪費(fèi)時(shí)間和空間。為了降低計(jì)算的復(fù)雜性,使用中間映射:
∏:Q→Z
先計(jì)算空間Z的歐氏距離來(lái)計(jì)算結(jié)構(gòu)標(biāo)簽q的相似性,降低Z的維數(shù)。為了使Z的維度更低,對(duì)空間Z的m維進(jìn)行采樣,得到子映射空間z,采樣Z為學(xué)習(xí)中注入了額外的隨機(jī)性,保證了樹的結(jié)果的多樣性。最后使用主成分分析法進(jìn)一步對(duì)離散空間Z進(jìn)行降維。
再使用K均值聚類算法將Z映射到空間C中,將Z空間分成K個(gè)聚類。使得相似z的結(jié)構(gòu)標(biāo)簽q分配給相同的離散標(biāo)簽c。然后使用Shannon熵或基尼指數(shù)計(jì)算c中的信息增益來(lái)近似結(jié)構(gòu)標(biāo)簽q的信息增益。再利用2.1.1節(jié)的訓(xùn)練過(guò)程來(lái)學(xué)習(xí)結(jié)構(gòu)化隨機(jī)森林。
2.1.3集合模型
隨機(jī)森林將多棵決策樹的輸出進(jìn)行集成獲得結(jié)果,而如何融合不同決策樹的預(yù)測(cè),會(huì)對(duì)最終結(jié)果產(chǎn)生很大的影響。常見的隨機(jī)森林的集合方法有投票和平均。本文定義一個(gè)將結(jié)構(gòu)化標(biāo)簽(q1,q2,…,qn)組合成一個(gè)單一預(yù)測(cè)的方法。和前面一樣,采樣一個(gè)m維的映射z,計(jì)算每個(gè)結(jié)構(gòu)標(biāo)簽qi的歐氏距離zi,選擇zk對(duì)應(yīng)的標(biāo)簽qk,其中zk是到所有zi的距離之和最?。?/p>
(4)
對(duì)于重疊的邊緣映射,可以通過(guò)對(duì)多個(gè)重疊的邊緣映射求平均的方法,得到一個(gè)軟邊緣響應(yīng)。
2.1.4深度圖邊緣檢測(cè)
由于獲取的深度圖整體亮度偏暗,對(duì)比度不明顯,故使用限制對(duì)比度的自適應(yīng)直方圖均衡化(CLAHE)的方法對(duì)圖像亮度進(jìn)行調(diào)整。直方圖均衡化的灰度映射公式為:
(5)
式中:sk是均衡化后第k級(jí)灰度;rk是原圖的第k級(jí)灰度,表示原pr(rj)圖rk出現(xiàn)的概率;nj是原圖灰度級(jí)為rk的個(gè)數(shù);n為原圖像素總數(shù)。子塊的個(gè)數(shù)num會(huì)影響均衡化的效果,均衡化的結(jié)果會(huì)對(duì)后面淺浮雕的生成產(chǎn)生影響。圖2所示為不同num的值處理后的深度圖。
(a) 初始深度圖 (b) num=10的邊緣圖(c) num=16的邊緣圖
Cignoni等[19]認(rèn)為保留淺浮雕平面特征是最重要的目標(biāo),但是過(guò)多的平面約束會(huì)導(dǎo)致深度壓縮后的模型變型。為了滿足其他約束條件,如輪廓的連續(xù)性,高度場(chǎng)必須按比例縮小到一定程度使場(chǎng)景的重要特征不被丟失。本文方法是基于邊緣概率的壓縮方法,放低對(duì)平面的約束,保留深度不連續(xù)處的輪廓。
2) 梯度壓縮。Weyrich等[8]設(shè)置一個(gè)閾值來(lái)檢測(cè)輪廓,并將輪廓處梯度置為0,只壓縮非輪廓的梯度域。這里首次提出一種壓縮方案:把2.1.4節(jié)得到的輪廓域視為控制壓縮程度的概率場(chǎng)p(x,y),希望在加大輪廓域的壓縮程度的同時(shí)衰減非輪廓域的壓縮程度,定義了一個(gè)自適應(yīng)壓縮函數(shù)根據(jù)概率場(chǎng)值進(jìn)行自適應(yīng)的壓縮梯度域。由于線性壓縮會(huì)導(dǎo)致淺浮雕過(guò)于平坦,為了保持平坦的同時(shí)又保留細(xì)節(jié)特征,最終定義一個(gè)自適應(yīng)非線性壓縮函數(shù):
c(x)=γlog(1+γ×x)
(6)
式中:γ=1-p控制不同區(qū)域高度的壓縮程度,取值范圍為(0,1],值越大對(duì)應(yīng)的壓縮程度也越大。通過(guò)對(duì)梯度域的壓縮最終得到修正后的梯度模值:
(7)
理論上最后的一步是對(duì)前面修正后的梯度域g′(x,y)進(jìn)行積分,恢復(fù)淺浮雕最后的高度場(chǎng),將修正后的梯度域和方向重新組合:
g′(x,y)=s(x,y)v(x,y)
(8)
但是實(shí)際上修正后的梯度域不再可積,可以通過(guò)將最優(yōu)化方法重新表述成泊松方程來(lái)得到最后的高度場(chǎng)。泊松方程為:
(9)
先對(duì)修改后的梯度場(chǎng)g′進(jìn)行下采樣,再求其拉普拉斯算子。對(duì)于大型稀疏矩陣,通過(guò)使用一個(gè)網(wǎng)格求解器對(duì)式(9)進(jìn)行求解。
本文算法的詳細(xì)流程如圖3所示,展示了原始高度圖通過(guò)邊緣檢測(cè)、自適應(yīng)非線性壓縮梯度域以及最后的重建,得到最終的淺浮雕模型。
圖3 基于邊緣檢測(cè)的淺浮雕建模
1) 使用CLAHE方法處理后對(duì)邊緣檢測(cè)結(jié)果的影響。由于深度圖的灰度對(duì)比不明顯,所以直接檢測(cè)的結(jié)果不理想,初始高度圖提高了灰度對(duì)比度后再進(jìn)行檢測(cè)。圖4為CLAHE中的分塊參數(shù)num對(duì)邊緣檢測(cè)結(jié)果的影響。圖5為不同邊緣檢測(cè)結(jié)果對(duì)淺浮雕產(chǎn)生的影響,隨著輪廓特征增多,淺浮雕的細(xì)節(jié)特征越來(lái)越明顯,也保證了高度的連續(xù)性。
(a) 初始深度圖 (b) num=10的邊緣圖(c) num=16的邊緣圖
(a) 初始邊緣圖對(duì)應(yīng)的淺浮雕 (b) num=10對(duì)應(yīng)的淺浮雕 (c) num=16對(duì)應(yīng)的淺浮雕
2) 梯度域邊緣處理的壓縮程度對(duì)淺浮雕風(fēng)格的影響。如圖6所示,如果對(duì)整個(gè)梯度域同等程度壓縮,得到的淺浮雕的輪廓處出現(xiàn)臺(tái)階,而自適應(yīng)的壓縮函數(shù)根據(jù)不同區(qū)域進(jìn)行不同程度的壓縮后,輪廓處避免了這種現(xiàn)象。
(a) 邊緣未處理 (b) 邊緣處理
3) 與已有的工作成果對(duì)比。文獻(xiàn)[8]方法屬于半自動(dòng)生成淺浮雕,需要手動(dòng)設(shè)置參數(shù)進(jìn)行檢測(cè)才能得到細(xì)節(jié)增強(qiáng)的淺浮雕,而本文方法通過(guò)全自動(dòng)的無(wú)參檢測(cè)就能得到同樣效果的淺浮雕。如圖7所示,文獻(xiàn)[8]方法需要根據(jù)三維場(chǎng)景的不同來(lái)設(shè)置不同的參數(shù),θ是控制邊緣檢測(cè)的閾值;而本文方法參數(shù)一致就能產(chǎn)生同樣理想效果的淺浮雕。
(a) 文獻(xiàn)[8]方法例一θ=0.008 (b) 文獻(xiàn)[8]方法例二θ=0.001 6 (c) 文獻(xiàn)[8]方法例三θ=0.005
本文方法和文獻(xiàn)[17]方法的對(duì)比結(jié)果如圖8所示。文獻(xiàn)[17]方法不需要參數(shù),產(chǎn)生的淺浮雕平坦且平滑;本文算法產(chǎn)生的淺浮雕保持高度的連續(xù)性的同時(shí)更加立體,而且輪廓處細(xì)節(jié)更加明顯。但是文獻(xiàn)[17]方法對(duì)非流形的三維場(chǎng)量不可行,如圖8(e)所示,該方法無(wú)法獲得正確的法向圖,而本文方法卻可以產(chǎn)生效果很好的淺浮雕,證明本文方法適用性更廣。
圖8 本文算法與文獻(xiàn)[17]方法的對(duì)比
4) 驗(yàn)證本文算法的優(yōu)勢(shì)。首先驗(yàn)證本文全自動(dòng)生成淺浮雕算法對(duì)所有模型的普適性。圖9所示為一系列不同類型的深度場(chǎng)用本文算法生成的高質(zhì)量的淺浮雕模型。然后比較不同算法的時(shí)間性能,如表1所示。本文算法在邊緣檢測(cè)階段的時(shí)間只需幾秒,而高度場(chǎng)重建的時(shí)間和對(duì)比方法差不多。雖然本文算法的運(yùn)行時(shí)間多了2~3秒,但是有利于淺浮雕的自動(dòng)生成和效果控制。
(a) 淺浮雕例一 (b) 淺浮雕例二 (c) 淺浮雕例三
表1 不同方法的對(duì)比例子運(yùn)行時(shí)間
續(xù)表1
5) 本文算法的運(yùn)行環(huán)境。實(shí)驗(yàn)的計(jì)算機(jī)的配置如下:十六核3.7 GHz AMD 2700X處理器,16 GB內(nèi)存,Windows 10 64位操作系統(tǒng),使用MATLAB編程實(shí)現(xiàn)。
本文針對(duì)原有的單一的基于圖像和3D模型的淺浮雕建模方法,提出一種結(jié)合3D場(chǎng)景和圖像處理的淺浮雕建模算法。本文創(chuàng)建一個(gè)淺浮雕建模系統(tǒng),輸入一個(gè)三維場(chǎng)景,獲取其深度圖,對(duì)其進(jìn)行邊緣檢測(cè),再根據(jù)邊緣圖的信息對(duì)深度圖的梯度進(jìn)行調(diào)整,最后以最小二乘法計(jì)算得到逼近修改后梯度場(chǎng)的淺浮雕模型。由于邊緣檢測(cè)自動(dòng)識(shí)別處理了深度圖中深度值的不連續(xù)性,本文方法不需要人為選擇參數(shù),因此方便了淺浮雕的建模,也提供了機(jī)制用于控制邊緣圖的細(xì)節(jié)層次,可以增加淺浮雕的細(xì)節(jié)層次效果。未來(lái)工作主要包括兩個(gè)方面:采用更高效的邊緣檢測(cè)算法;針對(duì)局部細(xì)節(jié)進(jìn)一步優(yōu)化,如增強(qiáng)、風(fēng)格遷移等,得到類型更加豐富的淺浮雕模型。