專利名稱:基于標記點的人肢體三維建模方法
技術領域:
本發明涉及一種基于標記點的人肢體三維建模方法,用于感知接口,運動分析和虛擬現實等應用領域,在醫學圖像、生物醫學、手勢識別、視頻會議、視頻游戲、自動新聞播放、電影制作、材料變形、圖象壓縮等方面都有實際應用價值。屬于計算機視覺和計算機圖形學領域。
背景技術:
運動分析領域的研究對象主要分為剛性物體、連接剛體和非剛性物體等。計算機視覺中的運動分析研究均主要集中在對剛體運動的研究,且學者們已取得了一系列的成果,并建立了較為完善的理論框架,但是,在現實世界中大多是非剛體運動。人體屬于非剛體。
在過去的十幾年中,可變形的人體建模已經取得了一些成績。Nahas等使用了B樣條曲面表示人身體和臉部的柔軟的運動。Petland等介紹了一種基于有限元的方法模型。Terzopoulos等介紹了表達成一個超橢球形式的全局形狀參數和樣條形式的局部自由度相結合的可變形的超二次曲面的模型。Min等使用三種基本軟體來對各種形狀的人體上肢和肩部肌肉建模,一個點基元產生一個橢圓體,一組連接的線段產生一個圓柱體,一個三角網格產生一個復雜的形狀。Sminchisescu等提出了一種人體模形,它由運動骨架和肌肉構成,連接的節點構成的骨架由節點的角度參數控制,并覆蓋了包含輔助錐化和彎曲參數的超二次橢圓面構成的肌肉。模型包含30個節點參數和8個內部比例參數,并且每個肢體又包含9個變形參數。Plankers等把一種稱為元球或軟體的隱式曲面附在人體的連接骨架上并按照解剖學的近似程度來排列這些元球。這個人體模型共使用了230個元球,并使用B樣條曲面片進行蒙皮。還可以用blobby分子、軟體、卷積曲面等各種隱式曲面進行人體建模。但這些方法都采用較為復雜的非剛體運動模型,控制參數較多,不能很好的滿足輪廓表示的評價標準即表示的簡潔性和適合于后處理階段的計算。所以這些模型在表示人體輪廓方面缺乏實用性。
發明內容
本發明的目的在于針對現有人體三維模型代表皮膚變形的參數過多的不足,提出一種基于標記點的人肢體三維建模方法,簡單而實現容易,建立的模型使用非常少的參數就可以代表人肢體皮膚的變形,降低運動分析的計算量,適合于各種彈性連接剛體的建模。
為實現這樣的目的,本發明建立的人肢體三維模型分為兩層骨架層和皮膚層。骨架層代表了人肢體的骨架結構,由關節點和連接這些關節點的線段組成。皮膚層用一種新的旋轉圓錐曲面表示,每個肢體只需調整一個變形參數就能反映出皮膚的變形。首先使用雙目立體視覺系統拍攝人肢體擺姿勢的圖像序列,從雙目圖像序列中提取、匹配標記點,通過雙目立體視覺方法確定圖像標記點的空間三維坐標,再根據標記點三維坐標和先驗知識求出骨架的空間三維位置信息。把各個肢體上標記點的三維坐標值代入所屬的旋轉圓錐曲面方程組求出各個肢體的變形參數。最后使用圓球體和旋轉圓錐曲面繪制人肢體模型。
本發明的建模方法主要包括以下幾個步驟1.從圖像中提取、匹配標記點,求出標記點對應的空間三維坐標。
分別在人的上肢體、下肢體上各設置三個標記點,采用雙目立體視覺系統拍攝得到人肢體擺姿勢的圖像序列,提取各個時刻左、右圖像中這些標記點的圖像平面二維坐標,并得出左側攝像機圖像與右側攝像機圖像上標記點之間的對應關系。通過攝像機標定技術求出左、右攝像機圖像上平面二維坐標與世界坐標系空間三維坐標的對應關系,由得到的各個時刻左、右圖像上標記點二維坐標求出對應的空間三維坐標。
因每個肢體只需要3個特征點就能求出其變形參數,本發明方法在人肢體皮膚上貼了六個紙標記點,其中三個在上肢體、三個在下肢體。
2.提取人肢體骨架位置信息。
根據各個肢體三個標記點中兩端的兩個標記點A、B的三維坐標和事先測量得到的標記點A、B處肢體半徑,求出各個時刻骨架端點的空間三維坐標,由此獲得骨架的空間三維位置信息;3.求出變形參數在肢體的兩個標記點A、B形成的直線上方設定空間一點C,經過三點A、B、C的平面外設定一點D,四點A、B、C、D形成三個平面ACD、BCD、ABD,根據這三個平面確定經過點A、B且與直線AC、BC相切的圓錐曲面方程,此圓錐曲面與經過A、B、C三點的平面的交線形成圓錐曲線,把圓錐曲線繞骨架直線旋轉形成旋轉圓錐曲面,建立旋轉圓錐曲面方程組,把得到的各個肢體上標記點的空間三維坐標值代入所屬的旋轉圓錐曲面方程組求解,得到各個時刻各個肢體的旋轉圓錐曲面的變形參數ρ。
4.模型繪制本發明使用OpenGL程序采用平行投影方法繪制三維人肢體模型,使用三個圓球體代表肢體的三個關節點,采用求得的兩個旋轉圓錐曲面方程繪制出的曲面來代表上肢體和下肢體皮膚,連接這三個圓球體和兩個曲面構成人肢體模型。
本發明方法簡單,實現容易。建立的模型使用非常少的參數就可以代表人肢體皮膚的變形,每個肢體只需一個變形參數,具有高層次描述和預測遮擋的能力。本發明方法適合于許多彈性連接剛體的模型建立。實驗采用便宜、容易安裝的視頻攝像頭來采集數據,不需要附加設備,代表皮膚變形的旋轉圓錐曲面方程組和求解算法簡單,大大降低了運動分析的計算復雜性。
圖1為本發明采用的圓錐曲線。
圖1中,A,B,C為三個頂點,通過這三個頂點坐標確定圓錐曲線方程。
圖2為人肢體的骨架結構。
圖2中,j1、j2、j3是關節點,一個手臂有兩個肢體上肢體和下肢體。
圖3為本發明的旋轉圓錐曲面結構示意圖。
圖3中,L是代表人肢體骨架的線段,S是圓錐曲線,S繞L旋轉一周形成旋轉圓錐曲面。P0是線段L上的一點,e是線段L的方向向量,P是旋轉圓錐曲面上任意一點,過P點做與線段L垂直的平面,此平面與圓錐曲線S的交點為PS,此平面與線段L的交點為O,A、B是圓錐曲線S的兩個端點,AL、BL是線段L的兩個端點。
圖4為本發明基于圖像標記點建模的實驗結果。
圖4中,第一行是左側攝像機拍攝的圖像序列,第二行是對應于第一行圖像的反映人肢體運動和皮膚變形的三維模型表達。
具體實施例方式
為了更好地理解本發明的技術方案,以下結合附圖和實施例作進一步的詳細描述。實施例具體針對附圖4左側第一幅圖像(第一時刻左側攝像機拍攝)進行人肢體建模過程的描述。
1.從圖像中提取、匹配標記點并求出標記點對應的空間三維坐標。如圖4左側第一幅圖像,因每個肢體只需要3個特征點就能求出其變形參數,在人體的手臂皮膚上貼了六個紙標記點,其中三個標記點在手臂上肢、三個在手臂下肢。使用雙目立體視覺系統拍攝人肢體擺姿勢的圖像序列。提取上肢體標記點A、B、P的圖像平面二維像素坐標,左側攝像機圖像上標記點的像素坐標分別為A1(365,266),B1(519,190),P1(444,218);右側攝像機圖像上標記點的像素坐標分別為A2(552,289),B2(700,209),P2(627,241)。通過攝像機標定技術求出左右圖像像素坐標與世界坐標系空間三維坐標的關系zC1u1v11=997.95950372.727600994.4506301.477000010xyz1]]>ZC2u2v21=990.50910361.381600986.1246310.2779000100.9097-0.00530.4150-190.49810.00050.99990.01171.9943-0.4150-0.01040.909741.15330001xyz1]]>其中(u1,v1)為左側攝像機圖像上二維像素坐標,(u2,v2)為右側攝像機圖像上二維像素坐標,(x,y,z)為空間三維坐標。
把標記點A、B、P在左、右圖像的像素坐標帶入上述方程求出這些標記點對應的空間三維坐標A(-6.5983,30.516,-853.52),B(115.99,86.684,-791.21),P(58.9288,67.4501,-824.7681)。
2.提取人肢體骨架位置信息。人肢體骨架模型包含關節點j1、j2、j3和連接這些關節點的線段(上肢體、下肢體),如圖2所示。因為圖4中所示上肢體三個標記點中兩端的標記點A、B處肢體半徑幾乎不改變,由事先測量得出標記點A處肢體半徑是40,標記點B處肢體半徑是49,由標記點A、B的坐標和標記點A、B處肢體半徑可求出骨架端點的空間三維坐標AL(xLA,yLA,zLA)=(6.3824,-6.0572,-847.1456)、BL(xLB,yLB,zLB)=(132.3959,41.6061,-782.6021)。就可得骨架的空間三維位置信息。骨架的方向向量是e(m,n,p),其中m=xLB-xLA=126.0135,n=yLB-yLA=47.6633,p=zLB-zLA=64.5435。
3.求出變形參數。在肢體兩端的標記點A、B形成的直線上方設定空間一點C(-6.5983,30.516,-853.52),如圖1所示。經過三點A、B、C的平面方程為fABC(x,y,z)=-0.5937·x-0.0087·y+1.1759·z+1000=0。在平面fABC(x,y,z)外設定一點D(10,10,10),四點A、B、C、D形成三個平面ACD、BCD、ABD,這三個平面的方程分別為平面ACDa0+a1·x+a2·y+a3·z=1000-0.2333·x-91.024·y-8.7428·z=0平面BCDb0+b1·x+b2·y+b3·z=1000-9365.3·x+8874.4·y+390.9·z=0平面ABDu0+u1·x+u2·y+u3·z=1000+85.1095·x-179.2157·y-5.8939·z=0根據這三個平面確定經過點A、B且與直線AC、BC相切的圓錐曲面方程是(a0+a1·x+a2·y+a3·z)(b0+b1·x+b2·y+b3·z)-ρ(u0+u1·x+u2·y+u3·z)=(1000-0.2333·x-91.024·y-8.7428·z)·(1000-9365.3·x+8874.4·y+390.9·z)-ρ(1000+85.1095·x-179.2157·y-5.8939·z)=0建立旋轉圓錐曲面方程組 其中 把前面求得的AL(xLA,yLA,zLA),e(m,n,p),(a0,a1,a2,a3,b0,b1,b2,b3,u0,u1,u2,u3),fABC(x,y,z)的值代入上述非線性方程組,把P(xP,yP,zP)值代入上述方程組中的(x,y,z),采用非線性最小二乘法求出未知參數PS(xS,yS,zS)和ρ=-412.2517,ρ是此時刻上肢體旋轉圓錐曲面的變形參數。
采用同樣的方法可求得代表下肢體皮膚的旋轉圓錐曲面方程。
4.模型繪制。如圖4第2行,使用OpenGL程序采用平行投影方法繪制得到的三維右臂模型,使用三個半徑分別為50、40、30的圓球體代表j1、j2、j3三個關節點,采用代表上肢體和下肢體皮膚的旋轉圓錐曲面方程繪制出曲面,連接這三個關節點和兩個曲面構成人肢體模型。
權利要求
1.一種基于標記點的人肢體三維建模方法,其特征在于包括如下具體步驟1)分別在人的上肢體、下肢體上各設置三個標記點,采用雙目立體視覺系統拍攝得到人肢體擺姿勢的圖像序列,提取各個時刻左、右圖像中這些標記點的圖像平面二維坐標,并得出左側攝像機圖像與右側攝像機圖像上標記點之間的對應關系,通過攝像機標定技術求出左、右攝像機圖像上平面二維坐標與世界坐標系空間三維坐標的對應關系,由得到的各個時刻左、右圖像上標記點二維坐標求出對應的空間三維坐標;2)根據各個肢體三個標記點中兩端的兩個標記點A、B的三維坐標和事先測量得到的標記點A、B處肢體半徑,求出各個時刻骨架端點的空間三維坐標,由此獲得骨架的空間三維位置信息;3)在肢體的兩個標記點A、B形成的直線上方設定空間一點C,經過三點A、B、C的平面外設定一點D,四點A、B、C、D形成三個平面ACD、BCD、ABD,根據這三個平面確定經過點A、B且與直線AC、BC相切的圓錐曲面方程,此圓錐曲面與經過A、B、C三點的平面的交線形成圓錐曲線,把圓錐曲線繞骨架直線旋轉形成旋轉圓錐曲面,并建立旋轉圓錐曲面方程組,把得到的各個肢體上標記點的空間三維坐標值代入所屬的旋轉圓錐曲面方程組求解,得到各個時刻各個肢體的旋轉圓錐曲面的變形參數;4)使用OpenGL程序采用平行投影方法繪制三維人肢體模型,使用三個圓球體代表肢體的三個關節點,采用求得的兩個旋轉圓錐曲面方程繪制出的曲面來代表上肢體和下肢體皮膚,連接這三個圓球體和兩個曲面構成人肢體模型。
全文摘要
一種基于標記點的人肢體三維建模方法,首先采用雙目立體視覺系統拍攝人肢體擺姿勢的圖像序列并從中提取、匹配標記點,確定各個時刻左、右圖像標記點對應的空間三維坐標,據此求出各個時刻各個肢體骨架的空間三維位置信息,把各個肢體上標記點的三維坐標值帶入所屬的旋轉圓錐曲面方程組求出變形參數,最后使用圓球體和旋轉圓錐曲面繪制人肢體模型。本發明方法簡單、實現容易,建立的人肢體三維模型分為骨架層和皮膚層,骨架層代表人肢體的骨架結構,由關節點和連接這些關節點的線段組成,皮膚層用旋轉圓錐曲面表示,每個肢體只需調整一個變形參數就能反映出人肢體皮膚變形,解決了人體三維模型代表皮膚變形參數過多的問題。
文檔編號G06T17/00GK1617175SQ200410089300
公開日2005年5月18日 申請日期2004年12月9日 優先權日2004年12月9日
發明者潘海朗, 劉允才 申請人:上海交通大學