Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

[論文読み] V2V-PoseNet :デプスマップから人体のkey-point三次元位置推定を行うネットワーク

V2V-PoseNet: Voxel-to-Voxel Prediction Network for Accurate 3D Hand and Human Pose Estimation from a Single Depth Map(CVPR2018)

description: 論文読んだまとめ記事
url: https://arxiv.org/abs/1711.07399

自分なりに解釈したメモになります。
ミスがあったら優しく教えてください。


  • Title
    V2V-PoseNet: Voxel-to-Voxel Prediction Network for Accurate 3D Hand and Human Pose Estimation from a Single Depth Map
  • Conference
    CVPR2018
  • Authors
    Moon, Gyeongsik, Ju Yong Chang, and Kyoung Mu Lee

どんなもの?

3次元のDepthマップから3次元の手や人体の関節の三次元位置推定(以下、key-point推定)を行うためにパワフルなネットワークであるV2V-PoseNetを提案した。1

V2V-PoseNetは2次元のDepthマップをボクセル化したものを入力として、V2V-PoseNetによってkey-pointを推定する。
V2V-PoseNetは3Dのデータを3Dのままに扱うことにより従来手法の欠点を克服している。

この研究の価値は2D(Depthマップ)から3D(Voxel)を推定していた従来の傾向に対して、3Dから3Dを推定することの有用性を示した点にあるのではないだろうか。

リアルタイムに実行可能(35FPS)と言っているがマルチGPUによる力押しらしい。

  • Model architecture

  • Input format discussion

先行研究と比べて何がすごい?

■従来研究

従来の研究は3Dのデータを2DのdepthマップとしてCNNにかけるなどの方法が取られていた。

■従来研究の欠点

2Dデプスマップから3D座標を出す方法には2つ欠点がある。

1つ目は、従来手法はdepthマップを2次元画像として扱っているため、2次元への射影時にdistorionが生じるという点だ。
本来3Dのデータを2Dにすることによるdepthマップの歪みがあることである。
これにより、ネットワークは歪んだ見え方に対して不変的な推定を行うようになる。

2つ目は、2Dイメージから3D座標を推定することは非線形(mapping)であり学習が難しいということだ。

■改善方法

V2V-PoseNetは3Dのデータを3Dのままに扱うことでこれらの欠点を克服している。
具体的には、それぞれのVoxelがkey-pointらしさを持っており、そのVoxelを3Dの畳込みで処理していく。

input_exp

Table1

上記の表のように、表現方法の改善によってパラメータ数を抑えつつも精度の向上が見込める

技術の手法や肝は?

V2V-PoseNetは3Dのデータを3Dのままに扱い、ボクセル毎に各key-pointsらしさ(尤度)を求める。
具体的には、それぞれのVoxelにkey-pointらしさをもたせ、そのVoxelを3Dの畳込みで処理していく。
入力は2DのDepthマップを3DのVoxel表現に変換してから、全体の点群から推定したい点群を切り抜いて与える。
V2V-PoseNetでは、この前処理にシンプルなCNN2を使っている。

architecture

  • 前処理(Refining target object localization)
    全体の点群から取り扱いたい点群を切り出す三次元的な箱をcudicという。 入力点群の重心が中央に来るようにcudicを決定したりする手法がある。 しかしその手法の場合、例えば物体を掴んでいる時などには適切に動作しない。 そのため、以下の図に示すシンプルなCNN(他論文で提案されたネットワーク2)を使って正しいReferencePointとのオフセットを得る。

input_

Table2 refining

  • 入力
    2Dデプスマップを3DVoxel(88×88×88)に変換する。
    前処理で求めた参照点(the reference point)からcubic boxを切り抜く。

    (voxelサイズに沿って離散化されることになる)
    入力が88x88x88であるため、ほぼ$O(10^6)$でリアルタイムに実行できるということなのだろうか。

  • 出力
    Voxelごとに各key-pointの尤度を求める。
    つまり、key-pointごとのヒートマップを求めることと等しい。

    • 確率密度関数
      grand-truth$(i,j,k)$でピークになるようにガウス分布を設計する。 $n$:key-point $i_n,j_n,k_n$:key-point nの正しい座標 $$ H^*n(i,j,k) = exp\left(-\frac{(i-i_n)^2+(j-jn)^2+(k-k_n)^2}{2\sigma^2}\right) $$
    • 損失関数
      $$ L = \sum^N_{n=1}\sum_{i,j,k}||H^*_n(i,j,k)-H_n(i,j,k)|| $$

ネットワーク構造

  • volumetric basic block
    (7x7x7)
    VolumetricBatchNormalization
    ReLU hour-glass model3ベース
  • volumetric residual block
    ある論文4の2D residual blockを拡張したもの。(3x3x3)
  • volumetric downsampling block
    三次元のMaxPoolingLyer(2×2×2 stride 2)
  • volumetric upsampling block
    三次元の逆畳み込み(2×2×2 stride 2) VolumetricBatchNormalization ReLU
  • encoder decoder
    下図に示す。 図中での@32は32channelを示す。 特徴的な構造だがどこの論文を参考にしたとかは書かれていない。 三次元のデータへのencoder-decoderはこの形が一般的なのか?

enc_dec

  • 出力層の近く
    encoder-decoderの出力に対して1×1×1のvolumetric basic blocksと1×1×1のvolumetric convolutional layerでvoxelごとの尤度予測を行う。

データ拡張

すごくベーシック

  • 回転
    [-40, 40] degrees
  • 拡大・縮小
    [0.8, 1.2]
  • 並進移動
    [-8, 8] voxels

どうやって有効だと検証したか5

直接key pointの座標を求める手法と比べ、ボクセル毎の確立を求めることで精度が向上した。具体的には、正解値との誤差、mAPの2つの尺度において従来手法よりも数値的に向上したことを確認した。6

  • HANDS2017 frame-based 3D hand pose estimation Challenge Results

Challenge_result

k- Comparison with the previous state-of-the-art methods

Paper_result_hand_graph

Paper_result_hand_table

Paper_result_human_table

参考文献


  1. https://github.com/mks0601/V2V-PoseNet_RELEASE 

  2. M. Oberweger and V. Lepetit. Deepprior++: Improving fast and accurate 3d hand pose estimation. In IEEE InternationalConference on Computer Vision Workshop, Oct 2017. 

  3. A. Newell, K. Yang, and J. Deng. Stacked hourglass net-works for human pose estimation. InEuropean Conference on Computer Vision, pages 483–499. Springer, 2016. 

  4. K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In IEEE Conference on Computer Vision and Pattern Recognition , pages 770–778, 2016. 

  5. http://icvl.ee.ic.ac.uk/hands17/ 

  6. https://cvpaperchallenge.github.io/CVPR2018_Survey/#/ID_V2V-PoseNet_Voxel-to-Voxel_Prediction_Network_for_Accurate_3D_Hand_and_Human_Pose_Estimation_from_a_Single_Depth_Map 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away