一種基於關節活躍度的Kinect動作識別方法
2023-07-13 04:40:01
一種基於關節活躍度的Kinect動作識別方法
【專利摘要】本發明公開了一種基於關節活躍度的Kinect動作識別方法,包括以下步驟:(1)建立標準動作模板庫,得到標準動作模板圖和標準動作模板差分圖;(2)對用戶的即時動作進行識別:首先採集即時動作數據,再構建即時動作圖、計算即時動作差分圖、對即時動作圖進行預處理,利用標準動作模板差分圖和用戶實時圖像差分圖,求每一列的差分絕對值總和,以此設置關節活躍的權值,最後在用戶即時動作圖與標準動作模板圖的歐氏距離矩陣中乘入關節活躍度權值,並求和,將此值用於判定用戶即時動作類別。本發明具有複雜度較低,運算速度快,識別率較高的優點。
【專利說明】—種基於關節活躍度的Kinect動作識別方法
【技術領域】
[0001]本發明涉及計算機視覺領域,特別涉及一種基於關節活躍度的Kinect動作識別方法。
【背景技術】
[0002]2010年,Kinect體感設備的逐漸成熟,使得人們對於電子系統的輸入方式變得更加多元化,同時也更加方便了人們進行輸入操作。Kinect設備通過直接檢測人們肢體的動作來對系統進行輸入,提出了一個全新的人機互動方式。
[0003]Kinect設備不同於普通攝像頭的是,除配置了能夠記錄普通的2維彩色圖像的鏡頭外,它還配置了感知深度世界的CMOS紅外傳感器。紅外傳感器發出紅外線覆蓋整個Kinect設備的可視範圍,攝像頭組接收反射光線來識別範圍內的物體,包括用戶本人。紅外攝像頭識別圖像的是一個「深度場」(D印th Field),並可以把深度信息映射到二維圖像當中,用像素值的大小來反映「深度場」中物體的遠近。因此,Kinect設備除了提供我們常見的2維圖像序列之外,還提供了 2維圖像中各個物體的深度信息。這無疑給計算機視覺領域的研究帶來了一個重要的信息資源,促進計算機視覺相關技術的發展。
[0004]在Kinect體感平臺下,動作識別是應用程式的核心環節,目前為止,如點擊、揮手、舉手等簡單的手部動作識別和一些固定的身體造型識別,已經廣泛地使用於各類Kinect應用程式之中。例如,沈世宏等人研究了基於Kinect的體感手勢識別算法,採用了SVM方法實現了三種手勢的識別。但僅僅是識別和使用一些簡單的手勢,這對Kinect設備來說,似乎是大材小用。開發者可以通過Kinect設備獲得更豐富的用戶運動信息,包括檢測並實時追蹤用戶人體的頭部、肩膀、肘部、…、腳踝20個關節點以及記錄各自3維空間坐標信息。因此,我們能利用Kinect設備識別更多更複雜的動作,例如:左右直拳,左右勾拳、後旋踢等搏擊動作,以及廣播體操,各類舞蹈動作等。這些動作的識別能夠更好地加強用戶和相關應用程式的互動性,從而起到技能教學,遊戲休閒等作用。
【發明內容】
[0005]為了克服現有技術的上述缺點與不足,本發明的目的在於提供一種基於關節活躍度的Kinect動作識別方法,複雜度較低,運算速度快,識別率較高。
[0006]本發明的目的通過以下技術方案實現:
[0007]一種基於關節活躍度的Kinect動作識別方法,包括以下步驟:
[0008](I)建立標準動作模板庫:
[0009](1-1)確定人體的主要關節和參考關節;
[0010](1-2)採集標準動作數據:使用Kinect攝像設備採集人體做出標準動作時的每一幀標準圖像,獲取此時人體的主要關節的連續三維位置信息,並計算出人體的主要關節相對於參考關節的相對位置坐標;
[0011](1-3)對標準圖像中各人體的主要關節的坐標進行標準化處理:用各人體的主要關節的相對位置坐標除以用戶身高L得到標準化坐標;
[0012](1-4)設置時間窗口獲取標準動作數據,把一個時間窗口內的標準動作數據,按照主要關節和時間兩個維度,存儲為單通道圖像矩陣,得到標準動作圖;
[0013](1-5)對標準動作圖進行平滑修復,去除突變點,去除連續斷點,得到已調整的標準動作圖;
[0014](1-6)對於同一標準動作,將其對應的多幅已調整的標準圖像求平均,得到該標準動作的標準動作模板圖;
[0015](1-7)對標準動作模板圖在時間軸方向進行差分計算得到標準動作模板差分圖;
[0016](2)對用戶的即時動作進行識別:
[0017](2-1)採集即時動作數據:使用Kinect攝像設備採集人體做出即時動作時的每一幀即時圖像,獲取此時人體的主要關節的連續三維位置信息,並計算出人體的主要關節相對於參考關節的相對位置坐標;
[0018](2-2)對即時圖象中各人體的主要關節的坐標進行標準化處理:用各人體的主要關節的相對位置坐標除以用戶身高L得到標準化坐標;
[0019](2-3)設置時間窗口獲取即時動作數據,把一個時間窗口內的即時動作數據,按照主要關節和時間兩個維度,存儲為單通道圖像矩陣,得到即時動作圖;
[0020](2-4)對即時動作圖進行平滑修復,去除突變點,去除斷點,並進行時間校正,得到已調整的即時動作圖;
[0021](2-5)對已調整的即時動作圖在時間軸方向進行差分計算得到即時動作差分圖;
[0022](2-6)計算關節活躍度權值:
[0023]設 ' 為即時動作差分圖對應的像素值矩陣第j列的關節活躍權值,則
【權利要求】
1.一種基於關節活躍度的Kinect動作識別方法,其特徵在於,包括以下步驟: (1)建立標準動作模板庫: (1-1)確定人體的主要關節和參考關節; (1-2)採集標準動作數據:使用Kinect攝像設備採集人體做出標準動作時的每一幀標準圖像,獲取此時人體的主要關節的連續三維位置信息,並計算出人體的主要關節相對於參考關節的相對位置坐標; (1-3)對標準圖像中各人體的主要關節的坐標進行標準化處理:用各人體的主要關節的相對位置坐標除以用戶身高L得到標準化坐標; (1-4)設置時間窗口獲取標準動作數據,把一個時間窗口內的標準動作數據,按照主要關節和時間兩個維度,存儲為單通道圖像矩陣,得到標準動作圖; (1-5)對標準動作圖進行平滑修復,去除突變點,去除連續斷點,得到已調整的標準動作圖; (1-6)對於同一標準動作,將其對應的多幅已調整的標準圖像求平均,得到該標準動作的標準動作模板圖; (1-7)對標準動作模板圖在時間軸方向進行差分計算得到標準動作模板差分圖; (2)對用戶的即時動作進行識別: (2-1)採集即時動作數據:使用Kinect攝像設備採集人體做出即時動作時的每一幀即時圖像,獲取此時人體的主要關節的連續三維位置信息,並計算出人體的主要關節相對於參考關節的相對位置坐標; (2-2)對即時圖象中各人體的主要關節的坐標進行標準化處理:用各人體的主要關節的相對位置坐標除以用戶身高L得到標準化坐標; (2-3)設置時間窗口獲取即時動作數據,把一個時間窗口內的即時動作數據,按照主要關節和時間兩個維度,存儲為單通道圖像矩陣,得到即時動作圖; (2-4)對即時動作圖進行平滑修復,去除突變點,去除斷點,並進行時間校正,得到已調整的即時動作圖; (2-5)對已調整的即時動作圖在時間軸方向進行差分計算得到即時動作差分圖; (2-6)計算關節活躍度權值: 設%為即時動作差分圖對應的像素值矩陣第j列的關節活躍權值,則
Σ diffMapu,mpluu,{1、n + Σ 哪./') /=O7=0 -1--
Σ Σ idijfMap—Jd + diffMapmilljlJ1., j))
j 二Q / 二0 其中,diffMaptMplate(i,j)表示標準動作模板差分圖對應的像素值矩陣第i行第j列的元素;diffMapMaltinre(i,j)表示即時動作差分圖對應的像素值矩陣第i行第j列的元素;N為攝像採樣率;m為人體的主要關節的個數; (2-7)計算即時動作與標準動作的相似度judge:
3m—I N-1
judge - ^ ?| realTimeMapii, j) - templateh4ap(i, j) |其中,realTimeMap(i, j)為即時動作圖對應的像素值矩陣第i行第j列的元素;templateMap(i, j)為標準動作模板圖對應的像素值矩陣第i行第j列的元素。
2.根據權利要求1所述的基於關節活躍度的Kinect動作識別方法,其特徵在於,所述人體的主要關節包括:頭部、左肘部、右肘部、左手、右手、左膝、右膝、左腳、右腳;所述參考關節為腰部節點。
3.根據權利要求1所述的基於關節活躍度的Kinect動作識別方法,其特徵在於,步驟(1-4)所述設置時間窗口獲取標準動作數據,把一個時間窗口內的標準動作數據,按照主要關節和時間兩個維度,存儲 為單通道圖像矩陣,具體為: 設定時間長度為移動步長整數倍的時間窗口來獲取連續的標準動作數據,設置攝像採樣率為N,得到各個主要關節三個運動分量上的連續動作序列,即第i幀畫面的主要關節位置信息都保存至矩陣templateMap的第i行中,形成一個高為N,寬為3m的矩陣;其中,矩陣templateMap中的第i行第j列的元素templateMap (i, j)由下式計算:
templateMap (i, j) = (skeletonPostemplate (i, k) x-torsoPostemplate (i) x).255/L, k =j, j e [0,m-1]
templateMap (i, j) = (skeletonPostemplate (i, k) y-torsoPostemplate (i) y).255/L, k =j-n, j e [m, 2m-1]
templateMap (i, j) = (skeletonPostemplate (i, k) z_torsoPostemplate (i) z).255/L, k =j-2n, j e [2m, 3m-1] 其中,SkeletonPostemplate(i, k)x為標準動作數據第i幀的第k個主要關節的x軸的絕對坐標值;skeletonPostemplate(i, k)y為標準動作數據第i幀的第k個主要關節的y軸的絕對坐標值;skeletonPostemplate(i, k)z為標準動作數據第i幀的第k個主要關節的z軸的絕對坐標值;torsoPostOTplate;(i)x為標準動作數據第i幀的參考關節的x軸的絕對坐標值;torsoPostraiplate;(i)y為標準動作數據第i幀的參考關節的I軸的絕對坐標值;torsoPostemplate(i)z為標準動作數據第i幀的參考關節的z軸的絕對坐標值。
4.根據權利要求3所述的基於關節活躍度的Kinect動作識別方法,其特徵在於,步驟(2-3)所述設置時間窗口獲取即時動作數據,把一個時間窗口內的即時動作數據,按照主要關節和時間兩個維度,存儲為單通道圖像矩陣,具體為: 設定時間長度為移動步長整數倍的時間窗口來獲取連續的即時動作數據,設置攝像採樣率為N,得到各個主要關節三個運動分量上的連續動作序列,即第i幀畫面的主要關節位置信息都保存至矩陣realtimeMap的第i行中,形成一個高為N,寬為3m的矩陣;其中,矩陣realtimeMap中的第i行第j列的元素realtimeMap (i, j)由下式計算:
realTimeMap (i, j) = (skeletonPosrealtime (i, k) x-torsoPosrealtime (i) x).255/L, k =j, j e [0,m-1]
realTimeMap (i, j) = (skeletonPosrealtime (i, k) y-torsoPosrealtime (i) y).255/L, k =j-n, j e [m, 2m-1]
realTimeMap (i, j) = (skeletonPosrealtime (i, k) z-torsoPosrealtime (i) z).255/L, k =j-2n, j e [2m, 3m-1] 其中,skeletonPosrealtime(i, k)x為即時動作數據第i中貞的第k個主要關節的x軸的絕對坐標值;SkeletonPoSrealtime(i, k)y為即時動作數據第i幀的第k個主要關節的y軸的絕對坐標值;skeletonPoSrealtime(i, k)z為即時動作數據第i幀的第k個主要關節的z軸的絕對坐標值;t0rS0P0SMaltime(i)x為即時動作數據第i幀的參考關節的X軸的絕對坐標值;t0rS0P0SMaltime(i)y為即時動作數據第i幀的參考關節的y軸的絕對坐標值;torsoPosrealtime(i)z為即時動作數據第i幀的參考關節的z軸的絕對坐標值。
5.根據權利要求3所述的基於關節活躍度的Kinect動作識別方法,其特徵在於,步驟(1-5)所述去除突變點,具體如下:在時間軸方向設置一個差分閾值檢測,如果某個像素點與相鄰兩個像素點之差大於設定閾值,且沒有出現連續像素值為O或者255的情況,則把這個像素點定為突變點,按下式去除突變點:
6.根據權利要求3所述的基於關節活躍度的Kinect動作識別方法,其特徵在於,步驟(2-4)所述去除突變點,具體如下:在時間軸方向設置一個差分閾值檢測,如果某個像素點與相鄰兩個像素點之差大於設定閾值,且沒有出現連續像素值為O或者255的情況,則把這個像素點定為突變點,按下式去除突變點:
7.根據權利要求3所述的基於關節活躍度的Kinect動作識別方法,其特徵在於,所述去除連續斷點,具體為: 所述連續斷點為連續出現的黑點或白點,所述黑點為像素值為零的點,所述白點為像素值255的點;如果在時間軸上,某個主要關節的某個坐標出現連續斷點,同時又存在部分像素點正常的情況下,將與該連續斷點距離最近的正常的像素點的值替換該連續斷點的像素值。
8.根據權利要求3所述的基於關節活躍度的Kinect動作識別方法,其特徵在於,步驟(2-4)所述時間校正,具體為: 對即時動作差分圖和標準動作模板差分圖進行時間軸上的投影,計算投影的重心時間坐標: 標準動作模板差分圖的投影的重心時間坐標template!^即時動作差分圖的重心時間坐標realTimeTg按以下公式計算:
【文檔編號】G06F3/01GK104035557SQ201410220225
【公開日】2014年9月10日 申請日期:2014年5月22日 優先權日:2014年5月22日
【發明者】劉劍聰, 王偉凝, 鍾卓耀, 張莉婷, 吳小思 申請人:華南理工大學