Slide 1

Slide 1 text

2021.07.30 横尾 修平(@lyakaap) 株式会社ディー・エヌ・エー + 株式会社 Mobility Technologies Multi-view 3D Human Pose Estimationの最近の動向

Slide 2

Slide 2 text

2 項目 01|前提知識 02|Learnable Triangulation 03|Cross View Fusion 04|Epipolar Transformers 05|TesseTrack 05|まとめ

Slide 3

Slide 3 text

3 01 前提知識

Slide 4

Slide 4 text

4 ▪ 単一 or 複数の画像から三次元座標上での人物の関節点の 座標を推定するタスク ▪ 三次元人物姿勢推定には以下のような派生タスクがある ▪ 単一視点 or 複数視点 ▪ 単一人物 or 複数人物(+トラッキング) ▪ 今回は複数視点 × 単一人物にフォーカスして論文を紹介 三次元人物姿勢推定とは

Slide 5

Slide 5 text

▪ Human3.6Mがデータセットとしては標準 ▪ 4台のカメラで計11人の被験者を撮影した計約360万フレームの 動画から成るデータセット ▪ 評価指標にはMPJPE(Mean Per Joint Position Error) がよく使われる ▪ 関節点の推定座標と正解座標の距離を全ての関節点およびデータ で平均することにより算出される評価指標 データセット・評価方法 5

Slide 6

Slide 6 text

▪ 典型的には以下の流れで解かれる 1. 複数の画像それぞれに二次元姿勢推定手法を適用 2. 何らかの方法で1.の結果を統合 3. 統合した結果をもとに各関節点の三次元座標を出力 ▪ 2.の統合の方法を工夫しました、という論文が多い Multi-view 3D Human Pose Estimationの典型例 merge 6

Slide 7

Slide 7 text

1. Learnable Triangulation of Human Pose (ICCV2019) 2. Cross View Fusion for 3D Human Pose Estimation (ICCV2019) 3. Epipolar Transformers (CVPR2020) 4. TesseTrack: End-to-End Learnable Multi-Person Articulated 3D Pose Tracking (CVPR2021) 7 紹介する論文

Slide 8

Slide 8 text

8 02 Learnable Triangulation of Human Pose

Slide 9

Slide 9 text

9 ▪ ICCV 2019 ▪ 学習可能な三角測量のアプローチを2つ提案し、 end-to-endな三次元人物姿勢推定を可能に ▪ Algebraic Triangulation ▪ Volumetric Triangulation ▪ Human3.6Mで当時のSoTAを達成 概要

Slide 10

Slide 10 text

▪ 従来手法の処理の流れ: ▪ 複数の視点に対して二次元姿勢推定を独立に行う →三角測量によって複数視点の結果を統合 ▪ 従来手法の問題点: ▪ 視点ごとに独立に二次元姿勢推定を行うため予測が不正確に ▪ ナイーブな三角測量だと不正確な予測に引っ張られてしまう 従来手法 10

Slide 11

Slide 11 text

▪ 提案のAlgebraic Triangulationでは視点ごと・点ごとの 「信頼度」も出力することで従来手法の問題点を解消 Algebraic Triangulation 11

Slide 12

Slide 12 text

▪ Algebraic Triangulationでは各視点・各関節点の予測を確信度 によって重み付けすることでロバストな推論を可能に ▪ やってることは単純で、三角測量の計算時に出力の確信度を weightとして掛けてやるだけ ▪ これによって確信度が低い、すなわち不正確だと思われる予測の 影響を抑制することができる Algebraic Triangulation 12

Slide 13

Slide 13 text

▪ 2D backboneが各カメラ画像の二次元特徴マップを出力 ▪ 複数の特徴マップをカメラパラメータを用いて三次元特 徴マップに逆射影した後に統合 Volumetric Triangulation 13

Slide 14

Slide 14 text

▪ 三次元特徴マップに3D CNNを適用し、関節点の数だけvolume を出力 ▪ volumeにsoft-argmaxを適用し、最終的な3D poseを得る ▪ soft-argmax: 重心座標を取る操作のこと Volumetric Triangulation 14

Slide 15

Slide 15 text

