Upload
koichi-takahashi
View
1.609
Download
0
Embed Size (px)
Citation preview
Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
@51takahashi
• さのまる
• @51Takahashi
• 顔認証の研究開発やっています
• 今回の発表は所属組織と関係ありません
• Disentangled Representation Learning GAN for Pose-
Invariant Face Recognitionもこの前発表しました!
– https://www.slideshare.net/KoichiTakahashi/disentangled-
representation-learning-gan-for-poseinvariant-face-recognition
自己紹介 CVPR2017勉強会
2
論文の概要 CVPR2017勉強会
3
• タイトル
– Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
– パーツ間の結合性を利用したリアルタイム複数人物姿勢推定
• どこの研究?
– Carnegie Mellon University(この大学...強い!)
• どんな研究?
– Kinect使わずにRGBカメラで複数人物の姿勢推定したい
– OpenPoseの中身
• どんな手法?
– Convolutional Pose Machine(CPM)の拡張
» CPMはパーツ位置だけ推定してたけど、パーツ間の結合性も推定する
» 人物検出器は使わず、もはやパーツ検出器という感じ
• どんな結果?
– MPIIとCOCO 2016 keypoints challengeでSOTA(2位は僅差でGoogle)
– この手法...早い!(Geforce GTX 1080で9fpsくらい)
予備知識: やりたいこと CVPR2017勉強会
4
• RGB画像を用いた姿勢推定
– 画像中の人物の各パーツの位置を推定する問題
• 難しさ
– 人物検出がそもそも難しい(Faster R-CNNが基本)
– 人物検出した後、一人ずつ姿勢推定してたらリアルタイムなんて無理
» 10人いたら10倍遅くなってしまう
CPM CVPR2017勉強会
5
…
…
左手
左肩
CNNS2
左手
左肩
CNNS1 +
CPM: Convolutional Pose Machine
CPM CVPR2017勉強会
6
…
…
左手
左肩
CNNS2
左手
左肩
CNNS1 +
各パーツの信頼度マップ 各パーツの信頼度マップ
CPM: Convolutional Pose Machine
CPM CVPR2017勉強会
7
…
…
左手
左肩
CNNS2
左手
左肩
CNNS1 +
CAT
各パーツの信頼度マップ 各パーツの信頼度マップ
CPM: Convolutional Pose Machine
CPM+PAF CVPR2017勉強会
8
…
…
左手
左肩
CNNS2
左手
左肩
CNNS1
…
左手 左肩
左肩 首
CNNL2
右手 右肩
左肩 首
CNNL1
+
PAF: Part Affinity Fields
CPM+PAF CVPR2017勉強会
9
…
…
左手
左肩
CNNS2
左手
左肩
CNNS1
…
左手 左肩
左肩 首
CNNL2
右手 右肩
左肩 首
CNNL1
+
パーツ間の結合性マップ パーツ間の結合性マップ
PAF: Part Affinity Fields
ネットワーク構造 CVPR2017勉強会
10
conv 3x3:128
conv 3x3:128
conv 3x3:128
conv 1x1:512
conv 1x1:19
conv 3x3:128
conv 3x3:128
conv 3x3:128
conv 1x1:512
conv 1x1:38
conv 7x7:128
conv 7x7:128
conv 1x1:512
conv 1x1:19
conv 7x7:128
conv 7x7:128
conv 1x1:512
conv 1x1:38
+
+
VGG 前半分:128
conv 7x7:128
conv 7x7:128
conv 7x7:128
conv 7x7:128
conv 7x7:128 conv 7x7:128
conv 7x7:128 conv 7x7:128
conv 1x1:19
conv 1x1:38
stage1
stage2
stage6
…
…
…
conv 3x3:128
conv 3x3:128
conv 3x3:128
conv 1x1:512
conv 7x7:128
conv 7x7:128
conv 7x7:128
conv 7x7:128
conv 7x7:128
…
・入力部分はVGGの前半分 - 3回のmax-pool層 - 解像度は1/8になる
・青部分はパーツの信頼度マップ
- 18パーツ+背景の19枚
・赤部分はPAFのマップ
- 19本のパーツ間結合を定義 - xy方向あるので38枚
・その他の特徴
- 全体で6ステージ - 2層目からは7x7の畳み込み層 - 解像度のくびれがない
Part Association CVPR2017勉強会
11
• どのパーツ間が結合してるの?
– パーツ間の方向とPAFの方向が一致していればよい
– 論文中で、これはNP困難な問題だ~とか言ってるけど…
実験結果: COCO 2016 Keypoint Challenge
CVPR2017勉強会
12
Average Precision: 平均検出率
実験結果: 計算時間 CVPR2017勉強会
13
・Geforce GTX-1080 GPUを使用 ・1920x1080画素の動画を654x368画素にリサイズしてテスト ・19人の動画で8.8fpsだった
Top-down: 人物検出+CPM Bottom-up: CPM+PAF
論文のまとめ CVPR2017勉強会
14
• タイトル
– Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
– パーツ間の結合性を利用したリアルタイム複数人物ポーズ推定
• どこの研究?
– Carnegie Mellon University
• どんな研究?
– Kinect使わずにRGBカメラで複数人物のポーズ推定したい
– OpenPoseの中身
• どんな手法?
– Convolutional Pose Machineの拡張
» CPMはパーツ位置だけ推定してたけど、パーツ間の結合性も推定する
» 人物検出器は使わず、もはやパーツ検出器という感じ
• どんな結果?
– MPIIとCOCO 2016 keypoints challengeでSOTA
– リアルタイム動作を実現
おまけ1:別の新しい手法 CVPR2017勉強会
15
• タイトル
– Mask R-CNN
• どこの研究?
– Facebook AI Research
– 筆頭著者はKaiming He氏
• どんな手法?
– Faster R-CNNにセグメンテ-ションのロスを追加して学習
– 各パーツを1画素のセグメンテーションと見做せば、姿勢推定も可能
• どんな結果?
– 特に何もしてないのにCPM+PAFよりいい結果が出てしまった
– 5fpsくらいで動作するらしい
おまけ2:2位ってどれ? CVPR2017勉強会
16
• タイトル
– Towards Accurate Multi-person Pose Estimation in the Wild
• どこの研究?
• どんな手法?
– Faster-RCNNで人物検出して、ディープで姿勢推定
• どんな結果?
– MPIIとCOCO 2016 keypoints challengeで2位
» …だったけど、論文中ではCPM+PAFやMask R-CNNより高精度
» たぶん遅い
– 謝辞でエクセレントなFaster R-CNN実装論文の著者に感謝
おまけ3:OpenPoseの指姿勢推定 CVPR2017勉強会
17
• タイトル
– Hand Keypoint Detection in Single Images using Multiview
Bootstrapping
• どんな手法?
– 中身はただのCPM
– 多視点映像を元に、失敗したアングルを検出・再学習を繰り返す
• どんな結果?
– 実環境に耐えうるリアルタイムの指姿勢推定を実現
– そのうちデータセットも公開するらしい
おまけ4:OpenPoseのデモ CVPR2017勉強会
18
• Windows版のビルド済バイナリも公開
– portable OpenPose demo 1.0.1.
• 必要なもの
– VC2015のランタイム(x64)
– CUDA 8.0
– cuDNN 5.1
• 実行方法
– 例) bin¥OpenPoseDemo.exe –net_resolution “320x176”
» 入力画像の解像度を落とせばノートPC内蔵のGPUでも動く
» Geforce 940MXで~3fps
おつかれさまでした