亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于單個(gè)Kinect的簡(jiǎn)易高效三維人體重建方法與流程

文檔序號(hào):11953668閱讀:428來(lái)源:國(guó)知局
一種基于單個(gè)Kinect的簡(jiǎn)易高效三維人體重建方法與流程
本發(fā)明涉及三維人體建模的
技術(shù)領(lǐng)域
,特別涉及一種基于單個(gè)Kinect的簡(jiǎn)易高效三維人體重建方法。
背景技術(shù)
:三維物體快速建模技術(shù)是當(dāng)前計(jì)算機(jī)圖形學(xué)領(lǐng)域的重要研究課題之一,三維物體快速建模技術(shù)是目前物體模型快速重構(gòu)的發(fā)展趨勢(shì)。三維物體重建能夠更加便宜,三維模型如照片和視頻一樣容易獲得。這種技術(shù)被應(yīng)用于許多計(jì)算機(jī)圖形的應(yīng)用程序,如動(dòng)畫(huà),計(jì)算機(jī)游戲,人機(jī)交互和虛擬現(xiàn)實(shí),都需要精確的三維模型。如電子商務(wù)網(wǎng)站平臺(tái),在線購(gòu)物網(wǎng)站,游戲領(lǐng)域等。RGB-D相機(jī)是一種新興的掃描設(shè)備。RGB-D相機(jī)結(jié)合了光學(xué)相機(jī)和三維激光掃描儀的優(yōu)勢(shì)。它可以獲得測(cè)量物體的三維信息,幾乎是一種便攜式的光學(xué)相機(jī)。三維建模通過(guò)使用RGB-D攝像機(jī)獲取物體的三維信息比使用掃描儀要經(jīng)濟(jì)實(shí)惠得多,尤其是使用微軟的Kinect設(shè)備。Kinect本來(lái)是微軟公司開(kāi)發(fā)的Xbox360主機(jī)的周邊外設(shè),主要用于人機(jī)實(shí)時(shí)交互。基于Kinect的重建技術(shù)有如下的優(yōu)勢(shì):Kinect能夠快速獲取場(chǎng)景三維信息;Kinect是一種主動(dòng)傳感器,它不受環(huán)境可見(jiàn)光譜的干擾;Kinect的核心設(shè)備是彩色攝像機(jī)、紅外線發(fā)射器和紅外線CMOS攝影機(jī),這些設(shè)備都比較廉價(jià),因而Kinect的售價(jià)也較為低廉;此外,Kinect的操作與普通攝像機(jī)類(lèi)似,易于使用。微軟還開(kāi)發(fā)了一個(gè)開(kāi)源項(xiàng)目KinectFusion,可以幫助普通用戶(hù)同時(shí)掃描和重建場(chǎng)景的模型,目前已有很多基于這種技術(shù)的應(yīng)用程序,如紐康等,用KinectFusio來(lái)進(jìn)行表面映射和跟蹤,或重建室內(nèi)空間。然而,通過(guò)KinectFusion進(jìn)行三維建模只利用了深度信息,并且沒(méi)有考慮物體變形的問(wèn)題。此外,用RGB-D攝像機(jī)進(jìn)行三維人體建模時(shí),為方便掃描,用戶(hù)必須使自己的全身都被攝像機(jī)掃描到。雖然也有一種方法是把三臺(tái)Kinect在置在前方和后方來(lái)達(dá)到全身覆蓋,但掃描的速度和精度都不理想,一個(gè)好的掃描策略仍然是提高三維建模的效率和方便性的重要手段。ICP(IterativeClosestPoint)算法,即迭代最近點(diǎn)算法,是一種基于自由形態(tài)曲面的配準(zhǔn)方法。當(dāng)多幀數(shù)據(jù)重疊的區(qū)域非??拷鼤r(shí),因ICP算法具有較高的效率和較好的可靠性,通常被研究者采用。對(duì)靜態(tài)物體的掃描,ICP算法是當(dāng)前比較通用的研究三維形狀物體對(duì)齊的技術(shù),是一種基于自由形態(tài)曲面的配準(zhǔn)方法。ICP算法的基本思想是:根據(jù)前一幀上的數(shù)據(jù)點(diǎn)集在后一幀掃描數(shù)據(jù)上找到對(duì)應(yīng)的點(diǎn)集,即找到初始匹配點(diǎn)。然后以對(duì)應(yīng)點(diǎn)間的距離的平方和最小為原則,建立目標(biāo)方程。再根據(jù)最小二乘法原理來(lái)轉(zhuǎn)換參數(shù),即找到精確匹配點(diǎn)。三維人體重建所需要的是一組不同角度的人體點(diǎn)云數(shù)據(jù)。重建時(shí)要首先解決的問(wèn)題就是如何通過(guò)匹配它們的重疊區(qū)域進(jìn)行剛性的逐幀對(duì)齊。目前,基于圖像和基于形狀的方法的研究已經(jīng)得到了很好的成果?;趫D像的對(duì)齊通常是基于稀疏特征匹配和極線幾何的方法,如Khoshelham等人提出的一種通過(guò)極線搜索來(lái)獲得更精確的對(duì)齊效果的方法;而基于形狀對(duì)齊的方法通常是基于迭代最近點(diǎn)算法(ICP)。由于ICP及其各種衍生算法可以解決局部剛性對(duì)準(zhǔn)問(wèn)題,通常實(shí)時(shí)三維重建中對(duì)齊連續(xù)幀的方法就是基于這樣的方法,特別是使用Kinect進(jìn)行的人體模型重建。數(shù)據(jù)幀對(duì)齊算法的效率和魯棒性是有待突破的關(guān)鍵技術(shù)問(wèn)題。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于單個(gè)Kinect的簡(jiǎn)易高效三維人體重建方法,該方法基于深度攝像機(jī)的三維人體建模技術(shù),使用單個(gè)Kinect,通過(guò)六個(gè)角度,每個(gè)角度三幀的掃描獲得人體點(diǎn)云信息,然后經(jīng)由對(duì)捕捉到的點(diǎn)云數(shù)據(jù)的處理快速高效生成三維人體模型。本發(fā)明的目的通過(guò)下述技術(shù)方案實(shí)現(xiàn):一種基于單個(gè)Kinect的簡(jiǎn)易高效三維人體重建方法,所述方法包括下列步驟:S1、使用單個(gè)Kinect掃描人體,獲得人體顏色和深度數(shù)據(jù),進(jìn)行數(shù)據(jù)分割,去除背景,產(chǎn)生點(diǎn)云數(shù)據(jù);S2、進(jìn)行人體點(diǎn)云數(shù)據(jù)的局部對(duì)齊,使用剛性ICP將每個(gè)角度的三個(gè)點(diǎn)云對(duì)齊,然后合并成一個(gè)點(diǎn)云;S3、進(jìn)行人體點(diǎn)云數(shù)據(jù)的全局對(duì)齊,具體包括:S301、初始配準(zhǔn),對(duì)初始位置進(jìn)行優(yōu)化,選取點(diǎn)云的邊緣部分的點(diǎn)集作控制點(diǎn)集,用剛性ICP對(duì)齊,使點(diǎn)云的邊緣部分重合,為下一步的對(duì)齊提供較好的初始狀態(tài);S302、剛性配準(zhǔn),用剛性ICP進(jìn)行點(diǎn)云數(shù)據(jù)間的精細(xì)配準(zhǔn);S303、非剛性配準(zhǔn),用基于EmbeddedDeformationGraph的非剛性配準(zhǔn)方法進(jìn)行點(diǎn)云數(shù)據(jù)間的精細(xì)配準(zhǔn);S4、用得到的完整人體點(diǎn)云進(jìn)行泊松表面重建得到最終的三維人體模型。進(jìn)一步地,所述步驟S1具體包括:S101、使用單個(gè)Kinect掃描人體以獲取人體點(diǎn)云數(shù)據(jù);S102、對(duì)人體RGB-D數(shù)據(jù)進(jìn)行去背景處理;S103、修復(fù)數(shù)據(jù)誤差,將亮度和色調(diào)落差大的部分從點(diǎn)云中刪去。進(jìn)一步地,所述步驟S101、使用Kinect掃描人體以獲取人體點(diǎn)云數(shù)據(jù)具體過(guò)程如下:將Kinect放在人體腰部的高度,距人體水平距離為0.8-1.2米,掃描時(shí),人體首先正面面對(duì)Kinect站好,然后依次沿右轉(zhuǎn)5個(gè)60度,讓Kinect掃描到人體的6個(gè)角度,上述6個(gè)角度分別為正面、正面左轉(zhuǎn)60度、正面右轉(zhuǎn)60度、背面、背面左轉(zhuǎn)60度、背面右轉(zhuǎn)60度;在每一個(gè)角度中分別拍攝上、中、下三幀圖像,其中上幀對(duì)應(yīng)kinect上轉(zhuǎn)20度,下幀對(duì)應(yīng)kinect下轉(zhuǎn)20度,中幀對(duì)應(yīng)kinect無(wú)任何旋轉(zhuǎn)。進(jìn)一步地,所述步驟S2具體包括:S201、將每個(gè)角度的上和下兩幀圖像的點(diǎn)云通過(guò)旋轉(zhuǎn)變換粗略地對(duì)齊到中幀圖像的點(diǎn)云上;S202、使用剛性ICP算法,將上、中、下三幀圖像的點(diǎn)云對(duì)齊且合并到中幀圖像的點(diǎn)云上形成一個(gè)點(diǎn)云。進(jìn)一步地,所述剛性ICP包括以下步驟:1)分別計(jì)算兩個(gè)點(diǎn)集P和Q的重心,并把兩個(gè)點(diǎn)集分別平移到其重心處;2)根據(jù)一定的幾何特征作為標(biāo)準(zhǔn),分別在兩個(gè)點(diǎn)集中選取對(duì)應(yīng)點(diǎn)對(duì),生成控制點(diǎn)集C和D;3)通過(guò)奇異值分解的方法求出使控制點(diǎn)集C匹配到D上的空間變換f;4)根據(jù)空間變換f對(duì)點(diǎn)集P實(shí)行變換;5)判定是否達(dá)到精度要求或抵達(dá)最大迭代次數(shù),是則終止算法,否則重復(fù)上述步驟直至算法終止。進(jìn)一步地,所述步驟S303、非剛性配準(zhǔn),用基于EmbeddedDeformationGraph的非剛性配準(zhǔn)方法進(jìn)行點(diǎn)云數(shù)據(jù)間的精細(xì)配準(zhǔn)具體過(guò)程如下:S3031、對(duì)于輸入的兩個(gè)點(diǎn)云P和Q,對(duì)點(diǎn)云P下采樣得到一個(gè)較小的點(diǎn)云G,對(duì)點(diǎn)云P和Q下采樣得到較小的點(diǎn)云C和D;S3032、使用點(diǎn)云G構(gòu)建EmbeddedDeformationGraph,點(diǎn)云G上的點(diǎn)構(gòu)成Graph的節(jié)點(diǎn),然后每個(gè)節(jié)點(diǎn)包含一個(gè)變換矩陣,每個(gè)變換矩陣由一個(gè)旋轉(zhuǎn)矩陣R和一個(gè)平移矩陣T組成;S3033、使用點(diǎn)云C和D尋找對(duì)應(yīng)點(diǎn)對(duì),即對(duì)點(diǎn)云C中的每個(gè)點(diǎn)尋找其在點(diǎn)云D上的對(duì)應(yīng)點(diǎn);S3034、使用對(duì)應(yīng)點(diǎn)對(duì)和EmbeddedDeformationGraph計(jì)算變換矩陣,Graph上每一個(gè)節(jié)點(diǎn)有一個(gè)變換矩陣,每個(gè)變換矩陣由一個(gè)旋轉(zhuǎn)矩陣和一個(gè)平移矩陣組成,最小化E=Erigid+Esmooth+Ecorr,最小化Erigid是為了保證單個(gè)旋轉(zhuǎn)矩陣的剛性程度,最小化Esmooth是為了保證整體變換的光滑程度,最小化Ecorr是為了把對(duì)應(yīng)點(diǎn)之間的距離縮小;S3035、計(jì)算出變換矩陣后便可以使用EmbeddedDeformationGraph將點(diǎn)云P進(jìn)行變形從而對(duì)齊到點(diǎn)云Q上。進(jìn)一步地,采用高斯牛頓法求解非線性最小二乘問(wèn)題E=Erigid+Esmooth+Ecorr,在高斯牛頓法的每一次迭代中,求解線性方程組時(shí)用cholesky分解方法。進(jìn)一步地,所述空間變換f的求解思想為:根據(jù)幾何特性對(duì)數(shù)據(jù)進(jìn)行匹配,并設(shè)這些匹配點(diǎn)為假想的對(duì)應(yīng)點(diǎn),然后根據(jù)上述對(duì)應(yīng)關(guān)系求解運(yùn)動(dòng)參數(shù),再利用上述運(yùn)動(dòng)參數(shù)對(duì)數(shù)據(jù)進(jìn)行變換,并利用同一幾何特征,確定新的對(duì)應(yīng)關(guān)系,重復(fù)上述過(guò)程。進(jìn)一步地,所述幾何特征是空間中點(diǎn)到平面之間的距離最小的點(diǎn)。進(jìn)一步地,所述剛性ICP的算法具體過(guò)程如下:設(shè)三維空間中的兩個(gè)點(diǎn)pi=(xi,yi,zi),qi=(xj,yj,zj),它們的歐式距離可以表示為:d(pi,qi)=||pi-qi||=(xi-xj)2+(yi-yj)2+(zi-zj)2;]]>三維點(diǎn)云匹配問(wèn)題的目的是找到使P匹配上Q的旋轉(zhuǎn)矩陣R和平移矩陣T,對(duì)于qi=R·pi+T,i=1,2...N利用最小二乘法求解最優(yōu)解使E=Σi=1N|R·pi+T-qi|2]]>最小時(shí)的R和T,先對(duì)平移矩陣T進(jìn)行初始的估算,具體方法是分別得到點(diǎn)集P和Q的中心:p=1nΣi=1Npi,q=1nΣi=1Nqi]]>分別將點(diǎn)集P和Q平移至中心點(diǎn)處:p'i=pi-p,q'i=qi-q則上述最優(yōu)化目標(biāo)函數(shù)可以轉(zhuǎn)化為:E=Σi=1N|R·(p′i+p)+T-(q′i+q)|2]]>最優(yōu)化問(wèn)題分解為求使E最小的R,根據(jù)R求出T;選取P、Q兩個(gè)點(diǎn)集中一部分具有可靠的對(duì)應(yīng)關(guān)系的點(diǎn)作為控制點(diǎn),配準(zhǔn)問(wèn)題轉(zhuǎn)化為:E=Σi=1N|R·ci+T-di|2]]>計(jì)算對(duì)應(yīng)點(diǎn)對(duì)之間的距離時(shí)采用點(diǎn)與平面之間的距離,配準(zhǔn)問(wèn)題可進(jìn)一步轉(zhuǎn)化為:E=Σi=1N((R·ci+T-di)·ni)2]]>這里,ci,di為對(duì)應(yīng)點(diǎn)對(duì),ni為di上的法向,ci∈C,di∈D,C、D為包含m個(gè)點(diǎn)的控制點(diǎn)集,對(duì)C中每一個(gè)點(diǎn)ci,在D中都存在一個(gè)匹配點(diǎn)di,如此便得到m個(gè)對(duì)應(yīng)點(diǎn)對(duì);通過(guò)奇異值分解的方法求出使E最小的R,具體方法是:首先平移矩陣T的表示形式是:T=100tx010ty001tz0001]]>旋轉(zhuǎn)矩陣R的表示形式是:R=r11r12r130r21r22r230r31r32r3300001]]>其中r11=cosβcosγ,r12=-sinγcosα+cosγsinαsinβ,r13=sinαsinγ+sinβcosαcosγ,r21=cosβsinγ,r22=cosγcosα+sinγsinαsinβ,r23=-sinαcosγ+sinβcosαsinγ,r11=-sinβ,r12=sinαcosβ,r13=cosβcosα,α、β、γ分別代表沿x、y、z軸旋轉(zhuǎn)的角度;那么當(dāng)α、β、γ約等于0時(shí),變換矩陣f=R·T近似為:f=R·T=1-γβtxγ1-αty-βα1tz0001]]>代入原配準(zhǔn)問(wèn)題,可使原配準(zhǔn)問(wèn)題進(jìn)一步轉(zhuǎn)化為:(R·ci+T-di)·ni=(M·cixciyciz1-dixdiydiz1)·nixniyniz0]]>上述線性最小二乘問(wèn)題,用奇異值分解的方法求解。本發(fā)明相對(duì)于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:本發(fā)明公開(kāi)了一種基于單個(gè)Kinect的快速、高效、輕便的三維人體建模方法,能夠使用戶(hù)方便地獲取自己的三維人體模型,用戶(hù)需要的只是在Kinect面前轉(zhuǎn)一個(gè)圈。并且這種方法對(duì)環(huán)境的適應(yīng)能力強(qiáng),可以在諸如家里或辦公室這樣狹窄的空間內(nèi)實(shí)現(xiàn)三維人體建模,而所需要的設(shè)備也僅僅是一臺(tái)個(gè)人電腦和一臺(tái)Kinect。這種新的三維人體建模方法可適用于大多數(shù)應(yīng)用,比如數(shù)字測(cè)量、產(chǎn)品設(shè)計(jì)和在線購(gòu)物,用戶(hù)可以利用本方法所生成的人體模型進(jìn)行虛擬試衣,而毋須親自到服裝店去。附圖說(shuō)明圖1是本發(fā)明中提出的一種基于單個(gè)Kinect的三維人體建模方法的流程步驟圖;圖2是本發(fā)明中全局對(duì)齊的流程步驟圖;圖3是非剛性對(duì)齊的效果示意圖;圖4是本發(fā)明方法的最終模型效果圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。實(shí)施例請(qǐng)參見(jiàn)圖1,圖1是本實(shí)施例中提出的基于單個(gè)Kinect的三維人體建模方法的流程步驟圖。圖1所示的基于單個(gè)Kinect的三維人體建模方法,包含四個(gè)步驟:S1、用Kinect掃描人體,提取點(diǎn)云,獲取人體的顏色和深度的數(shù)據(jù)。分析得到的數(shù)據(jù),并進(jìn)行數(shù)據(jù)分割,去除背景。S2、進(jìn)行人體點(diǎn)云數(shù)據(jù)的局部對(duì)齊。使用剛性配準(zhǔn)將每個(gè)角度的三個(gè)點(diǎn)云對(duì)齊,然后合并成一個(gè)點(diǎn)云。S3、進(jìn)行人體點(diǎn)云數(shù)據(jù)的全局對(duì)齊,包含初始配準(zhǔn)、剛性配準(zhǔn)和非剛性配準(zhǔn)。初始配準(zhǔn),對(duì)初始位置進(jìn)行優(yōu)化,為下一步的對(duì)齊提供較好的初始狀態(tài)。剛性配準(zhǔn),用剛性ICP進(jìn)行點(diǎn)云數(shù)據(jù)間的精細(xì)配準(zhǔn)。非剛性配準(zhǔn),用一種基于EmbeddedDeformationGraph的非剛性配準(zhǔn)方法進(jìn)行點(diǎn)云數(shù)據(jù)間的精細(xì)配準(zhǔn),從而克服剛性ICP無(wú)法對(duì)齊的人體細(xì)微的動(dòng)作變化。S4、用得到的完整人體點(diǎn)云進(jìn)行泊松表面重建得到最終的三維人體模型。本方法的具體實(shí)施步驟如下:具體應(yīng)用中,所述步驟S1具體包括:S101、使用Kinect掃描人體以獲取人體點(diǎn)云數(shù)據(jù);掃描時(shí)的布置:Kinect放在人體腰部附近的高度,距人體水平距離為1米。掃描時(shí),人體首先面對(duì)Kinect站好,待Kinect掃描完正面后,人體自己沿右轉(zhuǎn)5個(gè)60度,讓Kinect掃描到人體的6個(gè)角度。這6個(gè)角度分別為正面、正左轉(zhuǎn)60度、正面右轉(zhuǎn)60度、背面、背面左轉(zhuǎn)60度、背面右轉(zhuǎn)60度。而每一個(gè)角度分別拍攝上(kinect上轉(zhuǎn)20度)、中、下(kinect下轉(zhuǎn)20度)三幅。令Kinect上下轉(zhuǎn)動(dòng)是通過(guò)控制Kinect自身的電機(jī)來(lái)實(shí)現(xiàn)的。拍攝過(guò)后,得到6乘以3即18個(gè)點(diǎn)云,點(diǎn)云中的每個(gè)點(diǎn)深度信息(三維坐標(biāo)信息)和顏色信息,具體是:每個(gè)點(diǎn)儲(chǔ)存有3個(gè)浮點(diǎn)數(shù)值,這3個(gè)數(shù)值分別代表人體的三維空間坐標(biāo)信息,即x坐標(biāo),y坐標(biāo)和z坐標(biāo)的數(shù)值。其中,y坐標(biāo)代表點(diǎn)的高度,z坐標(biāo)代表Kinect視角的深度,即離Kinect的遠(yuǎn)近,剩下的x坐標(biāo)則代表了水平位置,即左右。3個(gè)坐標(biāo)的單位均為毫米(mm)。同時(shí)每個(gè)點(diǎn)還儲(chǔ)存有3個(gè)字節(jié),代表了使用RGB表示的顏色信息,3個(gè)字節(jié)分別對(duì)應(yīng)R、G、B的值。S102、對(duì)人體點(diǎn)云數(shù)據(jù)進(jìn)行去背景處理;遍歷點(diǎn)云中的每個(gè)點(diǎn),根據(jù)點(diǎn)的深度值即z坐標(biāo)的值來(lái)判斷屬于前景還是背景,將所有屬于背景的點(diǎn)去掉。由于人體站在距Kinect水平距離為1米的位置,可以大致得出區(qū)分前景和背景的標(biāo)準(zhǔn)是,z坐標(biāo)的值大于1500mm的認(rèn)為是背景并去除掉。這個(gè)標(biāo)準(zhǔn)適用于大部分人體,但如果人體的體型較為特殊,也可以進(jìn)行適當(dāng)?shù)恼{(diào)整。S103、修復(fù)數(shù)據(jù)誤差由于Kinect捕捉深度數(shù)據(jù)和顏色數(shù)據(jù)是分別使用了兩個(gè)攝像頭的,因此兩種數(shù)據(jù)并不能完全吻合,會(huì)存在對(duì)應(yīng)上的誤差。由此,對(duì)點(diǎn)云進(jìn)行修復(fù)是必要的,否則這種誤差會(huì)影響最后的建模效果。鑒于這一誤差出現(xiàn)在單個(gè)點(diǎn)云的邊緣位置,可以對(duì)18個(gè)點(diǎn)云中的每一個(gè)點(diǎn)云的邊緣位置進(jìn)行檢測(cè),將亮度和色調(diào)落差大的部分從點(diǎn)云中刪去,來(lái)把這個(gè)誤差修復(fù)。具體方法是:掃描點(diǎn)云的邊緣部位,將亮度落差>0.2(亮度取值范圍0-1),色調(diào)>10(取值范圍0-360)的點(diǎn)去掉。具體應(yīng)用中,所述步驟S2對(duì)人體點(diǎn)云數(shù)據(jù)進(jìn)行局部對(duì)齊具體包括:Kinect捕捉到的18個(gè)點(diǎn)云,是由6個(gè)角度,每個(gè)角度由上、中、下3幀構(gòu)成的。局部對(duì)齊就是要把每個(gè)角度的上、中、下3幀對(duì)齊,然后合成1個(gè)點(diǎn)云。S201、對(duì)齊前的預(yù)備工作;在上面的拍攝中,拍攝上幀和下幀的點(diǎn)云時(shí)Kinect分別上轉(zhuǎn)20度和下轉(zhuǎn)20度,因此對(duì)上和下的點(diǎn)云分別上轉(zhuǎn)20度、下轉(zhuǎn)20度。這一旋轉(zhuǎn)點(diǎn)云的動(dòng)作是通過(guò)把點(diǎn)云中的每一個(gè)點(diǎn)都和同一個(gè)旋轉(zhuǎn)矩陣進(jìn)行矩陣運(yùn)算而實(shí)現(xiàn)的。根據(jù)步驟S101中對(duì)點(diǎn)云數(shù)據(jù)的描述,點(diǎn)云中的一個(gè)點(diǎn)A(x,y,z),其三維坐標(biāo)可轉(zhuǎn)變?yōu)榫仃嘪=[x,y,z]T將點(diǎn)A沿各軸轉(zhuǎn)動(dòng)對(duì)應(yīng)的的各個(gè)旋轉(zhuǎn)矩陣為:沿x軸旋轉(zhuǎn):Rx=1000cosθsinθ0-sinθcosθ]]>沿y軸旋轉(zhuǎn):Ry=cosθ0-sinθ010sinθ0cosθ]]>沿z軸旋轉(zhuǎn):Rz=cosθsinθ0-sinθcosθ0001]]>其中θ是旋轉(zhuǎn)的角度,由于此處要把點(diǎn)云上轉(zhuǎn)(下轉(zhuǎn))20度,因此旋轉(zhuǎn)矩陣R應(yīng)取沿x軸旋轉(zhuǎn)的矩陣,θ應(yīng)為20°,把點(diǎn)A與R進(jìn)行矩陣相乘運(yùn)算即可得到變換后的點(diǎn)A’,依此把點(diǎn)云中的每一個(gè)點(diǎn)都作旋轉(zhuǎn)變換后便實(shí)現(xiàn)把點(diǎn)云上轉(zhuǎn)(下轉(zhuǎn))20度。S202、使用剛性ICP進(jìn)行局部對(duì)齊;局部對(duì)齊的方法,是使用剛性ICP對(duì)齊,將3個(gè)點(diǎn)云對(duì)齊(以中間的點(diǎn)云為準(zhǔn),上下分別對(duì)齊到其上),然后合并成1個(gè)點(diǎn)云。對(duì)于Kinect捕捉到的18個(gè)點(diǎn)云,共包含6個(gè)角度,每個(gè)角度有上、中、下3個(gè)點(diǎn)云。每個(gè)角度的3個(gè)點(diǎn)云都要進(jìn)行兩次剛性ICP對(duì)齊,一次把上方的點(diǎn)云對(duì)齊到中間的點(diǎn)云,一次把下方的點(diǎn)云對(duì)齊到中間的點(diǎn)云。也就是說(shuō)點(diǎn)云都是兩兩使用剛性ICP來(lái)對(duì)齊,共有12次這樣的剛性ICP。剛性ICP的基本思路是,給定兩個(gè)點(diǎn)集P、Q,pi∈P,qi∈Q。求出兩個(gè)點(diǎn)集的空間變換f使他們能進(jìn)行空間匹配,f為一未知函數(shù),而且兩點(diǎn)集中的點(diǎn)數(shù)不一定相同。剛性ICP求出空間變換f的基本思想是:根據(jù)某種幾何特性對(duì)數(shù)據(jù)進(jìn)行匹配,并設(shè)這些匹配點(diǎn)為假想的對(duì)應(yīng)點(diǎn),然后根據(jù)這種對(duì)應(yīng)關(guān)系求解運(yùn)動(dòng)參數(shù)。再利用這些運(yùn)動(dòng)參數(shù)對(duì)數(shù)據(jù)進(jìn)行變換。并利用同一幾何特征,確定新的對(duì)應(yīng)關(guān)系,重復(fù)上述過(guò)程。設(shè)三維空間中的兩個(gè)點(diǎn)pi=(xi,yi,zi),qi=(xj,yj,zj),它們的歐式距離可以表示為:d(pi,qi)=||pi-qi||=(xi-xj)2+(yi-yj)2+(zi-zj)2]]>三維點(diǎn)云匹配問(wèn)題的目的是找到P和Q變化的矩陣R和T,對(duì)于qi=R·pi+T,i=1,2...N利用最小二乘法求解最優(yōu)解使E=Σi=1N|R·pi+T-qi|2]]>最小時(shí)的R和T,先對(duì)平移向量T進(jìn)行初始的估算,具體方法是分別得到點(diǎn)集P和Q的中心:p=1nΣi=1Npi,q=1nΣi=1Nqi]]>分別將點(diǎn)集P和Q平移至中心點(diǎn)處:p'i=pi-p,q'i=qi-q則上述最優(yōu)化目標(biāo)函數(shù)可以轉(zhuǎn)化為:E=Σi=1N|R·(p′i+p)+T-(q′i+q)|2]]>最優(yōu)化問(wèn)題分解為求使E最小的R,根據(jù)R求出T。在確定對(duì)應(yīng)關(guān)系時(shí),標(biāo)準(zhǔn)的ICP算法所使用的幾何特征是空間中點(diǎn)到點(diǎn)之間的距離最小的點(diǎn),但是由于這個(gè)方法收斂慢,效果不好,采用點(diǎn)與平面的距離替代。需要注意的是這里不需要兩個(gè)點(diǎn)集中的所有點(diǎn),而僅僅是選取一部分具有可靠的對(duì)應(yīng)關(guān)系的點(diǎn),這些點(diǎn)稱(chēng)為控制點(diǎn)。這時(shí),配準(zhǔn)問(wèn)題轉(zhuǎn)化為:E=Σi=1N|R·ci+T-di|2]]>采用點(diǎn)與平面之間的距離確定對(duì)應(yīng)點(diǎn)對(duì),配準(zhǔn)問(wèn)題可進(jìn)一步轉(zhuǎn)化為:E=Σi=1N((R·ci+T-di)·ni)2]]>這里,ci,di為對(duì)應(yīng)點(diǎn)對(duì),ni為di上的法向,ci∈C,di∈D,C、D為包含m個(gè)點(diǎn)控制點(diǎn)集,對(duì)C中每一個(gè)點(diǎn)ci,在D中都存在一個(gè)匹配點(diǎn)di,如此便得到m個(gè)對(duì)應(yīng)點(diǎn)對(duì)??梢酝ㄟ^(guò)奇異值分解的方法求出使E最小的R,具體方法是:對(duì)于第i對(duì)點(diǎn)ci和di,計(jì)算點(diǎn)對(duì)的矩陣Ai:Ai=0(ci-di)Tci-diDiM]]>其中Di=ci+di,DiM是Di的反對(duì)稱(chēng)矩陣形式。對(duì)于每一個(gè)矩陣Ai,計(jì)算矩陣B:B=Σi=1mAiAiT]]>原最優(yōu)化問(wèn)題可以轉(zhuǎn)為求B的最小特征值的特征向量,B的最小特征值的特征向量即為E最小時(shí)的旋轉(zhuǎn)矩陣R。剩下來(lái)還需要進(jìn)行平移矩陣的計(jì)算。通過(guò)旋轉(zhuǎn)矩陣R和中心點(diǎn)可以計(jì)算出平移矩陣:T=q-R·p在初始匹配之后,點(diǎn)集P中所有點(diǎn)根據(jù)求出的旋轉(zhuǎn)矩陣R和平移矩陣T作三維空間變換,然后重新選取控制點(diǎn),重復(fù)計(jì)算旋轉(zhuǎn)矩陣R和平移矩陣T的過(guò)程,直至最近點(diǎn)的距離滿足條件或達(dá)到最大迭代次數(shù)后,算法終止??偨Y(jié)下來(lái),剛性ICP算法的大體流程共有五個(gè)步驟:1)分別計(jì)算兩個(gè)點(diǎn)集P和Q的重心,并把兩個(gè)點(diǎn)集分別平移到其重心處。2)根據(jù)一定的幾何特征作為標(biāo)準(zhǔn),分別在兩個(gè)點(diǎn)集中選取對(duì)應(yīng)點(diǎn)對(duì),生成控制點(diǎn)集C和D。3)通過(guò)奇異值分解的方法求出使控制點(diǎn)集C匹配到D上的變換f。4)根據(jù)f對(duì)點(diǎn)集P實(shí)行變換。5)判定是否達(dá)到精度要求或抵達(dá)最大迭代次數(shù),是則終止算法,否則重復(fù)上述步驟直至算法終止。使用剛性ICP算法,可以實(shí)現(xiàn)點(diǎn)云之間兩兩配準(zhǔn)。在本方法的局部對(duì)齊環(huán)節(jié)中,便是使用剛性ICP對(duì)齊將每個(gè)角度的3個(gè)點(diǎn)云對(duì)齊(以中間的點(diǎn)云為準(zhǔn),上下分別對(duì)齊到其上),然后合并成1個(gè)點(diǎn)云。經(jīng)過(guò)12次配準(zhǔn),最終生成了6個(gè)角度的點(diǎn)云。具體應(yīng)用中,所述步驟S3、進(jìn)行人體點(diǎn)云數(shù)據(jù)的全局對(duì)齊具體包括:在上一步驟S2局部對(duì)齊之后,得到了人體6個(gè)角度的點(diǎn)云。下一步是分別對(duì)齊前3幅點(diǎn)云與后3幅點(diǎn)云。這一全局對(duì)齊過(guò)程共分3步,以正面和正面左轉(zhuǎn)60度的點(diǎn)云為例,介紹這3步過(guò)程:S301、初始配準(zhǔn),即對(duì)初始位置的優(yōu)化,方法是選取2個(gè)點(diǎn)云的邊緣部分的點(diǎn)集作控制點(diǎn)集,用剛性ICP對(duì)齊,使兩點(diǎn)云的邊緣部分重合,給下一步的對(duì)齊提供較好的初始狀態(tài)。S302、剛性配準(zhǔn),用剛性ICP將2個(gè)點(diǎn)云對(duì)齊。剛性ICP算法在步驟S202局部對(duì)齊中已經(jīng)闡述過(guò),此處與步驟S202中描述的剛性ICP為同一方法。S303、非剛性配準(zhǔn),用非剛性ICP再次將2個(gè)點(diǎn)云對(duì)齊。此處的非剛性ICP是基于EmbeddedDeformationGraph的一種非剛性配準(zhǔn)方法。經(jīng)過(guò)這三個(gè)步驟就將2個(gè)點(diǎn)云對(duì)齊了,其余3次對(duì)齊采取同樣的方法。前3幅點(diǎn)云與后3幅點(diǎn)云對(duì)齊后,分別合并得到前和后2個(gè)點(diǎn)云。然后最后的這2個(gè)點(diǎn)云用同樣的3步對(duì)齊后合并得到最終的點(diǎn)云。全局對(duì)齊的流程步驟圖可參照附圖2所示。下面對(duì)全局對(duì)齊中的三個(gè)步驟的具體實(shí)施方法進(jìn)行詳細(xì)說(shuō)明:S301、初始配準(zhǔn);初始配準(zhǔn)對(duì)齊用了剛性ICP來(lái)優(yōu)化初始位置,這樣可以給后續(xù)的對(duì)齊提供好的初始狀態(tài)。這一步初始配準(zhǔn)的流程與步驟S202局部對(duì)齊中所述的剛性ICP類(lèi)似,但是選取控制點(diǎn)是通過(guò)選取輪廓的方法僅選取一次,也就是說(shuō)只選取一次控制點(diǎn),進(jìn)行一次迭代,其具體的實(shí)施方法為:分別選取2個(gè)點(diǎn)云的邊緣部分作對(duì)應(yīng)點(diǎn)對(duì),這個(gè)邊緣部分的選取的方法如下:首先對(duì)于垂直方向上,以人體點(diǎn)云的總高度,平均分為若干個(gè)等距的區(qū)間,一般為10mm一個(gè)區(qū)間。即若對(duì)于一個(gè)身高為170cm的人,會(huì)把這個(gè)人從上到下分為1700/10=170個(gè)區(qū)間,每個(gè)區(qū)間高度為10mm。然后在每個(gè)區(qū)間選擇5個(gè)最左或最右的點(diǎn)(取決于是選擇左邊的輪廓還是右邊的輪廓)作為控制點(diǎn)。以對(duì)齊人體正面點(diǎn)云和正面左轉(zhuǎn)60度的點(diǎn)云為例,首先把人體正面左轉(zhuǎn)60度的點(diǎn)云右轉(zhuǎn)60度,然后分別選取2個(gè)點(diǎn)云的右邊的輪廓為控制點(diǎn)集,根據(jù)剛性ICP的算法把正面左轉(zhuǎn)60度的點(diǎn)云匹配上正面點(diǎn)云。這樣人體正面點(diǎn)云和正面左轉(zhuǎn)60度的點(diǎn)云就粗略地對(duì)齊了,它們的初始位置已經(jīng)非常匹配,接下來(lái)則需要用更精確的剛性ICP算法來(lái)進(jìn)行精細(xì)的配準(zhǔn)。S302、剛性配準(zhǔn);剛性ICP算法在步驟S202局部對(duì)齊中已經(jīng)闡述過(guò),此處與步驟S202中描述的剛性ICP為同一方法。這里不再作具體描述。S303、非剛性配準(zhǔn);非剛性配準(zhǔn)的大體流程共有五個(gè)步驟,對(duì)于輸入的兩個(gè)點(diǎn)云P和Q,這個(gè)非剛性配準(zhǔn)通過(guò)如下步驟把P匹配到Q上:S3031、對(duì)點(diǎn)云P下采樣(采樣單位為50mm)得到一個(gè)較小的點(diǎn)云G,對(duì)點(diǎn)云P和Q下采樣(采樣單位為15mm)得到較小的點(diǎn)云C和D;S3032、使用點(diǎn)云G構(gòu)建EmbeddedDeformationGraph,點(diǎn)云G上的點(diǎn)構(gòu)成Graph的節(jié)點(diǎn),然后每個(gè)節(jié)點(diǎn)包含一個(gè)變換矩陣,每個(gè)變換矩陣由一個(gè)旋轉(zhuǎn)矩陣R和一個(gè)平移矩陣T組成;S3033、使用點(diǎn)云C和D尋找對(duì)應(yīng)點(diǎn)對(duì),即對(duì)點(diǎn)云C中的每個(gè)點(diǎn)尋找其在點(diǎn)云D上的對(duì)應(yīng)點(diǎn);S3034、使用對(duì)應(yīng)點(diǎn)對(duì)EmbeddedDeformationGraph計(jì)算變換矩陣(Graph上每一個(gè)節(jié)點(diǎn)有一個(gè)變換矩陣,每個(gè)變換矩陣由一個(gè)旋轉(zhuǎn)矩陣和一個(gè)平移矩陣組成);最小化E=Erigid+Esmooth+Ecorr,最小化Erigid是為了保證單個(gè)旋轉(zhuǎn)矩陣的剛性程度,最小化Esmooth是為了保證整體變換的剛性程度,最小化Ecorr是為了把對(duì)應(yīng)點(diǎn)之間的距離縮小。這一最小化誤差的問(wèn)題是一個(gè)非線性最小二乘問(wèn)題,可用高斯牛頓法求解。而在高斯牛頓法的每一次迭代中,求解線性方程組時(shí)可用cholesky分解(LLT分解)方法。S3035、計(jì)算出變換矩陣后便可以使用EmbeddedDeformationGraph將點(diǎn)云P進(jìn)行變形從而對(duì)齊到點(diǎn)云Q上。下面對(duì)非剛性ICP的具體實(shí)施方法進(jìn)行詳細(xì)說(shuō)明:在說(shuō)明非剛性配準(zhǔn)的方法之前,首先需要引入EmbeddedDeformationGraph。所謂的EmbeddedDeformationGraph是一種適用于各種圖形的能對(duì)圖形進(jìn)行非剛性變換的變形方法。對(duì)人體點(diǎn)云數(shù)據(jù)進(jìn)行非剛性配準(zhǔn),首先我們需要的是一種能夠?qū)?duì)人體點(diǎn)云數(shù)據(jù)進(jìn)行非剛性變換的方法。EmbeddedDeformationGraph就是一個(gè)很好的選擇,使用這種變形方法能夠?qū)θ梭w進(jìn)行各種復(fù)雜的非剛性變換,以實(shí)現(xiàn)對(duì)人體點(diǎn)云數(shù)據(jù)進(jìn)行非剛性配準(zhǔn)的目的。下面將對(duì)EmbeddedDeformationGraph的結(jié)構(gòu)和其變形方法進(jìn)行闡述:所謂EmbeddedDeformationGraph,顧名思義,它是一種圖。這個(gè)圖是一個(gè)三維空間上的圖。它的每一個(gè)節(jié)點(diǎn)就是一個(gè)三維空間上的點(diǎn)xi=(x,y,z)。而每一個(gè)節(jié)點(diǎn)上還包含有一個(gè)旋轉(zhuǎn)矩陣Ai和一個(gè)平移矩陣bi。旋轉(zhuǎn)矩陣Ai是一個(gè)3行3列的矩陣,其初始值為一單位矩陣。平移矩陣bi是一個(gè)3行1列的矩陣,其初始值為一零矩陣。EmbeddedDeformationGraph的每個(gè)相鄰節(jié)點(diǎn)之間應(yīng)通過(guò)邊相連,但是由于人體點(diǎn)云數(shù)據(jù)是由零散的點(diǎn)組成的,并不包含拓補(bǔ)信息,因此這些相鄰點(diǎn)及相鄰點(diǎn)間的邊可以省去,不作考慮。EmbeddedDeformationGraph中的每一個(gè)節(jié)點(diǎn)之所以包含有一個(gè)旋轉(zhuǎn)矩陣和一個(gè)平移矩陣,是因?yàn)槊總€(gè)節(jié)點(diǎn)都代表了一個(gè)局部的變換,可以把局部范圍內(nèi)的點(diǎn)進(jìn)行三維空間變換,但對(duì)于超出范圍的點(diǎn)則不具影響力,具體是:圖中的每一個(gè)節(jié)點(diǎn)xi都會(huì)在局部影響區(qū)域內(nèi)對(duì)點(diǎn)產(chǎn)生變形,這個(gè)局部影響區(qū)域是一個(gè)以xi為中心,以ri為半徑的一個(gè)球形范圍。任意一個(gè)點(diǎn)vj將被這個(gè)節(jié)點(diǎn)xi映射到新的位置vj’上:上式中的w’是歸一化后的權(quán)重w,w計(jì)算公式為:w(vj,xi,ri)=max(0,(1-d2(vj,xi)/ri2)3)]]>其中d是兩點(diǎn)xi、vj間的歐式距離:d(vj,xi)=||vj-xi||=(xi-xj)2+(yi-yj)2+(zi-zj)2]]>留意到當(dāng)ri大于d時(shí),上式中的權(quán)重w計(jì)算結(jié)果為0,因此節(jié)點(diǎn)xi僅可以把局部范圍內(nèi)的點(diǎn)進(jìn)行三維空間變換,對(duì)于超出范圍的點(diǎn)不具影響力。此外,計(jì)算權(quán)重w的公式中max內(nèi)是比較0和一個(gè)立方數(shù),之所以使用立方是為了使遠(yuǎn)離節(jié)點(diǎn)的點(diǎn)受到的影響盡可能小。按照上面的公式可以推出歸一化后的權(quán)重w’的計(jì)算公式:w′(vj,xi,ri)=max(0,(1-d2(vj,xi)/ri2)3)/Σximax(0,(1-d2(vj,xi)/ri2)3)]]>點(diǎn)vj變形到新的位置vj’上的公式的含義是,首先方括號(hào)內(nèi)的是單獨(dú)一個(gè)節(jié)點(diǎn)對(duì)vj的影響,是以xi為中心對(duì)vj進(jìn)行旋轉(zhuǎn)變換Ai,而后再進(jìn)行平移變換bi,然后是計(jì)算每一個(gè)節(jié)點(diǎn)對(duì)vj影響的權(quán)重,由前面的式子可知xi與vj距離大于ri的權(quán)重為0,即不影響vj,因?yàn)榭赡苡卸鄠€(gè)節(jié)點(diǎn)影響vj,因此需要計(jì)算權(quán)重,進(jìn)行歸一化,以計(jì)算最終的變換。下面來(lái)說(shuō)明EmbeddedDeformationGraph與人體點(diǎn)云數(shù)據(jù)的關(guān)系,對(duì)于輸入的兩個(gè)點(diǎn)云A和B,對(duì)點(diǎn)云A下采樣(采樣單位為50mm)得到一個(gè)較小的點(diǎn)云G,這個(gè)點(diǎn)云G就是用來(lái)構(gòu)造EmbeddedDeformationGraph的,EmbeddedDeformationGraph的節(jié)點(diǎn)xi,其三維空間坐標(biāo)就是點(diǎn)云G的點(diǎn)pi的三維坐標(biāo)。在得到了EmbeddedDeformationGraph后,就可以對(duì)點(diǎn)云進(jìn)行非剛性變換。在繼續(xù)說(shuō)明非剛性配準(zhǔn)方法之前,先回想一下剛性ICP的步驟:首先是根據(jù)一定的幾何特征作為標(biāo)準(zhǔn),分別在兩個(gè)點(diǎn)云中選取對(duì)應(yīng)點(diǎn)對(duì),生成控制點(diǎn)集C和D,接下來(lái)求出使控制點(diǎn)集C匹配到D上的變換f,然后是根據(jù)f對(duì)點(diǎn)云P實(shí)行變換,最后判定是否達(dá)到精度要求或抵達(dá)最大迭代次數(shù),是則終止算法,否則重復(fù)上述步驟直至算法終止。非剛性ICP也是遵循類(lèi)似的步驟,但是不同的是非剛性ICP的變換并不僅僅是一個(gè)變換矩陣f這么簡(jiǎn)單,而是一個(gè)圖,即EmbeddedDeformationGraph。假設(shè)這個(gè)圖包含n個(gè)節(jié)點(diǎn),因?yàn)橐粋€(gè)節(jié)點(diǎn)包含一個(gè)旋轉(zhuǎn)矩陣Ai(9個(gè)未知數(shù))和一個(gè)平移矩陣bi(3個(gè)未知數(shù)),那么需要求解的未知數(shù)數(shù)量就會(huì)達(dá)到12n個(gè)之多,因此非剛性ICP的求解過(guò)程與剛性ICP有著很大的不同,這同時(shí)也是非剛性ICP的一大難點(diǎn)。下面,就這一難點(diǎn),也就是求解n個(gè)變換矩陣進(jìn)行詳細(xì)的說(shuō)明:求解n個(gè)變換矩陣的過(guò)程是通過(guò)最小化3個(gè)能量來(lái)實(shí)現(xiàn)的。首先,是第一個(gè)能量Erigid,最小化Erigid是為了保證旋轉(zhuǎn)矩陣Ai的剛性程度,其具體的公式為:Erigid=Σxi((a1Ta2)2+(a1Ta3)2+(a2Ta3)2+(1-a1Ta1)2+(1-a2Ta2)2+(1-a3Ta3)2)]]>上式中的a1、a2、a3是指轉(zhuǎn)矩陣Ai的3個(gè)列向量。這個(gè)公式的具體含義是,對(duì)每一個(gè)節(jié)點(diǎn)xi,其旋轉(zhuǎn)矩陣Ai需要盡可能滿足兩個(gè)條件,一個(gè)是aiTaj為0,i、j=1、2、3,i≠j,一個(gè)是aiTai為1,i=1、2、3。滿足第一個(gè)條件是為了使各列向量之間盡可能垂直,滿足第二個(gè)條件是為了使列向量盡可能為單位向量。滿足兩條件后便可保證旋轉(zhuǎn)矩陣Ai的剛性程度。接下來(lái),是第二個(gè)能量Esmooth,最小化Esmooth是為了保證整體變換的剛性程度,其具體公式為:Esmooth=ΣxiΣxjw′(xi,xj,ri+rj)||Ai(xj-xi)+xi+bi-(xj+bj)||22]]>這個(gè)公式的具體含義是,對(duì)每一個(gè)節(jié)點(diǎn)xi,其它的節(jié)點(diǎn)xj受到這個(gè)節(jié)點(diǎn)xi的影響應(yīng)盡可能接近xj對(duì)它自身的影響,我們可以計(jì)算一下,節(jié)點(diǎn)xj受到這個(gè)節(jié)點(diǎn)xi的影響是:xj'=Ai(xj-xi)+xi+bi節(jié)點(diǎn)xj對(duì)它自身的影響是:xj'=Aj(xj-xj)+xj+bj=xj+bj這兩項(xiàng)合起來(lái)就是Esmooth計(jì)算公式的最后一項(xiàng)。由于需要計(jì)算所有其它的節(jié)點(diǎn)xj,因此還需要計(jì)算權(quán)重,進(jìn)行求和。滿足Esmooth盡可能小后,可以保證當(dāng)一個(gè)點(diǎn)v受到復(fù)數(shù)的節(jié)點(diǎn)影響時(shí),v受到的來(lái)自每一個(gè)節(jié)點(diǎn)的影響是協(xié)調(diào)的。這樣做可以保證變形的平滑性,否則v受到的來(lái)自每一個(gè)節(jié)點(diǎn)的影響是不協(xié)調(diào)的,那么變形后就會(huì)與其余受到單個(gè)節(jié)點(diǎn)影響的點(diǎn)有較大的落差,形成噪聲。最后,是能量Ecorr,最小化能量Ecorr是為了把對(duì)應(yīng)點(diǎn)之間的距離縮小,計(jì)算Ecorr的具體公式為:Ecorr=1mΣi=1m||T·ci-di||2]]>上式中,m是控制點(diǎn)集中點(diǎn)的數(shù)量,T是非剛性變換,ci和di是控制點(diǎn)集C、D中的點(diǎn)。最小化能量Ecorr便可以滿足控制點(diǎn)集C經(jīng)非剛性變換T后匹配控制點(diǎn)集D,然后再把非剛性變換T應(yīng)用到點(diǎn)云P上就可以令點(diǎn)云P匹配上點(diǎn)云Q。把上述三個(gè)能量合起來(lái)得到最終需要最小化的能量公式:E=αrigidErigid+αsmoothEsmooth+αcorrEcorr上式中,a是控制各能量比例的參數(shù),arigid=500,asmooth=2,acorr=5。最小化能量E是一個(gè)非線性最小二乘問(wèn)題,可用高斯牛頓法求解。高斯牛頓法是一種通過(guò)迭代求解線性方程組來(lái)解決非線性最小二乘問(wèn)題的方法,首先會(huì)設(shè)定一個(gè)初始解,然后在每一次迭代中會(huì)求解一個(gè)線性方程組,再根據(jù)線性方程組的解更新非線性最小二乘問(wèn)題的解,從而一步步逼近問(wèn)題的真實(shí)解。非線性最小二乘的問(wèn)題可化為如下的基本形式:x=argminx{E}首先,要求解的x就是上文說(shuō)到的n個(gè)變換矩陣,即12n個(gè)未知數(shù)。要用高斯牛頓法求解x,可以先把E拆分成f(x),根據(jù)的公式是:E=12Σi=1n(fi(x))2=12||f(x)||2=12f(x)Tf(x)]]>然后求出f(x)的雅可比矩陣J,并構(gòu)造線性方程組:(JTJ)h=-JTf(x)h是x在這一次高斯牛頓迭代中的增量,高斯牛頓迭代法就是在每一次迭代中修正x的值,這個(gè)就是通過(guò)求出x的增量h實(shí)現(xiàn)的。求解這個(gè)線性方程組,可用cholesky分解方法。求出線性方程組的解h后,更新x:x:=x+h接下來(lái)根據(jù)新的x重新計(jì)算f(x),然后重新計(jì)算J,進(jìn)行下一次迭代,直到h小于一個(gè)閥值為止。如此,便求解出了EmbeddedDeformationGraph的n個(gè)變換矩陣,完成了求解非剛性變換的過(guò)程。接下來(lái)就是把非剛性變換應(yīng)用到點(diǎn)云P,然后根據(jù)非剛性ICP的步驟,下一步是判定是否達(dá)到精度要求或抵達(dá)最大迭代次數(shù),是則終止算法,否則繼續(xù)迭代直至算法終止。而得到最終的完整人體點(diǎn)云后,就可以使用泊松表面重建對(duì)點(diǎn)云進(jìn)行重建得到人體模型。泊松重建可以使最終得到的網(wǎng)格模型包含點(diǎn)顏色。首先,由于Kinect并不是精確的掃描設(shè)備,這造成的后果就是如果使用Kinect在遠(yuǎn)距離掃描人的整體的話,得到的點(diǎn)云數(shù)據(jù)會(huì)是粗糙的,而這種缺陷難以通過(guò)后期處理消除。而本發(fā)明采用了一種在近距離進(jìn)行拍攝的方法,把Kinect拉近到離人只有一米的距離,利用Kinect自帶的電機(jī)讓Kinect自己上下旋轉(zhuǎn)來(lái)獲取整體的人的點(diǎn)云數(shù)據(jù),這種方法很好地克服了在遠(yuǎn)距離掃描人體而導(dǎo)致的點(diǎn)云數(shù)據(jù)太粗糙的問(wèn)題,使得經(jīng)過(guò)后期處理后的人體模型的精度大幅提升。其次,本發(fā)明采用的方法不需要連續(xù)拍攝多幀數(shù)據(jù),該發(fā)明方法是拍3幅然后把3個(gè)點(diǎn)云對(duì)齊,數(shù)據(jù)量比較少,拍攝時(shí)間相對(duì)也較少。并且在后續(xù)處理中,該發(fā)明方法并沒(méi)有在對(duì)齊前就重建mesh,而是一直用點(diǎn)云最后再泊松重建,因?yàn)閙esh的包含的信息比點(diǎn)云多,可能會(huì)出現(xiàn)更多的誤差。然后,該發(fā)明中對(duì)齊方法采用的是一種三步驟的對(duì)齊方法。在對(duì)齊的第一步里,用了快速的剛性ICP優(yōu)化初始位置,這樣可以給后續(xù)的對(duì)齊提供好的初始狀態(tài),第二步是使用精細(xì)的剛性ICP進(jìn)行精確的配準(zhǔn),最后==采用了非剛性ICP進(jìn)行對(duì)齊,有效地克服了剛性ICP無(wú)法對(duì)齊人體細(xì)微動(dòng)作變化的問(wèn)題。綜上所述,本發(fā)明公開(kāi)了一種基于單個(gè)Kinect的快速、高效、輕便的三維人體建模方法,能夠使用戶(hù)方便地獲取自己的三維人體模型,用戶(hù)需要的只是在Kinect面前轉(zhuǎn)一個(gè)圈。并且這種方法對(duì)環(huán)境的適應(yīng)能力強(qiáng),可以在諸如家里或辦公室這樣狹窄的空間內(nèi)實(shí)現(xiàn)三維人體建模,而所需要的設(shè)備也僅僅是一臺(tái)個(gè)人電腦和一臺(tái)Kinect。這種新的三維人體建模方法可適用于大多數(shù)應(yīng)用,比如數(shù)字測(cè)量、產(chǎn)品設(shè)計(jì)和在線購(gòu)物,用戶(hù)可以利用本方法所生成的人體模型進(jìn)行虛擬試衣,而毋須親自到服裝店去。上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1