李靜,尹偉石,孟品超
(長春理工大學 數學與統計學院,長春 130022)
在當前互聯網發展越來越快的今天,從三維人體點云數據中提取人體特征參數,是計算機視覺領域中較為重要的內容。從點云數據中提取人體特征參數的關鍵在于如何快速、準確地提取特征點。國內外研究者相繼對特征參數提取提供了較多的研究思路。Li 等人[1]提出一種多傳感器信息采集系統獲得人體的主要特征參數。馬燕等人[2]構建卷積神經網絡模型結合曲線擬合法計算人體尺寸。黃小源等人[3]利用三維掃描點云數據建立合適的胸圍預測回歸模型獲得胸圍數據。Yan 等人[4]利用掃描儀來捕獲點云擬合到標準模板上來測量多圓周路徑長度。Liu 等人[5]來通過熵權法和主成分分析對胸部形狀分類來獲得最佳測量值。Huang 等人[6]提出一種基于正面人體圖像通過神經網絡預測模型提取相應特征點計算特征參數的方法。鮑陳等人[7]將獲得的人體三維點云數據進行預處理,并結合人體幾何形狀法提取特征點、特征邊界點云,通過三次B 樣條擬合計算圍度求得人體尺寸。Liu 等人[8]利用人體姿態估計和圖像邊緣檢測的非接觸式圍長測量方法。據了解,目前相關研究均是基于仿真數據或含有少量真實數據提取人體特征參數,本文將全部采用真實三維人體點云數據進行人體特征參數研究。
真實三維人體原始點云數據[9]通常會存在一些噪聲點,因此需要對真實三維人體點云數據進行預處理,具體包含有坐標調整和點云分割等。
由于原始點云數據集中存在部分噪聲點,利用濾波處理法得到人體點云輪廓模型。原始點云數據通過掃描系統獲得時是以相機中心為坐標原點,考慮對點云數據進行坐標轉換,使人體位于基準面上。首先,計算人體點云的幾何中心坐標:
其中,N是點云數據個數;P= (px,py,pz);Pi=(xi,yi,zi) ∈R3表示原始點云坐標。根據中心點坐標以及相機擺放角度β(相機擺放位置與X軸的角度)可得到繞Z軸旋轉的仿射變換矩陣M,表示如下:
轉換后點云坐標(x′i,y′i,z′i)計算公式如下:
其中,M′表示M的轉置。將人體三維點云模型調整到以人體中心點為坐標原點的坐標軸上,用Ω表示整個人體調整后點云數據集,如圖1 所示,進而可以識別人體正背面,其中Z軸方向為人體縱向方向。

圖1 真實三維人體點云示意圖
通過有效的人體分割[10]可以減少計算量以及提取特征點的難度,下面將人體分割成不同部分提取相應的特征點。人體特征點估計位置[11]如圖2 所示。

圖2 各特征點所在水平面對應位置示意圖
考慮將腋窩點和會陰點作為分割點來分割人體形狀,如圖3 所示,人體點云數據集可以分成雙臂、雙腿和軀干與頭部,則下式成立:

圖3 人體分割示意圖
其中,ΩLA、ΩRA分別為左、右臂的數據集;ΩLL、ΩRL分別為左、右腿的數據集;ΩMB為軀干與頭部數據集。
在獲得調整后的三維人體點云數據后,首先計算人體身高H,其表達式為:
其中,Zmax為點云數據中人體Z軸方向上最大值;Zmin為點云數據中人體Z軸方向上最小值。人的身高值H進行歸一化后就可以利用各個人體特征點位置百分比為提取特征參數提供先驗信息。人體特征點的估計值用hi表示,則:
其中,λchara為人體特征點在歸一化的身高值的占比率;hi為提取人體估計特征點的縱坐標值。
下面以腋窩點為例說明分割點提取方法。根據人體特征點與身高H的比例關系,取肩峰點所在截面hhegin= 0.82H,以肩峰點所在平面為起始搜索位置,垂直向下等步長依次搜索截面掃描點云,步長取值為2 mm。在搜索區域上,針對截取的特征截面點云上,經過特征截面點云邊界識別等操作,得到滿足條件的特征截面邊界環Ra,將得到的各個特征截面邊界環Rai中點云坐標(xi,yi)投影到X軸上,利用空隙查找法,將投影到X軸的坐標點(xi,0)從小到大進行排序,得到序列(xi,1,xi,2,…,xi,n),計算相鄰2 個點(xi,j,0)、(xi,j+1,0)的橫坐標的差值:
當Ci,j大于某個閾值時,判斷出此處存在1個空隙,即出現不連通的環。當空隙個數從1 變為2 時,找到腋窩點截面環Rarmpit,則腋窩點為(xi,j+1,yi,j+1,zi)、(xi,t,yi,t,zi)。類似的方法也可以得到會陰點。
針對人體特征點的提取,本文考慮利用分層探索來尋找特征點,獲得人體特征截面點云,構建搜索區域內人體掃描線點云集合。真實三維人體點云坐標排布方式并不是稠密的,直接截取特征截面上收集的點云分布較稀疏。考慮截取一定厚度的空間點云投影到XOY平面上,提高了計算數據的數據量和準確性,也有利于后續更好地進行目標特征參數的提取。
依據人體特征點與身高的對應關系,考慮在合適的搜索區域范圍內,利用分層探索法獲取人體特征點和特征截面點云,通過特征點云邊界提取,得到特征邊界線,從而計算出三維人體特征參數。
真實人體體型各不相同,但大致可分為兩大類:正常體型與肥胖體型。針對腰圍的計算過程,主要體現在肥胖人群肚子凸出。腰圍長的計算步驟如下:
(1)由人體特征點與身高的關系,取胸高點hchest= 0.72H,臀凸點hbuttocks= 0.53H,確定搜索區域為[0.72H,0.53H]。
(2)在搜索區域內,從h= 0.72H為起始向下搜索平面,獲取一系列特征截面點云集合{S1,S2,…,Sn}。
(3)對于每個特征截面Si上利用邊緣識別法得到邊界輪廓點,得到特征邊界線集合{R1,R2,…,Rn}。
(4)針對每個特征輪廓邊界線Ri上點云構成集合{(xi,j,yi,j)j∈Mi},其中Mi為Si中點云的個數。計算集合{(xi,j,yi,j)j∈Mi}中相鄰兩點之間的距離得到特征輪廓邊界線的圍長并用li表示,則有序拾取點云坐標可以計算圍長:
其中,(xi,j,yi,j)、(xi,j+1,yi,j+1) 表示相鄰兩點的坐標,i∈{1,2,…,n}。
(5)針對每個人體計算出其搜索區域內全部的特征輪廓邊界線的圍長,構成集合tm∈{t1,t2,…,tm,…,tn},若存在tm,使得下式成立:
則該人體體型為正常型,且腰圍值為tm。
若存在ta∈{t1,t2,…,ta,…,tb},使得下式成立:
則該人體體型為肥胖型,且腰圍值為ta。如圖4 所示,展示的是正常和肥胖體型示意圖。