▪ 複数視点を扱う手法の中で SoTA ▪ 単一視点を扱う手法の中でも SoTAに匹敵する精度を達成 ▪ なぜかベースラインであるはず のRANSACの時点で既存のsota を大きく上回っている ▪ volumetric > algebraic ▪ aggregationの方法はどれでも あまり変わらない 結果(Human3.6M) 15

Slide 16

Slide 16 text

▪ 従来手法(RANSAC)は カメラの数が少ないとき に精度が大きく劣化 ▪ 提案手法はカメラの数が 少ないときでも健闘 カメラの数による精度(MPJPE)の変化 16

Slide 17

Slide 17 text

17 03 Cross View Fusion for 3D Human Pose Estimation

Slide 18

Slide 18 text

▪ ICCV2019 ▪ 複数視点の出力ヒートマップを「fuse」するネットワークを提案 ▪ 三次元復元手法のPSMをiterativeな手法に拡張した RPSM(Recursive Pictorial Structure Model)を提案 概要 18

Slide 19

Slide 19 text

▪ 二次元の姿勢推定モデルによって関節点の予測ヒート マップを視点ごとに独立に計算 Cross View Fusion 19

Slide 20

Slide 20 text

▪ さらに複数視点の予測を「fuse」 ▪ 複数視点の情報を使うことが可能に Cross View Fusion 20

Slide 21

Slide 21 text

▪ 元の予測ヒートマップと「fuse」後のヒートマップ 双方に対して正解ヒートマップとのL2損失を計算 Cross View Fusion 21

Slide 22

Slide 22 text

▪ 異なる視点間の特徴マップを「fuse」するlayer ▪ エピポーラ線の上に乗る点など、対応関係がありそうな 場所の特徴を他方の特徴マップに取り込むねらい ▪ 実装上は全結合層で表現できる Fusion Layer 視点u, 座標iの特徴 視点uの特徴マップの 全てのピクセル位置 視点v, 座標jの特徴 重み行列W の要素(j, i) 22

Slide 23

Slide 23 text

▪ Limitation:学習済みのfusion layerの重みはカメラパラメー タに依存しているため、環境が変わると対応する必要がある ▪ Solution:人手によるアノテーション無しで環境の変化に対応 可能な半教師付き学習のアプローチを導入 ▪ 複数視点の姿勢推定を行い、異なる視点間で予測がコンス タントな場合のみ疑似ラベルとして学習に用いる Limitation and Solution 23

Slide 24

Slide 24 text

▪ PSM(Pictorial Structure Model)の問題点を解消し、 iterativeに関節点の座標をrefine ▪ PSM:人体をグラフィカルモデルとして表現し、関節点の予測座 標の確信度やlimb*の構造的な制約を考慮して三次元上の関節点 座標の事後確率をモデリング ▪ PSMの問題点:三次元空間を粗いグリッドに区切るため 量子化誤差が大きくなってしまう ▪ グリッド細かくするのは? → 事後確率最大化の計算量が爆発的に 増加するためできない ( O(N^6) ) RPSM(Recursive Pictorial Structure Model) * 関節点同士をつなぐエッジのこと 24

Slide 25

Slide 25 text

▪ PSMを分割統治的に繰り返し適用 ▪ 前のiterationで検出した関節の候補点の周りを重点的に 見ていく RPSM(Recursive Pictorial Structure Model) 25

Slide 26

Slide 26 text

▪ 実験によって提案手法の有効性を示した ▪ さらに当時のSoTAを主張 ▪ ただしこの論文の少し前に出ていたvolumetric triangulationが 20.8mmを記録している 結果 26

Slide 27

Slide 27 text

▪ MPII(二次元姿勢推定データセット)で学習済みのモデルを 使って、Human3.6Mにおける半教師付き学習の精度を検証 ▪ MPIIで学習済みのモデルをそのまま適用→MPJPE: 109mm ▪ 提案の擬似ラベル*を使って学習させた場合→MPJPE: 43mm ▪ 109mm→43mmと、疑似ラベルを使った学習により精度が大幅 に改善することを確認 結果|半教師付き学習 * 複数視点の姿勢推定を行い、異なる視点間で予測がコンスタントな場合のみ疑似ラベルとして採用 27

Slide 28

Slide 28 text

28 04 Epipolar Transformers

Slide 29

Slide 29 text

