本發(fā)明涉及三維重建領(lǐng)域,尤其涉及一種基于三維點(diǎn)云潑濺算法新視角圖像恢復(fù)高光細(xì)節(jié)的方法。
背景技術(shù):
1、高斯點(diǎn)云潑濺算法(gaussian?splatting)是一類(lèi)基于點(diǎn)云數(shù)據(jù)的新視角重建技術(shù),這類(lèi)技術(shù)廣泛應(yīng)用于游戲建模、增強(qiáng)現(xiàn)實(shí)、虛擬現(xiàn)實(shí)、影視特效等領(lǐng)域。高斯點(diǎn)云潑濺通過(guò)高斯分布表示場(chǎng)景中的點(diǎn),每個(gè)點(diǎn)表示為高斯核。通過(guò)優(yōu)化點(diǎn)的位置、顏色、不透明度和高斯形狀,實(shí)現(xiàn)通過(guò)有限的圖片還原出真實(shí)場(chǎng)景或物體的全方位視角圖片。相較于其他使用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)未知視角圖片的方法,該方法具有渲染效率高,圖片質(zhì)量高的優(yōu)勢(shì)。盡管該方法能夠快速地渲染出新視角圖片,由于不同視角下同一個(gè)高斯核需要多次參與阿爾法混合渲染,高斯核往往擬合成固定的中間顏色,使得該方法在對(duì)視角變化非常敏感的高光部分產(chǎn)生明顯的差異。日常生活中的物體大部分都具有或多或少的高光現(xiàn)象,高光細(xì)節(jié)的丟失直接導(dǎo)致圖片真實(shí)感大幅下降。而傳統(tǒng)渲染方法針對(duì)高光細(xì)節(jié)需要精確的物體表面信息,計(jì)算復(fù)雜的光線反射,進(jìn)而導(dǎo)致渲染難度提升。因此結(jié)合高斯點(diǎn)云潑濺算法同時(shí)恢復(fù)高光細(xì)節(jié)對(duì)得到足夠真實(shí)的新視角圖片渲染意義重大。
技術(shù)實(shí)現(xiàn)思路
1、(一)要解決的技術(shù)問(wèn)題
2、本發(fā)明的目的在于提供一種基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,解決上述的技術(shù)問(wèn)題。
3、(二)技術(shù)方案
4、本發(fā)明提供了一種基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,包括:
5、模型的設(shè)計(jì),基于新視角生成任務(wù),結(jié)合原有三維高斯點(diǎn)云數(shù)據(jù)特征構(gòu)建高光恢復(fù)模型;
6、數(shù)據(jù)獲取,本步驟使用原有三維高斯點(diǎn)云潑濺算法圖像作為粗糙待恢復(fù)圖像,結(jié)合nerf靜態(tài)數(shù)據(jù)集圖像訓(xùn)練高光恢復(fù)模型;
7、模型的訓(xùn)練,圖像和相機(jī)姿態(tài)輸入,設(shè)置相應(yīng)的超參數(shù)進(jìn)行訓(xùn)練模型,優(yōu)化高光恢復(fù)模型中的高光球諧函數(shù)參數(shù);
8、圖像測(cè)試,通過(guò)對(duì)原方法點(diǎn)云進(jìn)行多視角渲染原粗糙圖像,對(duì)比本發(fā)明方法高光改進(jìn)細(xì)節(jié),包括圖像高光細(xì)節(jié)直觀對(duì)比、圖像數(shù)據(jù)指標(biāo)分析。
9、在本發(fā)明的一些實(shí)施例中,所述模型的設(shè)計(jì)包括:
10、高光恢復(fù)模型g,初始化高光模型g。針對(duì)需要恢復(fù)高光細(xì)節(jié)的場(chǎng)景或物體輸入預(yù)訓(xùn)練好的相應(yīng)三維高斯點(diǎn)云p,該三維高斯點(diǎn)云p具有對(duì)場(chǎng)景或物體的基本幾何和顏色信息,讀取相關(guān)數(shù)據(jù)并寫(xiě)入高光模型g。利用pytorch框架繼承module類(lèi)構(gòu)建高光恢復(fù)模型,將點(diǎn)的數(shù)量、位置、代表每個(gè)點(diǎn)高斯范圍的協(xié)方差、旋轉(zhuǎn)參數(shù)、以及點(diǎn)的不透明度作為固定參數(shù)復(fù)制進(jìn)高光模型g。同時(shí)讀取點(diǎn)云p每個(gè)點(diǎn)的球諧函數(shù)參數(shù)形狀,確保高光模型恢復(fù)后的高光球諧函數(shù)階數(shù)與原點(diǎn)云相同。初始化高光球諧函數(shù)張量lights_shs,形狀與預(yù)訓(xùn)練的三維高斯點(diǎn)云p中顏色球諧函數(shù)參數(shù)張量相同,值全為0。高光球諧函數(shù)的意義在于將原本顏色視為漫反射顏色的基礎(chǔ)上缺失的高光顏色,因此設(shè)置為可學(xué)習(xí)參數(shù),其他參數(shù)設(shè)置為固定參數(shù)不做修改。初始化高光模型g的其他學(xué)習(xí)參數(shù)。模型通過(guò)固定原有場(chǎng)景或物體的原本顏色情況下,學(xué)習(xí)高光球諧函數(shù)參數(shù)擬合缺失的高光細(xì)節(jié)達(dá)到恢復(fù)場(chǎng)景或物體的高光表現(xiàn)的效果。
11、高光恢復(fù)模型g的模型訓(xùn)練設(shè)置。高光恢復(fù)模型僅訓(xùn)練恢復(fù)模型的高光球諧函數(shù)參數(shù),綜合考慮每個(gè)點(diǎn)需要擬合的參數(shù)大小以及訓(xùn)練時(shí)長(zhǎng),模型設(shè)置高光球諧函數(shù)參數(shù)進(jìn)行一次sigmoid函數(shù)激活,然后輸入渲染器渲染高光圖。模型需初始化高光恢復(fù)模型保存路徑,訓(xùn)練輪次,學(xué)習(xí)率更新輪次以及可以學(xué)習(xí)率更新幅度,用戶可以根據(jù)高光恢復(fù)的程度進(jìn)行調(diào)整。同時(shí),模型初始化兩項(xiàng)損失函數(shù)以及占比權(quán)重λ,調(diào)整該項(xiàng)權(quán)重控制高光學(xué)習(xí)的傾向。模型損失函數(shù)采取圖像像素絕對(duì)差值均值l1,以及圖像結(jié)構(gòu)相似性誤差lssim。
12、在本發(fā)明的一些實(shí)施例中,所述數(shù)據(jù)獲取包括:
13、使用三維重建常用的nerf數(shù)據(jù)集進(jìn)行高光恢復(fù)模型g訓(xùn)練。該數(shù)據(jù)集包含不同相機(jī)視角下的物體渲染圖像,每個(gè)相機(jī)視角矩陣對(duì)應(yīng)一張圖像。高光恢復(fù)模型在保持相機(jī)視角矩陣與渲染圖像對(duì)應(yīng)關(guān)系的同時(shí)打亂順序,這樣可以提高模型的穩(wěn)定性。模型訓(xùn)練每個(gè)批次,依次讀取打亂后的相機(jī)視角矩陣以及該視角下的數(shù)據(jù)集圖像,將其輸入模型中訓(xùn)練。將預(yù)訓(xùn)練三維高斯點(diǎn)云p使用點(diǎn)云自帶渲染器渲染粗糙圖像color_0。然后,根據(jù)高光恢復(fù)模型獲取相應(yīng)的渲染器所需參數(shù),包括點(diǎn)的數(shù)量,點(diǎn)的高斯協(xié)方差矩陣,旋轉(zhuǎn)參數(shù),不透明度,以及當(dāng)前每個(gè)點(diǎn)的高光球諧函數(shù)系數(shù)。高光球諧函數(shù)通過(guò)三維高斯點(diǎn)云p解碼為預(yù)計(jì)算顏色,然后將該顏色即模型獲取的渲染器所需參數(shù)一同輸入自帶渲染器進(jìn)行渲染出高光細(xì)節(jié)圖像color_1。將粗糙圖像與高光細(xì)節(jié)圖像一同匯總成最終渲染圖像img_render。使用簡(jiǎn)化的渲染公式進(jìn)行匯總最終渲染圖像。公式如下:
14、img_render=color_0+color_1
15、該公式的意義是,將每個(gè)高斯球的粗糙顏色color_0作為漫反射顏色,將高光恢復(fù)模型g所恢復(fù)的高光細(xì)節(jié)顏色color_1與color_0進(jìn)行相加匯總。
16、在本發(fā)明的一些實(shí)施例中,所述模型的訓(xùn)練包括:
17、渲染最終圖像與數(shù)據(jù)集圖像對(duì)比。使用圖像像素絕對(duì)差值均值l1以及圖像結(jié)構(gòu)相似性誤差lssim作為模型計(jì)算的損失函數(shù)。像素絕對(duì)差值均值衡量?jī)蓮垐D像素層次的差異,幫助模型恢復(fù)高光圖本身的顏色。圖像結(jié)構(gòu)相似性誤差衡量渲染圖像與數(shù)據(jù)集圖像的結(jié)構(gòu)性差異。根據(jù)模型初始化參數(shù)損失函數(shù)權(quán)重λ匯總模型的總誤差,loss=λ*l1+(1-λ)*lssim。最終渲染圖像與數(shù)據(jù)集中的渲染圖像計(jì)算損失函數(shù),然后將最終損失根據(jù)pytorch框架返回修改高光恢復(fù)模型g中的高光球諧函數(shù)參數(shù),直至達(dá)到預(yù)設(shè)的訓(xùn)練輪次。
18、在本發(fā)明的一些實(shí)施例中,所訴圖像測(cè)試,包括步驟:
19、圖像高光細(xì)節(jié)直觀對(duì)比。模型輸出學(xué)習(xí)到的高光細(xì)節(jié)圖,直觀展示模型學(xué)習(xí)到的原三維高斯點(diǎn)云缺失的高光細(xì)節(jié)。用戶可以直觀地對(duì)比最終渲染圖像img_render與原三維高斯點(diǎn)云p渲染的color_0的高光差異。
20、圖像數(shù)據(jù)指標(biāo)分析。模型可以輸出原三維高斯點(diǎn)云p渲染的color_0與本方法最終渲染圖像img_render的圖像數(shù)據(jù)指標(biāo)。包括峰值信噪比、與數(shù)據(jù)集圖像的結(jié)構(gòu)相似性,以及圖像像素絕對(duì)差值均值,可從數(shù)據(jù)角度對(duì)比本方法的改善效果。
21、(三)有益效果
22、本發(fā)明的一種基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,相較于現(xiàn)有技術(shù),至少具有以下優(yōu)點(diǎn):
23、1、無(wú)需獲取場(chǎng)景或物體的表面信息直接計(jì)算高光表現(xiàn)。
24、2、彌補(bǔ)原有三維高斯?jié)姙R技術(shù)在新視角渲染時(shí)的高光缺失。
25、3、設(shè)計(jì)了端到端的代碼結(jié)構(gòu),用戶只需要提供一組視角圖片與對(duì)應(yīng)相機(jī)姿態(tài),即可根據(jù)用戶需求渲染出包括高光細(xì)節(jié)的未知視角圖像。
1.基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法的步驟包括:
2.根據(jù)權(quán)利要求1所述的基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,其中,所述模型設(shè)計(jì)包括:初始化高光模型g。針對(duì)需要恢復(fù)高光細(xì)節(jié)的場(chǎng)景或物體輸入預(yù)訓(xùn)練好的相應(yīng)三維高斯點(diǎn)云p,該三維高斯點(diǎn)云p具有對(duì)場(chǎng)景或物體的基本幾何和顏色信息,讀取相關(guān)數(shù)據(jù)并寫(xiě)入高光模型g。利用pytorch框架繼承module類(lèi)構(gòu)建高光恢復(fù)模型,將點(diǎn)的數(shù)量、位置、代表每個(gè)點(diǎn)高斯范圍的協(xié)方差、旋轉(zhuǎn)參數(shù)、以及點(diǎn)的不透明度作為固定參數(shù)復(fù)制進(jìn)高光模型g。同時(shí)讀取點(diǎn)云p每個(gè)點(diǎn)的球諧函數(shù)參數(shù)形狀,確保高光模型恢復(fù)后的高光球諧函數(shù)階數(shù)與原點(diǎn)云相同。初始化高光球諧函數(shù)張量lights_shs,形狀與預(yù)訓(xùn)練的三維高斯點(diǎn)云p中顏色球諧函數(shù)參數(shù)張量相同,值全為0。高光球諧函數(shù)的意義在于將原本顏色視為漫反射顏色的基礎(chǔ)上缺失的高光顏色,因此設(shè)置為可學(xué)習(xí)參數(shù),其他參數(shù)設(shè)置為固定參數(shù)不做修改。初始化高光模型g的其他學(xué)習(xí)參數(shù)。模型通過(guò)固定原有場(chǎng)景或物體的原本顏色情況下,學(xué)習(xí)高光球諧函數(shù)參數(shù)擬合缺失的高光細(xì)節(jié)達(dá)到恢復(fù)場(chǎng)景或物體的高光表現(xiàn)的效果。
3.根據(jù)權(quán)利要求1所述的基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,其中,還包括:高光恢復(fù)模型g的模型訓(xùn)練設(shè)置。高光恢復(fù)模型僅訓(xùn)練恢復(fù)模型的高光球諧函數(shù)參數(shù),綜合考慮每個(gè)點(diǎn)需要擬合的參數(shù)大小以及訓(xùn)練時(shí)長(zhǎng),模型設(shè)置高光球諧函數(shù)參數(shù)進(jìn)行一次sigmoid函數(shù)激活,然后輸入渲染器渲染高光圖。模型需初始化高光恢復(fù)模型保存路徑,訓(xùn)練輪次,學(xué)習(xí)率更新輪次以及可以學(xué)習(xí)率更新幅度,用戶可以根據(jù)高光恢復(fù)的程度進(jìn)行調(diào)整。同時(shí),模型初始化兩項(xiàng)損失函數(shù)以及占比權(quán)重λ,調(diào)整該項(xiàng)權(quán)重控制高光學(xué)習(xí)的傾向。模型損失函數(shù)采取圖像像素絕對(duì)差值均值l1,以及圖像結(jié)構(gòu)相似性誤差lssim。
4.根據(jù)權(quán)利要求1所述的基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,其中,所述數(shù)據(jù)獲取包括:使用三維重建常用的nerf數(shù)據(jù)集進(jìn)行高光恢復(fù)模型g訓(xùn)練。該數(shù)據(jù)集包含不同相機(jī)視角下的物體渲染圖像,每個(gè)相機(jī)視角矩陣對(duì)應(yīng)一張圖像。高光恢復(fù)模型在保持相機(jī)視角矩陣與渲染圖像對(duì)應(yīng)關(guān)系的同時(shí)打亂順序,這樣可以提高模型的穩(wěn)定性。模型訓(xùn)練每個(gè)批次,依次讀取打亂后的相機(jī)視角矩陣以及該視角下的數(shù)據(jù)集圖像,將其輸入模型中訓(xùn)練。
5.根據(jù)權(quán)利要求1所述的基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,其中,所述模型訓(xùn)練包括:渲染出高光圖像與數(shù)據(jù)集圖像對(duì)比。首先,將預(yù)訓(xùn)練三維高斯點(diǎn)云p使用點(diǎn)云自帶渲染器渲染粗糙圖像color_0。然后,根據(jù)高光
6.根據(jù)權(quán)利要求5所述的基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,其中,所述匯總最終圖像包括:使用簡(jiǎn)化的渲染公式進(jìn)行訓(xùn)練。公式如下:
7.根據(jù)權(quán)利要求5所述的基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,其中,所述圖像計(jì)算損失函數(shù)包括:使用圖像像素絕對(duì)差值均值l1以及圖像結(jié)構(gòu)相似性誤差lssim作為模型計(jì)算的損失函數(shù)。像素絕對(duì)差值均值衡量?jī)蓮垐D像素層次的差異,幫助模型恢復(fù)高光圖本身的顏色。圖像結(jié)構(gòu)相似性誤差衡量渲染圖像與數(shù)據(jù)集圖像的結(jié)構(gòu)性差異。根據(jù)模型初始化參數(shù)損失函數(shù)權(quán)重λ匯總模型的總誤差,loss=λ*l1+(1-λ)*lssim。
8.根據(jù)權(quán)利要求1所述的基于三維高斯點(diǎn)云潑濺算法恢復(fù)高光細(xì)節(jié)的方法,其中,圖像測(cè)試,包括: