Más contenido relacionado
La actualidad más candente (20)
Similar a 夏のトップカンファレンス論文読み会 / Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields (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から引⽤
- 9. 論⽂の主張
• 画像中の⾝体部位の位置のみではなく, 部位間の関係性(繋がり)もエンコー
ドしよう.
• この⼿法によって, 「画像中の⼈を検知してから各⼈に対してそれぞれpose
estimationを実⾏するtop-downアプローチ」ではなく, 「⼀度に画像全体
の⽂脈から複数⼈に対してpose estimationを⾏うbottom-upアプローチ」
が可能になり, 推定の精度・速度を改善できる.
• + 提案⼿法で肝になっているのは,
– エンコーディングを学ぶCNNユニットのステージを繰り返すこと
– ⾝体部位の位置, 部位間の関係性のエンコーディングを共通で学習するアーキテクチャ
9
- 11. 従来⼿法の問題点
• 従来のTop-down アプローチ:⼈の検知を⾏い, その後に各⼈に姿勢推定
– ❌ ①⼈の検知に失敗すると, 姿勢推定できない
– ❌ ②⼈数分, 姿勢推定実⾏するので, ⼈数に⽐例して計算量増加
• 従来のBottom-Up アプローチ:写真中の各部位を検知し, 繋ぎ合わせるこ
とで⼀度で, 全ての⼈の姿勢を推定
– ⭕ ①ʼ 検知, 推定と別のステップを踏まないので, 上記①に対して⽐較的ロバスト
– ⭕ ②ʼ 計算量抑えられうる
– ❌ 既存⼿法では, 部位間の繋ぎ合わせの精度低い/繋ぎ合わせ推定の計算量が⼤きい. 画
像全体のコンテキスト情報を⼗分に利⽤できていないため.
11
⼈検知 姿勢推定 x n⼈
部位検知
部位の
繋ぎ合わせ
- 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)
- 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が被る場合のみ平均取る)
- 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
①
②
③
④
- 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