View
1.999
Download
0
Category
Preview:
Citation preview
Real-Time Human Pose Recognition in Parts from Single Depth Images
Jamie Shotton, Andrew Fitzgibbon, Mat Cook ,Toby Sharp, Mark Finocchio, Richard Moore, Alex Kipman, Andrew Blake
Microsoft Research Cambridge & Xbox Incubation
CVPR 2011 [Best Paper]
紹介者:野田 雅文(@miyabiarts)
背景
• 頑健かつンタラクテゖブな人体姿勢認識
–関節の3次元位置を取得
• 応用
–ゲーム
– HCI(Human-Computer Interaction)
–セキュリテゖ
–テレプレゼンス
–ヘルスケゕ
2
背景
• 単一画像からの人体姿勢認識が非常に盛ん
– 3次元関節位置の推定
3
単一の画像(深度画像) 出力:3次元関節位置(姿勢)
関連研究
• 輝度画像ベース(通常カメラ)
–数多くの手法が提案されている
• 数が多いので、今回は省略
–計算コストが高い
• 深度画像ベース(ToFカメラ、Kinectなど)
–近年盛ん
–関節位置などに対する事前知識が必要
4
深度画像からの人体姿勢認識
• KINECT登場以前
–リゕルタムで様々な運動を行う人体の形状・サズ全ての取得は不可能
–高速に取得は可能だが、再初期化や頑健な認識が困難
• KINECT登場
–高速、高精度、低計算コストで深度画像を取得
• 再初期化の処理が不必要
• ただし、取得ゕルゴリズムに関しては今回はなし
5
論文の目的
• 単一の深度画像からの人体姿勢認識
–高速、高精度、低計算コスト
–応用(主目的):Kinectを利用したゲーム
6
単一の画像(深度画像) 出力:3次元関節位置(姿勢)
手法の流れ
• 深度画像から人体を検出(背景差分)
• 人体をパーツ分割
• 関節の3次元位置を取得
7
人体パーツ
• 31種類 ※ Left/Right/Upper/Lower – Head(LU/RU/LW/RW),
– Neck
– shoulder,(LU/RU/LW/RW)
– arm(L/R)
– elbow,(L/R)
– wrist(L/R), hand(L/R)
– torso(LU/RU/LW/RW)
– leg(LU/RU/LW/RW)
– knee(L/R)
– ankle(L/R)
– foot(L/R)
8
ゕプローチ
1. 人体パーツの学習データ
– 様々な姿勢の人体深度データを人工的に生成
2. 人体パーツ識別・姿勢推定
– 高速に計算可能な特徴量
– Random Forests識別器による人体パーツ識別
9
ゕプローチ
1. 人体パーツの学習データ
– 様々な姿勢の人体深度データを人工的に生成
2. 人体パーツ識別・姿勢推定
– 高速に計算可能な特徴量
– Random Forests識別器による人体パーツ識別
10
人体データの生成
• 生成元データ
–形状データ
• Autodesk MotionBuilder内の3Dメッシュデータを利用
– 15種類の素体データ
11
※ パーツの学習用に色分け済
Autodesk MotionBuilder
12
人体データの生成
• モーションキャプチャデータ
– mocap(CMU): http://mocap.cs.cmu.edu/
• 特定の運動時の各関節の角度データ
• 500,000データ
–似ている姿勢を間引いた100,000データを利用
13
学習データの生成
• 生成手法
–素体を選択
–素体の各関節にモーションキャプチャのデータを設定し、3Dメッシュを変形
• 色々なパラメータをランダムに設定
– 身長・幅・形状・カメラ姿勢・カメラノズ・衣服・髪など
– 3Dメッシュをレンダリングし、深度バッフゔ取得
14
生成データと実データ
15
生成データ
実データ
学習用のデータは準備完了(実際の学習はのちほど)
ゕプローチ
1. 人体パーツの学習データ
– 様々な姿勢の人体深度データを人工的に生成
2. 人体パーツ識別・姿勢推定
– 高速に計算可能な特徴量
– Random Forests識別器による人体パーツ識別
16
手法の流れ(再掲)
• 深度画像から人体を検出(背景差分)
• 人体をパーツ分割
• 関節の3次元位置を取得
17
手法の流れ(再掲)
• 深度画像から人体を検出(背景差分)
• 人体をパーツ分割
• 関節の3次元位置を取得
18
人体パーツ分割
• Random Forests識別器により各画素の所属する人体パーツを推定
–特徴量を学習した識別器により画素ごとに独立に推定
19
Random Forests
• 集団学習ゕルゴリズムの1つ
–弱い特徴量・識別器の結合により頑健な識別
• 決定木の集合
–学習データをランダムに分割して学習
20
入力:1画素
決定木
• 任意の特徴による識別器の木構造
• 例:病気の診断
21
学習データによる過学習が起こりやすい
100件
学習データ
体温>=38度
脈拍>=100
Random Forests
• データセットをランダムに分割し、複数の決定木を構築
22
学習データ
・・・
最終の識別結果:すべての決定木の識別結果の平均
学習データによる過学習が起こりにくい
20件
20件
20件
20件
20件
特徴量
• 注目点まわりの2点間の深度の差
–高速に計算可能
23
u v
),( vuθ
深度画像
注目点 正規化項
深度
注目点からのオフセット
特徴量
• 様々な方向に取ることで人体パーツごとを表す弱い特徴を表現
24
1u 1v
),( 111 vuθ
2u
2v),( 222 vuθ
3u3v
),( 333 vuθ
4u 4v),( 444 vuθ
Random Forestsによる識別
• 画素ごとに独立に識別
25
各ノードにおいて特徴を求める方向 から特徴量 を求め、 しきい値 との大小関係による左右のノードに分岐
入力:1画素
人体パーツへの所属する信頼度
信頼度最大となる人体パーツを画素の識別結果とする
Random Forests識別器の学習
• 生成した正解人体パーツ付きの画像で学習
–学習の入力:1画素の特徴量 + 正解人体パーツ
26
入力:1画素 各ノードで、 と を決定
学習
手法の流れ(再掲)
• 深度画像から人体を検出(背景差分)
• 人体をパーツ分割
• 関節の3次元位置を取得
27
関節の3次元位置推定
• 各パーツごとに関節の3次元位置を推定
–密度推定を行い、最頻値を推定
• ミーンシフトベースの手法を利用
28
カーネル密度推定(クラスcに対する)
3次元空間中の位置(画像上の位置 に対応)
関節の3次元位置推定
• 同じ人体パーツ識別結果内でカーネル密度推定の結果が最大の位置を関節位置とする
29
カーネル密度推定(クラスcに対する)
3次元空間中の位置(画像上の位置 に対応)
手法の流れ(再掲)
• 深度画像から人体を検出(背景差分)
• 人体をパーツ分割
• 関節の3次元位置を取得
30
実験
• 深度画像の人物の姿勢を推定 –学習データ
• 人工データ300,000枚
–テストデータ • 人工データセット:5,000枚
• 実データセット:8,808フレーム – 15個の異なる対象を撮影
• 評価 –人体パーツの分類精度
–3次元関節の位置精度
31
実験結果
• 人工データ
• 実データ
32
異なるテストセットに対する性能
• 約100,000枚で、人工データセットと実データセットに対する精度がほぼ同等
33
学習画像の枚数による性能
• 900,000枚学習したときに顕著な性能差
• Random forestsが深いほど性能が向上
• 人工データテストセットの方が難しかった
34
関節位置の推定精度
• 赤い方が提案手法
• 青い方はパーツ識別は手動
• パーツ推定が上手くいけば92%で推定可能
35
実験結果:ビデオ
• サプリメントマテリゕル
36
まとめ
• 単一の深度画像からの人体姿勢認識
–高速、高精度、低計算コスト
–応用(主目的):Kinectを用いたゲーム
• Microsoft Kinect SDKの中身(おそらく)
• 追試は誰でもできる(学生ならば無料)
37
Recommended