読んだ 3D Pose Estimation 論文の紹介
が、大したネタが思いつかなかったので、面白みはないですが読んだ論文の紹介です。
前置き
今回取り上げる論文は "Unsupervised" (教師なし)の学習を用いていますが、データの有無・質などに応じて機械学習には下記のような分類があります。(分け方は他にもあるかも)
Supervised Learning (教師付き学習)
学習に使うデータとその正解ラベルが完全な状態で一対一で揃っている
Semi-supervised Learning (半教師付き学習)
一部のデータには正解ラベルが存在しない
Weekly Supervised Learning (弱教師付き学習)
正解ラベルが不完全
Object Detectionであれば、映っている物体の名前は分かっているが、どこにあるかの情報が無い
Weekly Semi-supervised Learning
Semi-supervised と Weekly Supervised の合体版
Unsupervised Learning (教師なし学習)
なにも正解ラベル情報がない、データだけある
Object Detection における分類の例 [Jisoo Jeong et al., NeurIPS 2019]
https://gyazo.com/a8acf9b35ca62bf644417351afee0080
Unsupervised Cross-Modal Alignment for Multi-Person 3D Pose Estimation
[Jogendra Nath Kundu et al., ECCV2020]
本題の論文
タスク: 画像から、複数人物の位置関係+3次元的な姿勢(骨格)を推定したい
ポイント: 正解となる画像と3次元の姿勢データのペアを集めるのは大変(= Supervised Learning は大変)、そのようなデータを使わずに学習したい
この論文の技術を使った 3D Pose Estimation の結果例(ピンク枠は失敗例とのこと)
https://gyazo.com/627a3690433c7702a77415acfc495d09
Pose Estimation について
ここでの Pose Estimation = 一枚の画像から人の骨格(関節位置, 姿勢)を推定すること
2D Pose Estimation
2D は人手での学習データ作成(アノテーション)が容易
(3D に比べて容易・現実的という話、めんどくさいことには変わらない。。)
top-down: 画像から人を見つける → 見つけたそれぞれの人に対して姿勢を推定する
メリット: 人単位のグルーピング精度が高くなる
デメリット: 人数に比例して計算速度が遅くなる、グローバルな情報を失うため、カメラからみた各人への距離が推定困難
bottom-up: 各関節を見つける → 関節をグルーピングして人単位にする or 関節と人を一つのネットワークで検出
メリット: 高速
デメリット: 必ずしも最適な結果とはならない
→ 紹介する論文では bottom-up を扱っている
3D Pose Estimation
学習データの作成が困難、3次元的な計測(モーションキャプチャ)が出来るスタジオなどでないと大変
幾何的な制約等を考慮して2Dの結果を3Dに変換する方法などがある
例:画像 → (2D Pose Estimaion) → 2D 骨格 → (3D Pose Estimation) → 3D 骨格&位置関係、の流れ
問題設定
使えるモデル・データ
2D Pose Estimaion の学習データ作成・学習は比較的容易なので、事前に学習した2D Pose Estimaion は活用できる
画像単体、3D Pose データ単体はそれぞれ集められる(画像と対応する3D Poseのペアは集められない)
事前学習した 2D Pose Estimation の学習データに含まれないシーンにも適応させたい
3D Pose データは公開されているものもあるが、用途に制限などがあり、量が集められない点にも対応したい
提案する枠組みの全体図
https://gyazo.com/c2b4ff82c17b693f318e22e5c380139f
Distillation pathway
$ \hat{k}_q に繋がるパスは、画像から2次元的なPoseを推定
$ \hat{k}_p に繋がるパスは、画像からAdversarial Auto Encoderによる潜在空間での3次元姿勢の表現を経由して、3次元的なPoseを推定、推定された3次元Poseを画像空間に戻して2次元的なPoseを推定
Distillation(= 蒸留)は機械学習におけるテクニックの一つで、通常、別の大きなモデルで学習された結果をより軽量なモデルで再現する手法
今回の例では学習された2次元Pose Estimationの結果$ \hat{k}_qを$ \hat{k}_p側のパスで再現する学習を行っている
Auto-encoding pathway
ざっくり言うと3次元Pose情報をよく表現する潜在空間を学習するパス
潜在空間は -1 ~ +1 の 32次元で表現される
3次元Pose情報を一度圧縮して復元する流れなので、対応する画像などが不要(Unsupervised)
上記の2パスを組み合わせて学習、2D Pose推定モデルと、3D Poseデータがあれば上記を学習できるため、画像と3次元Poseの対応がなくても 3D Pose Estimation モデルを構築できる