▪ CVPR2020 ▪ エピポーラ線上の特徴にattentionを適用することで効率的に 三次元的特徴を考慮できるようなモデルを提案 概要 29

Slide 30

Slide 30 text

▪ 直線OL - X上にある点は ▪ 左のカメラではXもX_{1,2,3}も1つの点に投影される(X→X_L) ▪ 右のカメラではXとX_{1,2,3}は別の点に投影される(X→X_R) ▪ 左のカメラから右のカメラは e_Lに射影される(e_Rはその逆) ▪ 右のカメラの直線X_R - e_Rは エピポーラ線と呼ばれる エピポーラ線 http://en.wikipedia.org/wiki/Epipolar_geometry 30

Slide 31

Slide 31 text

▪ 2つのカメラで同じ物体を捕捉しているとした場合、それらは 互いのエピポーラ線上のどこかに乗る(エピポーラ制約) ▪ つまりカメラ間で対応関係のある点を調べたいときは エピポーラ線上のみを調べればよいということになる ▪ Epipolar Transformerでは この性質を巧妙に利用 エピポーラ線 http://en.wikipedia.org/wiki/Epipolar_geometry 31

Slide 32

Slide 32 text

▪ 本論文ではエピポーラ制約を利用した三次元姿勢推定 モデルであるEpipolar Transformerを提案 ▪ 2つのコンポーネントで構成 ▪ Epipolar sampler ▪ Feature fusion module ▪ 処理の流れとしては、Epipolar samplerで エピポーラ線上の特徴をサンプリング → 特徴をfusion Epipolar Transformer 32

Slide 33

Slide 33 text

▪ Source viewの特徴マップからエピポーラ線上にある特徴 を等間隔にK個サンプリング ▪ Reference viewの特徴マップの全ての特徴に対して同様 の処理を行う ▪ (H x W)個の特徴それぞれにK個の特徴が割り当てられる ▪ エピポーラ線と特徴マップが重ならない場合はスキップ Epipolar sampler 33

Slide 34

Slide 34 text

▪ サンプリングした特徴をview間で fusionするmodule ▪ いわゆる「attention」 ▪ より「対応点っぽい」場所の特徴を取り 込みたい→特徴の類似度に応じてview間 での特徴の取り込み具合を制御 Feature fusion module ⊕: element-wise sum ⊗: batch matrix multiplication 34

Slide 35

Slide 35 text

▪ Epipolar transformerはエピポーラ線上の特徴のみを サンプリングしているため計算効率が良い ▪ 逆にエピポーラ線上以外の特徴は見ないため 正確なカメラキャリブレーションが必要 ▪ Epipolar transformerのfeature fusion moduleのパラメータ 数は特徴マップの解像度によらず一定(Cross view fusionの パラメータ数は入力の特徴マップの解像度に比例して増大) Cross View Fusionとの比較 35

Slide 36

Slide 36 text

▪ パラメータ数や積和回数では利がある ▪ 精度的にはvolumetric triangulationを下回っている 結果|SoTAとの比較 36

Slide 37

Slide 37 text

▪ 視点の数が少ないときはベースラインに比べて大きく精度向上 している ▪ とはいえ視点の数が大きくなるにつれて差が埋まっている カメラの数による精度(MPJPE)の変化 ※ 黒い線は標準偏差 37

Slide 38

Slide 38 text

38 05 TesseTrack: End-to-End Learnable Multi-Person Articulated 3D Pose Tracking

Slide 39

Slide 39 text

▪ CVPR2021 ▪ 複数視点かつ複数人の検出・姿勢推定・トラッキングを 全てend-to-endに学習させて複数のデータセットでSoTA ▪ もちろん単一人物の姿勢推定にも対応 ▪ 著者実装は非公開 ▪ 再現するのしんどそう 概要 39

Slide 40

Slide 40 text

全体像 40

Slide 41

Slide 41 text

▪ 処理の流れ ▪ HRNetを用いて視点・フレームごとに特徴抽出 ▪ → フレームごとに抽出された全ての視点の特徴をvolumetric triangulationのような処理によって3D化 ▪ → 3D CNNで人物中心のヒートマップを出力した後にNMSを適用 して最終的な検出結果を得る ▪ CenterNetの3D版に近い ▪ size/offsetは予測させていない Person Detection 41

