[發明專利]一種基于Kinect深度相機的人體尺寸測量方法有效
| 申請號: | 201611055041.6 | 申請日: | 2016-11-25 |
| 公開(公告)號: | CN106780619B | 公開(公告)日: | 2020-03-13 |
| 發明(設計)人: | 張維忠;袁翠梅;閆和東;鄭孟琦;張凡帥;禚冠軍;閆肖東;張玉明;姚孟奇 | 申請(專利權)人: | 青島大學;青島點之云智能科技有限公司 |
| 主分類號: | G06T7/80 | 分類號: | G06T7/80;G06T7/73 |
| 代理公司: | 北京科億知識產權代理事務所(普通合伙) 11350 | 代理人: | 湯東鳳 |
| 地址: | 266071 山*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 kinect 深度 相機 人體 尺寸 測量方法 | ||
1.一種基于Kinect深度相機的人體尺寸的測量方法,其特征在于它包含以下步驟:
(1)、深度相機標定
采用張氏標定法標定,使用Kinect深度相機獲取多張不同角度的深度圖像,對原始深度圖像進行上采樣,提高圖像分辨率,以便于高精度提取角點;通過標定板上每個特征點和其像平面的像點間的對應關系,即通過每張圖像的單應矩陣來完成標定,可通過OpenCV實現自動提取角點信息完成標定;
(2)、深度圖像處理
采用聯合雙邊濾波算法,利用高分辨率的彩色圖像對深度圖像質量進行提升,減少深度圖像中的噪聲干擾;
(3)、點云融合及骨骼點信息獲取
利用ICP算法將相鄰點云圖像進行配準,計算某一幅點云圖像所處坐標系相對于前一幅相鄰點云圖像所處坐標系的旋轉矩陣和平移向量,以獲得拍攝每一幅點云圖像的相機的相對姿態,并以第一幅點云圖像所處坐標系作為融合后人體點云模型的坐標系,進行點云融合,在獲取點云圖像的同時,獲取人體初始姿態的關鍵骨骼點點云信息,以快速尋找到人體關鍵特征;
(4)、人體尺寸計算:
1)預處理
去除腳部以下噪點:尋找x坐標值約等于頭頂點的x值的點云,進行y值從大到小的排序,計算前后兩個點的y值差,其中最大間隔對應的兩個點中較小的那個點的y值便是地面的y值,以此為依據去除腳部以下點云;
2)三維人體點云的剛體變換
以人體左側為X軸正向,上方為Y軸正向,正面朝向為Z軸正向,腳底為XOZ平面,進行點云的剛體變換;
Q=RS+T
Q為剛體變換后的人體點云矩陣,S為原始的的人體點云矩陣,R為3*3的旋轉矩陣,T為3*1的平移向量;
基于骨骼點平移旋轉人體的方法
因kinect與人體的相對位置的不確定,會導致融合產生的人體點云數據在坐標系中的位置不確定;
以從kinect獲取的骨骼點的數據為依據,對點云數據和骨骼點的數據進行剛體變換,將坐標系中的某個位置的人體點云變換到一種標準的位置,以便于后續的人體尺寸測量;
變換的過程是依據骨骼點,計算骨骼點與坐標軸的夾角,以及所有骨骼點與坐標原點的相對位置,并以此作為剛體變換的參數,將人體模型及所有骨骼點變換到坐標系中的確定位置;
3)人體分層
(1)人體點云集合Q={(x,y,z)|x∈(xl,xu),y∈(yl,yu),z∈(zl,zu)};
(2)人體點云的分層集合的數組QX,QY三維體的點云;
其中,QXi={(x,y,z)|x∈[dx*i,dx*(i+1)],y∈(yl,yu),z∈(zl,zu)}
平行YOZ截面的點云;
QYi={(x,y,z)|x∈(xl,xu),y∈[dy*i,dy*(i+1)],z∈(zl,zu)}
平行YOZ截面的點云;
i表示第i個二維截面;
dx,dy表示層間距,l表示下界,u表示上界;
至此,三維點集轉化成多個二維截面集的數組QX,QY;
4)人體分割
對于經過上述處理的人體點云圖,需要提取以下第一類特征點用于人體分割;
第一類特征點:P1會陰點,P2左腋窩點,P3右腋窩點,P4左肩峰點,P5右肩峰點,P6左頸側點,P7右頸側點;
第一類特征點獲取方法
利用骨骼點確定會陰點和腋窩點大體位置和x坐標取值上下限后,根據多個人體縱截面QXi,對每個截交面進行降維操作,將運算結果合成一個點集,再次對點集進行降維操作便可以得到會陰點和腋窩點,而肩峰點和頸側點同樣可以根據人體點云截交面和該點特征利用相應的降維操作獲得;
降維操作如下,
一維線的點集到零維點的運算:
將點集P的x或y或z的最大最小值找到并返回該點;
二維面的點集到零維點的運算:
在二維面的點集P中取出距參考線L距離最近最遠的點并返回該點;
其中各點取值上下限及搜索基準點由kinect獲取的骨骼點和人體比例確定;人體分割方法:
首先分割雙臂,找腋窩點;
遍歷所有的點,找出在人體高度比例上0.68及之上的所有點,之后的操作基于這些點,相當于只在胸部位置以上查找;
在x軸正方向,每隔很小x值范圍遍歷在此范圍內的點,記錄y坐標最小的點YminN,即相當于做豎直截面,找出截面上的最低點;
找出[Ymin1,Ymin2…YminN]中的最大值Ymax=Max{Ymin1,Ymin2…YminN},Ymax即為左腋窩點的y坐標值,由此可以找到左腋窩點;
根據左腋窩點的x坐標值做豎直截面分割左臂,同理在x負半軸分割右臂,
然后分割雙腿,找會陰點;
遍歷所有的點,找到y值最大的點即頭部最高點,記錄其x值;
找出人體高度比例在0.5處的點的y值,篩除所有在此x值左右10cm范圍之外、在y值上下10cm范圍之外的點;
對于所有篩選出來的點,每隔很小x值范圍遍歷在此范圍內的點,記錄y值最小的點Y1minN;
找出[Y1min1,Y1min2…Y1minN]中的最大值Y1max=Max{Y1min1,Y1min2…Y1minN},Y1max即為會陰點的y坐標值,由此可以找到會陰點;
按會陰點的y坐標值做水平截面分割雙腿;左右臂可根據肩峰點和腋窩點來進行分割,左右腿可根據會陰點來進行分割;
至此完成人體分割,生成左腿,右腿,左臂,右臂和無左右臂的身體的點云;
5)特征定位和尺寸計算
參考國標GB1610-2008和實際服裝定制需求對于人體尺寸的定義,選取以下37項尺寸進行計算;
高度:身高,頸椎點高,左右肩高,胸高,腰高,臀高,會陰點高,左右膝高,左右踝高;
寬度:肩寬,胸寬,腰寬,臀寬;
厚度:胸厚,腰厚,臀厚;
圍度:頸圍,胸圍,腰圍,臀圍,左右大腿根圍,左右肘圍,左右腕圍,左右臂圍,左右臂根圍,左右膝圍,左右踝圍;
角度:肩斜角
首先,計算第二類特征點;
第二類特征點:頭頂點,腳底點,頸椎點,腰點,臀點,左右腕點,左右肘點,左右膝點,左右踝點
第二類特征點計算方法
頭頂點,腳底點,頸椎點,腰點,臀點均可由降維操作獲取;
腕點,肘點,膝點,踝點可由骨骼點獲取;
高度計算方法
高度計算結果為其特征點所對應高度,y坐標值;
寬度計算方法
肩寬其中L(pjx,pjz)<0,
Pj是由SPL,SPR,CerP三點所決定的特征面經過G凸包運算后的有序點,其中,SPL為左肩峰點,SPR為右肩峰點,CerP為頸椎點,L表示SPL,SPR兩點所決定的平面直線方程,pjx,pjz表示Pj的x坐標和z坐標;
其余寬度計算結果為其特征點所在特征面的寬度x方向最大最小值差;
厚度計算方法
厚度計算結果為其特征點所在特征面的厚度z方向最大最小值差;
圍度計算方法
圍度計算結果為其特征點所在特征面的G凸包運算結果,其中G運算如下:
由特征面計算圍度的方法:
(I)根據所求位置決定對所求結果進行中值濾波或均值濾波或不濾波
(II)利用凸包算法求取一維輪廓線
首先利用凸包算法對所求截交面的點進行處理,從而去除內部點,只保留外圍點的點云集合,排除內部噪點干擾,模擬真正測量時的軟尺緊繃的狀態,減小測量誤差,至此,由二維面得到一維輪廓線;
(III)對結果進行三次樣條插值擬合以使輪廓線更加平滑
(IV)求取圍長
當點云輪廓線內為無序點時圍長的求取方式是從特征點處的點云集合中任取一個點作為當前點,將結果初始化為0,然后貪心選擇離當前點最近的點,并求取兩點之間的距離加到結果中,將貪心選擇得到的點作為下一次貪心選擇的當前點,迭代該方法,直到計算完所有的點,最后要計算最后一個點到第一個點的距離,并將該距離加到結果中;
當步驟(II)凸包算法使用Garham’s Scan算法進行凸包時,所得點云為有序點云,可直接計算Garham’s Scan所得點云的當前點和下一個點的距離,將下一個點作為當前點,迭代此步驟,最后計算最后一個點到第一個點的距離,并將該距離加到結果中,這樣可以利用Garham’s Scan算法特性避免對點云再次求序從而提高運算速度;
角度計算方法
左肩斜角
其中NRPLx是左頸側點x坐標值,NRPLy是左頸側點y坐標值,SPLx是左肩峰點x坐標值,SPLy是左肩峰點y坐標值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于青島大學;青島點之云智能科技有限公司,未經青島大學;青島點之云智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611055041.6/1.html,轉載請聲明來源鉆瓜專利網。





