本發(fā)明屬于計算機視覺,特別是基于雙目視覺的三維重建技術。具體而言,本發(fā)明提出了一種基于雙目立體視覺進行人體三維重建的新方法。該技術對出現(xiàn)噪聲和光照不均勻時的立體匹配結果更佳,旨在提高基于雙目立體視覺的三維重建效果與速度。該技術在虛擬現(xiàn)實、增強現(xiàn)實等領域都有潛在應用?;陔p目視覺的三維重建技術在各行各業(yè)有很大的發(fā)展前景。主要通過廉價的兩個相機,就能夠?qū)崿F(xiàn)空間物體的三維重建,這使得在實際應用中能夠使用很少的花費,獲得空間物體三維模型,在很多領域節(jié)省很大的開銷。因此,通過雙視覺的技術去實現(xiàn)真實人體三維重建有著極其大的研宄意義,它能夠很大程度的去減少人體重建的成本,而且通過使用相機去進行人體的三維重建,對于人體的隱私問題以及人體健康安全問題都有很好的解決。
背景技術:
1、近些年來,隨著互聯(lián)網(wǎng)的不斷快速發(fā)展,通過互聯(lián)網(wǎng)去幫助人類更好的進行衣、食、住、行的應用在不斷的被開發(fā),目的都是為了使人能在更短的時間、更近的距離獲得更優(yōu)質(zhì)的服務,網(wǎng)絡購物就是其中之一,通過網(wǎng)絡購物能夠方便快捷的實現(xiàn)衣物的購買會存在購買的衣物不合身的問題,因為衣物的尺碼的定義標準不同,這就造成了網(wǎng)購過程中退貨率的增高。為了解決這個問題,虛擬試衣應用出現(xiàn),它通過現(xiàn)有的計算機技術,去實現(xiàn)人體在虛擬場景中的試衣行。通過虛擬試衣就能夠真正的實現(xiàn)居家購物。而虛擬試衣中重要研究部分就是實現(xiàn)真實人體的三維重建。
2、有一種方式是通過毫米波去實現(xiàn)人體三維重構,然后通過重構模型去進行虛擬試衣,這種方式的優(yōu)點是準確度高,能夠獲取到較為真實的人體二維模型,但是存在一些問題。首先是隱私問題,通過毫米波實現(xiàn)的人體三維模型,所產(chǎn)生的模型是人體的三維裸體模型,對于人體的各個部分都實現(xiàn)完整的重構,這樣對于人的隱私安全得不到保證;然后是人體健康安全問題,對于毫米波對人體的危害眾說紛紜,該方式使得用戶直面毫米波,會讓用戶產(chǎn)生人體健康安全的質(zhì)疑,因此也會使得該方式落地困難;最后是價格問題,使用毫米波的設備價格較為昂貴,人體重建成本較高。
3、隨著計算機技術的不斷發(fā)展,通過計算機立體視覺技術來實現(xiàn)三維場景重建的方式不斷應用在各個領域,特別是在人體的三維重建領域,如動畫電影制作、vr虛擬現(xiàn)實、虛擬試衣等,而雙目立體視覺技術是其重要的研究方向之一。立體匹配算法如sgm、patchmatch以及ad-census算法在效率與效果上各有優(yōu)缺點。本發(fā)明改進的立體匹配技術對于噪聲與光照有較強的魯棒性,通過分層策略以及并行優(yōu)化提升了立體匹配的計算速度。
技術實現(xiàn)思路
1、本發(fā)明以左右兩個相機采集的圖片作為輸入,通過立體矯正、立體匹配等步驟最后得到三維重建后的人體模型。通過基于中值的census代價計算和梯度census的代價計算融合,還有在代價聚合階段實現(xiàn)異常值剔除,使本發(fā)明提出的立體匹配算法對出現(xiàn)噪聲和光照不均勻時立體匹配結果更佳。通過分層立體匹配優(yōu)化策略提高了立體匹配算法的計算速度。
2、本發(fā)明基于雙目立體視覺進行人體的三維重建,首先對處于同一高度的左右兩個相機進行標定,因為在二維圖片到三維對象的轉換過程中,需要相機的內(nèi)外參數(shù)去計算深度信息,為了立體匹配時滿足平行視圖下的極線約束,需要獲取兩個相機對應的立體校正投影矩陣,然后通過相機標定中獲取到的參數(shù)應用到我們的立體匹配方法中。立體匹配方法通過代價計算、代價聚合、視差計算、視差優(yōu)化得到最終的視差圖,根據(jù)視差圖得到深度信息生成三維點云進行表面重建。
3、基于以上發(fā)明思路,本發(fā)明提出了一種基于雙目立體視覺和點云的人體三維重建方法,其具體包括以下步驟:
4、s1,通過雙目相機拍攝不同視角下的棋盤標定板圖片得到相機的內(nèi)外參矩陣以及立體校正投影矩陣,根據(jù)矩陣參數(shù)對輸入的左右人體圖像進行畸變矯正。
5、s2,對完成畸變矯正的輸入圖片進行立體匹配,我們的發(fā)明基于中值與梯度的代價計算方法,并提出代價聚合異常值剔除優(yōu)化方法。
6、s3,通過分層立體匹配策略,從粗到細的方式構建視差圖,優(yōu)化立體匹配的運算速度。
7、s4,根據(jù)立體匹配獲得的視差圖得到人體的三維點云數(shù)據(jù),通過貪婪投影三角化算法將人體三維點云數(shù)據(jù)的表面進行重建。
8、一種基于雙目立體視覺和點云的人體三維重建方法,所述步驟s1的目的在于,對于實現(xiàn)三維重建利用的雙目相機,首先利用棋盤標定法得到其內(nèi)外參矩陣。對于輸入的左右人體圖像,利用內(nèi)外參矩陣校正圖像由于相機導致的畸變,該步驟具體包括以下分步驟:
9、s11,計算獲得相機的內(nèi)外參矩陣以及立體校正投影矩陣。首先通過分別對單目相機的標定原理得到相機的內(nèi)外參矩陣。
10、
11、a表示內(nèi)參矩陣,n表示外參矩陣,(xw,yw,zw)表示世界坐標系中的坐標值,(u,v)表示圖像像素坐標系中的坐標值,zc表示相機坐標系中z軸的值,f表示相機的焦距,1/dx、1/dy分別示圖像物理坐標系到圖像像素坐標系u軸和v軸的收縮比例,(u0,v0)則是移動距離,θ則表示的是最終像素坐標系且偏離正常情況下的角度。
12、如圖一所示,左邊為標定所需的棋盤標定板,右邊是獲取圖像的雙目相機。通過雙目相機拍攝多張棋盤標定板圖片,得到多組不同角度下的包含有棋盤標定板的圖片對。通過角點檢測算法檢測標定板圖片中的角點,如圖二所示,尋找棋盤中的角點,這些位置相當于圖像像素坐標系中的坐標點。將棋盤平面看作世界坐標系中的z=0的平面,然后以棋盤左上角的第一個角點為坐標原點,最后根據(jù)棋盤中的每個黑白正方形的邊長。得到棋盤中每個角點在世界坐標系下的坐標值。如圖三角點檢測算法的映射關系圖所示,點p是棋盤標定板中的角點,令p在左邊相機的相機坐標系o1-x1y1z1中的坐標為xtc,在右邊相機的相機坐標系o2-x2y2z2中的坐標為xrc,根據(jù)世界坐標系與相機坐標系之間的變換關系,映射到了左邊相機的p1和右邊相機的p2,通過單目相機標定以后,得到左邊相機的外參矩陣[r1?t1],右邊相機的外參矩陣[r2?t2]。等式組所示:
13、
14、通過兩個外參矩陣求出兩個相機之間的位置關系r、t,從式(3)中可以得到:
15、
16、r就是相機的旋轉矩陣,t為相機的平移矩陣。至此我們獲得了相機的內(nèi)外參矩陣以及雙目相機的位置關系。而后對雙目相機采集到的人體圖像預處理后完成畸變矯正。首先,我們對采集到的輸入圖像進行高斯模糊,去除噪聲點,然后通過unsharpen?mask進行銳化增強。通過預處理我們得到兩幅噪聲稍小且質(zhì)量較好的圖片。再通過畸變校正與極線矯正恢復圖像畸變。
17、一種基于雙目立體視覺和點云的人體三維重建方法,所述步驟s2的目的在于,對雙目相機采集到的左右圖像進行s1的處理后,進行立體匹配。尋找左圖中像素點在右圖中的同名點,也就是搜索右圖中處于相同行上的所有點,對比相似度,相似度最高的點定其為同名點。通過同名點的確定計算得到視差,因此通過立體匹配最終可得到視差圖。該步驟包括以下分步驟:
18、s21,通過代價計算衡量左右圖像像素值的相似度。受到ad-census算法的啟發(fā),我們的發(fā)明結合ad(absolute?differences)算法與census算法的優(yōu)勢。通過計算對比單個像素點的大小來進行比較得到ad算法下的代價值。而后我們的發(fā)明改進census算法下的代價計算方式,基于窗口中值像素作為計算的核心并引入梯度計算作為衡量代價值的基礎之一。首先是ad算法下的第一部分代價計算:
19、
20、其中cad(p,q)為左圖中p點與右圖中q點的ad算法代價值,表示p在左圖中i通道的灰度值,表示q在右圖中i通道的灰度值,一共三個通道,最后計算p和q三個通道差的絕對值的平均值。本發(fā)明基于二進制碼計算第二部分的代價計算,通過求窗口內(nèi)像素的中值作為對比值,生成對應的二進制碼,計算公式如下:
21、
22、式(6)表示圖片中的點p基于中值二進制碼的代價計算方法,t∈np表示的是對點p窗口內(nèi)的灰度值進行計算,而是位連接符,就是將窗口內(nèi)的每一個像素計算出對應的比特值,再通過這個符號將其連接成二進制碼,而對于窗口中的每一個像素求其對應的比特值則通過函數(shù)ζ實現(xiàn),其中imid(p)表示以p為中心的窗口內(nèi)所有像素灰度值的中值。i(t)表示的是窗口內(nèi)的每一個像素的灰度值,通過比較二者的大小得到窗口中像素對應的比特值,將所有的比特值連接起來,就得到了點p對應窗口的二進制碼。
23、s22,引入梯度進行代價計算。通過使用sobel算子進行梯度計算,sobel卷積因子分為x方向和y方向的卷積因子,對應圖4中兩個方向的梯度,最終將兩個方向梯度進行融合,即可得到最終的梯度值,具體x方向和y方向的梯度計算如式(8)所示,(u,v)處x方向的梯度為gx(u,v),gy(u,v)則表示的是在y方向的梯度,將這兩個方向的梯度值求平均得到最終的梯度值,如圖(9)所示。
24、
25、按上述方式得到基于ad算法的代價值和基于中值二進制碼的代價值以及基于梯度計算的代價值,將三部分代價值融合,得到最終的代價值。代價值是求二進制碼的漢明距離,最終生成代價值的公式如式(10)和(11)所示,
26、ccg(p,q)=hamming(tp(p),tp(q))????(10)
27、ccd(p,q)=hamming(gt(p),gt(q))????(11)
28、ccg(p,q)代表的是基于中值的灰度代價值,ccd(p,q)代表的是梯度的代價值。hamming函數(shù)表示二進制碼對應位置不同的個數(shù),即漢明距離。ad算法與以上兩種算法代價值的衡量尺度不同,代價值的范圍也不相同,需要將代價值進行歸一化,將范圍縮小到[0,1]之間,再通過不同的參數(shù)系數(shù)融合代價值。如(12)所示,將值進行歸一化,其中λ為控制參數(shù),c為不同算法下的代價值。
29、
30、最終三個代價計算方法的融合方式如式(13)所示,其中λcg表示的是基于中值計算的控制參數(shù),λcd表示的是基于梯度計算的控制參數(shù),λad表示的是ad算法的控制參數(shù)。通過代價融合得到更加穩(wěn)定的代價計算算法。
31、s23,計算每個像素與其他像素的代價值后,通過代價聚合找到像素周圍和其他顏色相近的像素。通過十字交叉域中的代價值數(shù)據(jù)構造高斯分布,首先計算其中的平均值與方差,計算公式如(14)和(15)所示,其中μ表示交叉域中代價值的平均值,nnums表示是元素的個數(shù),np表示的就是十字交叉域s。c(t)表示s中每個元素對應的代價值,σ表示的是交叉域中的方差,將交叉域中的數(shù)據(jù)帶入式(14)和(15)中,得到對應的平均值和方法值。
32、
33、求出平均值和方差后得到對應的高斯分布,通過高斯分布將存在的噪聲點進行選擇性剔除,剔除的具體原則如下:
34、1)當交叉域中的元素個數(shù)滿足nnum<α,則不進行異常值剔除。
35、2)當交叉域中的元素個數(shù)滿足β>nnum≥α,則將大于μ+3σ和小于μ-3σ的代價值當作噪聲點的代價值,將這些點剔除掉,剩下的就為正確的代價值點。
36、3)當交叉域中的元素個數(shù)滿足nnum≥β,這將大于μ+σ和小于μ-σ的代價值判斷為噪聲點,將其剔除。
37、其中的α和β為控制閾值,逋過設定這兩個值去判斷是否對交叉域中的代價值進行異常值剔除和對那些值進行剔除。
38、第三步計算最終結果。通過對交叉域中的異常值進行剔除以后,得到新的交叉域s,且剩下的交叉域中代價值則都為正確的代價值,通過剩下的這些代價值求對應平均值,即為最終像素的代價值。具體公式如(16)所示,cagg(p)表示的就是最終通過十字交叉域代價聚合后的p點的最終代價值,n′num代表的就是提出交叉域中的噪聲后剩下的元素個數(shù),n′p則表示的就是新的交叉域s’。
39、
40、通過在十字交叉域的代價聚合的過程當中引入異常值剔除的優(yōu)化方法,能夠在一定程度上抑制圖片中噪聲對最終立體匹配的影響,得到一個穩(wěn)定性更高的立體匹配算法。
41、一種基于雙目立體視覺和點云的人體三維重建方法,所述步驟s3的目的在于,為了提高立體匹配速度,并且不需要設定視差范圍搜索。分層立休匹配策略不只局限于對當前左右圖像對的立體匹配,而是通過圖片下采樣的方式,得到多對不同尺度的左右圖片對,一般使用的下釆樣方式是高斯下采樣,就會得到分層的左右圖片對,上層的圖片會比下層的圖片小四分之一,圖片的長和寬各減少二分之一般設置采樣三次,就會得到四層的高斯金字塔圖片對,最下面的一具是原圖片對,而第四層是通過三次高斯下采樣后的左右圖片對。分層立體匹配的策略是先對第四層的左右圖像對進行立體匹配,然后通過第四層的立體匹配視差圖推斷第三層左右圖像對的視差搜索范圍,再進行第三層的左右圖像對的立體匹配,一直到第一層的原尺寸左右圖像對進行立體匹配,得到最終的視差圖;通過從粗到細的立體匹配方法,能夠?qū)⒋值淖笥覉D像對的立體匹配結果作用到相對較細的立體匹配當中,也就是用小尺度圖片的視差圖去推斷大圖片的視差搜索范圍。本發(fā)明提出了分層立體匹配優(yōu)化策略。該步驟具體包括以下分步驟:
42、s31,建立左右圖像對高斯金字塔。通過原始左右圖像對去建立的高斯金字塔,也就是進行三次高斯下采樣,每一次下采樣為原來尺寸的四分之一,長和寬各為原來長寬尺寸的二分之一,尺寸最小的在第四層,原始圖像在第一層,如圖6所示。
43、s32,對第四層左右圖像對進行立體匹配。對于第四層的立體匹配,它的算法和傳統(tǒng)的立體匹配算法一樣,先要去設置第一層左右圖像對的視差搜索范圍,這時對于圖片中的每一個像素的視差搜索范圍都是一樣的,并且一般將搜索范圍設置成[0,width*20%],也就是視差最小值為0,最大值為圖片寬度的20%。最終得到視差圖d4和置信圖c4,置信圖表明的是視差圖中每一個視差值的可信度,可信度高的可以讓下一層的視差范圍小一點,否則就大一點。
44、s33,通過上一層獲得的視差圖以及置信圖去計算第n層左右圖像對in中的每一個像素的視差范圍,其中n≤3。對于第n層每一個像素的視差搜索范圍是由它的上一層視差圖dn+1和置信圖cn+1所確定,具體的確定方式如式(17)、(18)、(19)和(20)所示。在像素(i,j)位置的視差搜索范圍是[2db-t,2db+t],db就是上一層在(i/2,j/2)位置的視差值,而t取16或32,它是依據(jù)視差值的可信度cb來確定,如果可信度大于閾值tc,則取16,否則取32。通過式(17)計算出每一個像素的視差范圍,然后再對左右圖像對進行立體匹配,最終得到這一層的視差圖,由于每一個像素的視差范圍都不一樣,而且范圍最大為64個像素,最小為32個像素,因此能夠縮短立體匹配的時間和減少內(nèi)存的占用。
45、
46、s34,通過s33的方式對每一層(除了第四層)確定視差搜索范圍以及進行立體匹配,直到最后一層,求出最后一層的視差圖,就是最終的結果。分層立體匹配策略中的置信圖,它的計算方式如式(21)所示,表示左圖中位置為(i,j)的視差搜索范圍內(nèi)對應的最小代價值,表示第二小的代價值,通過該式可以獲得對應視差值的置信度,且置信度的范圍為[0,1],最小的代價值與第二小的代價值相差越大,表明對應的視差值越可信,反之則越不可信。
47、
48、通過分層立體匹配策略,可以減小代價空間的內(nèi)存占用,降低立體匹配的時間復雜度。同時,通過高斯濾波可以提高算法的抗噪性。因此在高斯金字塔的高層低分辨率左右圖像對中,會由于噪聲的減少而提高立體匹配的準確性,最終得到一個更加可靠的立體匹配結果。
49、一種基于雙目立體視覺和點云的人體三維重建方法,所述步驟s4的目的在于通過本發(fā)明提出的基于中值以及梯度的立體匹配算法,并且根據(jù)分層立體匹配優(yōu)化策略得到人體的視差圖,再根據(jù)相機的內(nèi)外參矩陣將視差圖轉換為三維點云圖,最終通過三角剖分的方法實現(xiàn)人體表面重建。該步驟具體包括以下分步驟:
50、s41,通過立體匹配算法,用雙目相機采集到的人體圖像生成視差圖,如圖7所示。得到視差圖后轉化為深度圖,公式如下所
51、
52、f是相機的焦距。baseline是兩個相機之間的距離,也稱為基線。u_l是左相機圖像平面上點的水平坐標。u_r是右相機圖像平面上點的水平坐標。視差(disparity)為ul-(ur),即兩個坐標的差值。根據(jù)深度圖得到三維空間中的具體點,生成人體的三維點云,最后利用貪婪投影三角化算法將人體三維點云數(shù)據(jù)進行表面重建。
53、至此,我們實現(xiàn)了一種基于雙目立體視覺和點云的人體三維重建方法。
54、與現(xiàn)有技術相比,本發(fā)明的主要改進如下:
55、1、本發(fā)明提出了基于中值與梯度的代價計算。我們的方法減少了因為中心像素的不穩(wěn)定因素造成的計算錯誤。通過引入梯度作為衡量代價值的基礎之一,能夠使得對光照不均勻的圖片產(chǎn)生一定的適用性,提高匹配正確率。
56、2、本發(fā)明進行異常值剔除優(yōu)化。當噪聲點的代價值和區(qū)域中的代價值差距比較大時,會使結果產(chǎn)生很大的錯誤,通過代價聚合異常值剔除優(yōu)化的方法,將十字交叉域中的異常代價值去除,最終能得到一個更加準確的代價平均值。
57、3、本發(fā)明基于分層立體匹配優(yōu)化策略,由不同分辨率從粗到細構建視差圖,實現(xiàn)更好的重建結果,減少資源浪費同時提高了立體匹配速度。