Slide 42

Slide 42 text

▪ 検出された人を中心として4Dの固定サイズのspatio-temporal volume(tesseract)を切り抜く ▪ tesseractのサイズ:R×T×X×Y×Z ▪ R:チャンネル数 ▪ T:時間方向のウィンドウサイズ ▪ X, Y, Z:検出された人を中心とした直方体のサイズ ▪ tesseractに対して4D CNNを適用し、空間方向と時間方向の 情報が同時に加味されたdescriptor(4Dの人物表現)を得る ▪ 得られたdescriptorは後段のトラッキング・姿勢推定に用いられる Spatio-Temporal Descriptors 42

Slide 43

Slide 43 text

▪ これまでの処理で複数フレームにおける複数人物それぞれの descriptor(Input Features)が得られた ▪ これをもとにフレーム間での 検出結果の対応付けをして トラッキング結果を得たい ▪ 提案手法では学習可能で End-to-endな対応付けを実現 Person Tracking 43

Slide 44

Slide 44 text

▪ GNN*によってコンテキスト が加味された特徴を獲得 ▪ 2つのタイプのエッジを考慮 ▪ 同フレームのインスタンス 間を張るエッジ ▪ self-edge ▪ 異なるフレーム間のインス タンス同士を張るエッジ ▪ cross-edge Attention Aggregation *GNN:Graph Neural Networks 44

Slide 45

Slide 45 text

▪ GNNの出力によってフレーム間で のインスタンス同士の類似度を計 算し、Score Matrixを計算 ▪ 割り当てを決めるため、二部マッ チングの問題を解く必要がある ▪ ハンガリアン法は微分不可能な 操作を含むため学習不可 → Softassign algorithmで割り当 て問題を解くことで学習可能に Temporal Matching Layer 45

Slide 46

Slide 46 text

▪ ここまでの処理で一人の人物に対して複数の違うタイムウィン ドウ(オーバーラップあり)のtesseractが得られている → それらをマージして単一のtesseractを出力 ▪ マージされたtesseractに対して複数の4D deconvolution層を 適用し、フレームtの3Dヒートマップを出力 ▪ 最後にsoft-argmax操作によって三次元座標上での関節点の 座標を出力 3D Pose Estimation 46

Slide 47

Slide 47 text

▪ 検出損失・トラッキング損失・姿勢推定損失の3つを同時 に最適化 ▪ 全体の損失はそれぞれの損失の重み付き平均 ▪ backboneのHRNet含めて全てのパラメータを学習 ▪ 学習率は一律で同じ値 ▪ 32GBメモリのGPUにモデルが乗り切らなかったため モデルを2GPUに分けて学習したらしい 学習・実装 47

Slide 48

Slide 48 text

▪ 複数のデータセットで既存のSoTAを上回る精度を達成 ▪ 「Absolute Value」の行が提案手法 結果 48

Slide 49

Slide 49 text

49 06 まとめ

Slide 50

Slide 50 text

● 実はLearnable Triangulation of Human Poseからあまり進歩していない ● とはいえEpipolar Transformersは精度面 だけでなくパラメータ数や積和の回数も 優れている ○ 実際の計算時間はどうなんだろう ● TesseTrackは単一人物の場合は オーバーキル感がある Human 3.6M Leader Board https://paperswithcode.com/sota/3d-human-pose-estimation-on-human36m 50

Slide 51

Slide 51 text

▪ Epipolar transformers / cross-view fusionは結局複数 viewの特徴マップを統合する際はend-to-endになってい ないので、それらをLearnable Triangulationと組み合わ せたらどうなる? ▪ 外部データの使用の有無だったり、backboneの違いや data augmentationの有無、Human3.6Mの評価プロトコ ルにバリエーションがあったりと、色々と混沌としてい る 雑感 51

Slide 52

Slide 52 text

52 ▪ In the Wild Human Pose Estimation Using Explicit 2D Features and Intermediate 3D Representations ▪ https://engineer.dena.com/posts/2019.12/cv-papers-19-3d-human-pos e-estimation/ ▪ https://zellij.hatenablog.com/entry/20120824/p1 ▪ https://paperswithcode.com/sota/3d-human-pose-estimation-on-human 36m 参考文献