Anúncio
Anúncio

Mais conteúdo relacionado

Apresentações para você(20)

Similar a 夏のトップカンファレンス論文読み会 / Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(20)

Anúncio

Último(20)

夏のトップカンファレンス論文読み会 / Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields

  1. Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields 東京⼤学⼤学院⼯学系研究科 技術経営戦略学専攻 松尾研究室 ⼤野峻典 @ono_shunsuke 夏のトップカンファレンス論⽂読み会
  2. ⾃⼰紹介 ⼤野峻典 • 東京⼤学松尾研究室, FiNC – 画像認識(Object Detection), ⾃然⾔語処理(NLU系) – deeplearning.jp 輪読会, 実装勉強会 @東⼤ • バックグラウンド – もと:Web系エンジニア – いま: 画像認識, ⾃然⾔語処理 (2017~) • Twitter: @ono_shunsuke 2 姿勢分析 チャットボット
  3. 書誌情報 3 • 論⽂名:“Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields” – https://arxiv.org/abs/1611.08050 • 著者:Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh – The Robotics Institute, Carnegie Mellon University • 公開⽇:24 Nov 2016 • CVPR 2017 Oral • Slide • Video • ※ 特に断りが無い場合は, 上記論⽂, Slide, Videoから引⽤
  4. アジェンダ 4 • Pose Estimationタスクとは • ⾝体部位の関係性(part affinity)を活かした, 姿勢推定(pose estimation) – 論⽂の主張 – 従来⼿法の問題点 – 提案⼿法 – 定式化 – 実験結果 • おわりに
  5. アジェンダ 5 • Pose Estimationタスクとは • ⾝体部位の関係性(part affinity)を活かした, 姿勢推定(pose estimation) – 論⽂の主張 – 従来⼿法の問題点 – 提案⼿法 – 定式化 – 実験結果 • おわりに
  6. Pose Estimationタスクとは • 複数⼈写っている2D画像中の, 各⼈の各⾝体部位の位置を検知する. – こんな感じ • 難しさ – ⼈数、スケールが不定 – ⼈同⼠のインタラクション – ⼈数に⽐例して計算量増加 6
  7. “Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields" 「⾝体部位の関係性(part affinity)を活かした, リアルタイムの2D姿勢推定」 7
  8. アジェンダ 8 • Pose Estimationタスクとは • ⾝体部位の関係性(part affinity)を活かした, 姿勢推定(pose estimation) – 論⽂の主張 – 従来⼿法の問題点 – 提案⼿法 – 定式化 – 実験結果 • おわりに
  9. 論⽂の主張 • 画像中の⾝体部位の位置のみではなく, 部位間の関係性(繋がり)もエンコー ドしよう. • この⼿法によって, 「画像中の⼈を検知してから各⼈に対してそれぞれpose estimationを実⾏するtop-downアプローチ」ではなく, 「⼀度に画像全体 の⽂脈から複数⼈に対してpose estimationを⾏うbottom-upアプローチ」 が可能になり, 推定の精度・速度を改善できる. • + 提案⼿法で肝になっているのは, – エンコーディングを学ぶCNNユニットのステージを繰り返すこと – ⾝体部位の位置, 部位間の関係性のエンコーディングを共通で学習するアーキテクチャ 9
  10. アジェンダ 10 • Pose Estimationタスクとは • ⾝体部位の関係性(part affinity)を活かした, 姿勢推定(pose estimation) – 論⽂の主張 – 従来⼿法の問題点 – 提案⼿法 – 定式化 – 実験結果 • おわりに
  11. 従来⼿法の問題点 • 従来のTop-down アプローチ:⼈の検知を⾏い, その後に各⼈に姿勢推定 – ❌ ①⼈の検知に失敗すると, 姿勢推定できない – ❌ ②⼈数分, 姿勢推定実⾏するので, ⼈数に⽐例して計算量増加 • 従来のBottom-Up アプローチ:写真中の各部位を検知し, 繋ぎ合わせるこ とで⼀度で, 全ての⼈の姿勢を推定 – ⭕ ①ʼ 検知, 推定と別のステップを踏まないので, 上記①に対して⽐較的ロバスト – ⭕ ②ʼ 計算量抑えられうる – ❌ 既存⼿法では, 部位間の繋ぎ合わせの精度低い/繋ぎ合わせ推定の計算量が⼤きい. 画 像全体のコンテキスト情報を⼗分に利⽤できていないため. 11 ⼈検知 姿勢推定 x n⼈ 部位検知 部位の 繋ぎ合わせ
  12. アジェンダ 12 • Pose Estimationタスクとは • ⾝体部位の関係性(part affinity)を活かした, 姿勢推定(pose estimation) – 論⽂の主張 – 従来⼿法の問題点 – 提案⼿法 – 定式化 – 実験結果 • おわりに
  13. 提案⼿法: Part Affinity Fieldsの導⼊ • 従来のボトムアップ⼿法では, 検知した部位間の繋ぎ合わせが難しく, そこ で精度落ちたり, 組み合わせ爆発による計算量増加などの問題があった. – 部位間の中間点を取るなど位置情報を追加する⼿法は, 提案されていたが, 向き情報が 無く表現⼒に限界があった. • ⇛ 位置情報, 向き情報を含んだ表現(Part Affinity Fields)を提案 – 各limb(部位の繋ぎ合わせ部分)を, 2Dベクトルでエンコードできるフィルタを学習 13 チャネルごとに各部位間の流れをエンコード(図は⼆⼈の左上腕の流れ)
  14. 提案⼿法: アーキテクチャ (1/4) • (a) ⼊⼒画像 • (b) 各チャネルで各部位検知 (confidence map) – 出⼒:各部位(ex. 右肩, 右肘, …)がありそうな度合(confidence)をpx位置ごとencode. • (c) 部位の関連度のエンコード (affinity fields) – 出⼒:各部位間(ex. 右上腕, 右太もも, …)の流れ(2d vector)をpx位置ごとにencode. • (d) b, cを元に, 最も確からしい部位同⼠をつなぎ合わせる. – Ex. どの右肘と, どの右肩をつなぐべきか • (e) 結果 – 各部位に関するdの出⼒を合計して, 結果. 14 <⼊⼒から出⼒の流れ>
  15. 提案⼿法: アーキテクチャ (2/4) • Branch1でconfidence mapの予測, Branch2でpart affinity fieldsの予測 • 同じBranch1, Branch2を持つユニットを繰り返す(Stage 1 ~ Stage 6) • 各Stageにおける⼊⼒は, 1つ前のStageにおけるBranch1, Branch2, 元の Stage1の⼊⼒Fをconcatenateしたもの. (= 部位検知と, 繋ぎ合わせエン コードを共同で⾏っている) • Stageごとに誤差計算. 15 c 特徴ベクタ
  16. 提案⼿法: アーキテクチャ (3/4) • Stageを重ねる事で精度が上がる. – 上は, confidence map. 右⼿⾸を検知するチャネル. Stageを重ねるごとに右⼿⾸の confidenceが上がり, そうでない箇所のconfidenceが下がることがわかる. – 下は, part affinity field. 右上腕の流れをencodeするチャネル. Stageを重ねるごとに 右上腕の確からしさが上がり, そうでない箇所が薄くなることがわかる. 16 右⼿⾸検知 右上腕検知
  17. 提案⼿法: アーキテクチャ (4/4) • 検知された部位達(part confidence map)同⼠を, 繋がりのencoding(part affinity fields)的な確からしさを最⼤化するように, マッチングする. • 繋ぎ合わせ問題は, 網羅的にやると, NP-Hard問題なため, 以下の2つの緩和 法を導⼊. – (1) 各部位にとなり合うべき部位の事前情報を与える. (ex. 右肩とつながるのは, ⾸と 右肘のみ.) – (2) 隣合う部位のみを⾒て, part affinity fields的な確からしさを最⼤化するようにマッ チングする. (→ 実際これで精度出る(後述). Part affinity fieldsのglobal情報のencode がうまくいっているよう.) 17 (1) (2)
  18. アジェンダ 18 • Pose Estimationタスクとは • ⾝体部位の関係性(part affinity)を活かした, 姿勢推定(pose estimation) – 論⽂の主張 – 従来⼿法の問題点 – 提案⼿法 – 定式化 – 実験結果 • おわりに
  19. 定式化:誤差関数 • Stage tにおける誤差関数 • 全体の⽬的関数:全ステージ⾜し合わせ 19 正解値予測値 正解値予測値 各場所p pでのアノテーションが抜けているかで0,1のbinary mask各部位j 各繋がりc Stage tにおける Part confidence map S Stage tにおける Part affinity field L
  20. 定式化:Part Confidence Mapの正解値 • Part Confidence Mapの正解値 S* を, 部位位置がアノテーションされた2D 画像から作成. • アノテーションされた点をピークに持つ分布で表現する. • 1つのチャネルが全ての⼈の1つの部位を担当して予測するので, それに形式 をあわせるため, 全ての⼈に関してmapを合体. Max オペレータを使⽤し, ピークを明確に保つ. • Test時は, non-maxmum suppressionにより, 各部位の予測位置を得る. – (補⾜)Non-maximum suppression:閾値以上の割合で分布がかぶっている場合、 最も ⾼いconfidence を持つ分布を残す. 20 ⼈k部位j アノテーションされた座標点 x ピークの広がり具合を調整する項 σ
  21. 定式化:Part Affinity Fieldsの正解値 • Part Confidence Mapの正解値 L* を, 部位位置がアノテーションされた2D 画像から作成. • 2部位の間, かつ, ⼀定の幅σのキョリにある点pが, 2部位間の単位ベクトル vを持つようにする. それ以外の点は全てゼロベクトルに. • 前ページ同様, 予測される形に合わせて, 全ての⼈に関してfieldsを合体して, limbごとのfieldを作成. Averageオペレータを使⽤. 21 2部位の線分からのキョリがしきい値σ以下か2部位の線分上か nc(p): 場所pで, k⼈の中でzeroじゃないベクトルの数. (limbが被る場合のみ平均取る)
  22. 定式化:部位マッチング • 検知された部位間のマッチングを考える. • 部位間の繋がりの確からしさを, Part Affinity Fieldsを⽤いて測る. 検出さ れた部位同⼠を結ぶ線分上で線積分する. • 各部位cを最⼤化するようなZc(各部位の繋ぎ合わせ⽅). 各limb typeに対し て, 独⽴にE最⼤化するようなつなぎあわせを選ぶ. 22 部位間の線分上の点p(u) 部位間の単位ベクトルかけることで, 部位間の⽅向に沿って値評価
  23. アジェンダ 23 • Pose Estimationタスクとは • ⾝体部位の関係性(part affinity)を活かした, 姿勢推定(pose estimation) – 論⽂の主張 – 従来⼿法の問題点 – 提案⼿法 – 定式化 – 実験結果 • おわりに
  24. 実験結果 • 複数⼈pose estimationの2つのベンチマーク – (1) MPII human multi-person dataset (25k images, 40k ppl, 410 human activities) – (2) the COCO 2016 keypoints challenge dataset(100k person, 1 million keypoints) 24
  25. 実験結果: MPII Multi-Person Dataset • 精度(mAP): 今回の⼿法で従来のSotAを8.5%上回る – Scale search無くとも既存⼿法より良い. MAPIIデータ全体では, 13%良くなった. さ らにscale searchで良くなる. – → 既存⼿法に⽐べてPAFsが部位間の関係性を表現するのに有効なことがわかる. • 速度(inference time): 6桁早くなった. • ※ 閾値はPCKhで, mean Average Precision(mAP)を指標に⽐較. 25
  26. 実験結果: MPII Multi-Person Dataset • PAF利⽤は, 中間点表⽰(-,-)利⽤した結果より優れてる. • マスクによりTrue Positiveのロス防ぐと, 2.3%精度上がる. • 部位DetectionのGround Truth(GT)を⽤いて, PAFsのみ予測⾏うと, mAP 88.3%. • 部位ConnectionのGTを⽤いて, Detectだけ⾏うケースでは, mAP 81.6%. – → PAFによるconnection判定と, ほぼ精度が変わらない. (79.4% vs 81.6%) . PAFが, ⾮常に⾼い精度で検出できること⽰している. 26
  27. 実験結果: COCO Keypoints Challenge • → ⽐較的⼩さいスケールの⼈(APM)のみ, top-downアプローチの⼿法に精 度負けてる. – 理由: 本⼿法では, 他よりはるかに⼤きいスケールで, 画像内の全ての⼈々を⼀⻫に扱わ ないといけない. ⇔ top-downアプローチでは, ⼈を検知してその⼈ごとに切り取って 拡⼤して扱えるので, ⼩さいスケールによる影響が⽐較的⼩さくなるのでは. 27
  28. 実験結果: COCO Keypoints Challenge • ① GT bounding Box + Convolutional Pose Machine(CPM) • ② GTの代わりにSSD利⽤すると↑より, パフォーマンスは10%低下する. • ③ 本⼿法のボトムアップ⽅式では, 58.4%のAPを達成. • ④ 本⼿法で最スケーリングされた各領域に, ⼀⼈⼀⼈にCPMを適⽤するこ とで, 2.6%のAP改善される. – → より⼤きなスケールでのsearchが, ボトムアップ⼿法のパフォーマンスを向上させる ことが期待できる. 28 ① ② ③ ④
  29. 実験結果: ⼈数による速度変化 • Top-downアプローチと違い, Bottom-upアプローチでは, Runtimeが⼈の ⼈数に⽐例してほとんど変わらないことわかる. 29
  30. アジェンダ 30 • Pose Estimationタスクとは • ⾝体部位の関係性(part affinity)を活かした, 姿勢推定(pose estimation) – 論⽂の主張 – 従来⼿法の問題点 – 提案⼿法 – 定式化 – 実験結果 • おわりに
  31. おわりに • 画像内の⼈物理解において, 複数⼈物の2次元姿勢⼤事. • 今回の⼯夫 – 1. 部位の位置と, ⽅向の両⽅を符号化する表現. – 2. 部位検出と関係性を共同で学ぶアーキテクチャ. – 3. greedyアルゴリズムにより⼈の数が増えてもマッチング計算量抑え, 精度⼗分. • 代表的な失敗事例 31
  32. 実装 • C++:https://github.com/CMU-Perceptual-Computing-Lab/openpose • Caffe:https://github.com/ZheC/Realtime_Multi- Person_Pose_Estimation • PyTorch:https://github.com/tensorboy/pytorch_Realtime_Multi- Person_Pose_Estimation (train未実装) 32
  33. 実験結果: MPII Multi-Person Dataset • 異なるスケルトン構造の⽐較結果 – 最⼩限のedgeで貪欲アルゴリズムによってとかれたものが精度, 速度ともに最⾼. – (6d)のグラフが精度最も良くなっている.トレーニングの収束がはるかに容易になるた めと考えられる.(13 edges vs 91 edges) 33
  34. Results > Results on the MPII Multi-Person Dataset • 補⾜ – mean Average Precision(mAP) • Precision:システムが正例と判定したもののうち、実際に正例だったものの割合. (正確さ) – 部位判定したもののうち、正しかったものの割合 • Recall:データセットの正例全体のうち、システムが正例と判定したものの割合(カバー率) – データセットでアノテートされている部位のうち、正しく検知されたものの割合 • Average Precision(AP: 平均適合率):PrecisionをRecallについて平均とったもの. – 以下の式で近似しているもの多い. (I: 正例なら1, 負例なら0の関数) 34引⽤:http://sucrose.hatenablog.com/entry/2017/02/26/224559
  35. Results > Results on the MPII Multi-Person Dataset • 補⾜ – mean Average Precision(mAP):今回の場合 • mAP:全ての⼈の部位に対する平均のprecision。 – まず、複数体写っている画像に対してpose estimation実⾏。 – 最も⾼いPCKh閾値にもとづいて、estimateされたポイントをground truth(GT)に割り合ててく。 – GTに割り当てられなかった予測ポイントは、false positiveとして扱う。 – 各部位ごとにAverage Precision(AP)を計算。 – 全体の部位に関してAPの平均を取って、mAPになる。 – PCKh threshhold: • PCP:あるパーツの両端の部位の検出位置が、そのパーツの⻑さの半分よりも正解に近ければ 検出成功とする. • PCK:⼈物のbounding boxサイズの逆数を閾値として定義 • PCKh:Headセグメントの50%の⻑さを閾値として定義 35
  36. 補⾜: IoU • 引⽤: http://www.pyimagesearch.com/2016/11/07/intersection- over-union-iou-for-object-detection/ 36
Anúncio