圖4 不同體型示意圖
對于其他人體特征參數提取,以大腿圍和胸圍為例進行介紹。
(1)針對大腿圍的提取,由1.2 中類比腋窩點得到會陰點的提取過程可知,會陰點所在平面為大腿圍特征截面,且大腿根部搜索區域上、下方截取的截面情況如圖5 所示,右側居中圖表示大腿圍所在特征截面圖。

圖5 人體大腿圍搜索域和截面輪廓
(2)針對胸圍的情況,搜索區域從腋窩點harmpit= 0.75H到腰側點hwaist= 0.63H,沿Z軸垂直向下等步長截取點云面{S′1,S′2,…,S′t}。考慮實際測量情況,如圖6 所示,實心點表示的是指胸圍所在特征截面點云,黑色實線表示的是實際計算胸圍的輪廓。計算胸圍時,利用邊緣識別法對所得的特征截面點云進行平滑化,避免胸部凹槽的變化對計算值帶來影響,擬合得到特征輪廓邊界線l′i。

圖6 胸部特征截面計算示意圖
有序拾取點云坐標計算特征截面Si的圍長,比較多個圍長li的值,若存在l′c∈{l′1,l′2,…,l′t},使得下式成立:
取最大值l′c= max{l′1,l′2,…,l′t}為該人體的胸圍長。
針對文獻[9]得到的真實三維人體點云數據計算其相應的特征參數,以一位女性和一位男性為例,如圖7 所示,來驗證該方法的有效性。首先,對原始點云數據進行預處理,再利用人體幾何形狀分析法確定為正常或肥胖體型,再根據特征參數的定義,利用分層探索法來得到定位特征點和特征截面點云,然后利用邊緣識別法提取特征輪廓邊界線,最后有序拾取點云坐標計算總圍長。測試真實人體特征參數的相應結果如表1 所示。

表1 人體特征參數計算結果比較(長度/cm)

圖7 測試人體示意圖
考慮采用相對誤差來估計研究方法的有效性,相對誤差表達式:
其中,E為相對誤差;R、I分別為人體特征參數的真實值與數值結果。
本文提出的算法針對男性、女性的特征參數的提取總時長如表2 所示。

表2 人體特征參數計算總時長
通過表2 可以發現,所提出的方法針對真實三維人體點云數據的特征參數提取的效果較好,各個特征參數的相對誤差都在3%以內。由表2 可知,誤差主要體現在胸圍、臀圍、頸圍和肩寬的計算中,對于上述結果,手動測量與算法計算得到的結果會存在一定的誤差,針對圍長類計算,測量的位置偏差、測量時操作卷尺是否規范等都會引起計算結果的差距。對于肩寬的計算,本文的方法是采用雙臂打開測量肩寬的長度,這可能存在打開角度大小、肌肉收縮程度引起的誤差。
本文提出了一種基于真實三維人體特征參數提取的研究方案,有效地實現從真實三維人體點云數據中提取不同的人體特征參數。在后續的研究工作中,針對點云數據空缺補充、散亂點云精簡、不同人體體型特征點的精準提取等相關內容繼續研究,提高人體特征參數獲取的準確性。并進一步改進方案的快速性和準確性,擴充人體模型樣本數據集,完善人體尺寸自動測量方案,并增加人體更多部位的測量尺寸信息。