Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parsing R-CNN for Instance-Level Human Analysis #73

Open
Yagami360 opened this issue Jul 1, 2020 · 0 comments
Open

Parsing R-CNN for Instance-Level Human Analysis #73

Yagami360 opened this issue Jul 1, 2020 · 0 comments

Comments

@Yagami360
Copy link
Owner

Yagami360 commented Jul 1, 2020

0. 論文情報・リンク

1. どんなもの?

  • Mask R-CNN をインスタンスレベルの人物パース用に最適化した Parsing R-CNN を提案。CIHP, MHP, DensePose-COCO データセットでのインスタンスレベルでの人物パース画像品質で SOTA を達成。

2. 先行研究と比べてどこがすごいの?

  • インスタンスセグメンテーションモデルである Mask R-CNN を、インスタンスレベルの人物パース画像生成に応用するにあたっては、いくつかの問題点が存在する。(インスタンスレベルの人物パース画像を生成するブランチがない・大きな RoI 領域になる人物領域の局所的な情報が失われているなど)
    本手法はこの問題を解決するために、Mask R-CNN をベースに、本手法が新たに提案している PSS strategy, ERR, GCE module の構造をもった Parsing branch を織り込むことで、インスタンスレベルの人物パース画像生成に適用可能な Parsing R-CNN を提案し、インスタンスレベルでの人物パース画像品質を向上させている。
  • CIHP, MHP, DensePose-COCO データセットでのインスタンスレベルでの人物パース画像品質で SOTA を達成。また、COCO 2018 Challenge DensePose Estimation コンペでの 1st place solution になっている

3. 技術や手法の"キモ"はどこにある?

  • アーキテクチャの全体像

    上図は、Parsing R-CNN のアーキテクチャの全体像を示した図である。
    このネットワークは、Mask R-CNN をベースに、インスタンスレベルの人物パース画像を出力するための Parsing branch の分岐を追加したネットワークになっている。(上図右下参照)

    この Parsing branch では、以下の3つの構造が採用されている
    1. PSS strategy [proposals separation sampling strategy]
    2. ERR [Enlarging RoI Resolution]
    3. GCE module [Geometric and Context Encoding module]

  • proposals separation sampling (PSS) strategy

    Mask R-CNN では、各解像度スケールでの特徴マップ(P6,P5,P4,P3,P2)に対して、オブジェクトの RoI 領域の割り当てが行われるが、この際にRoI 領域が大きいほど、低解像度での荒い特徴マップに割り当てが行われるように動作する。
    しかしながら、人物パースタスクでは、人物の画像全体に占める割合が大きいために、大きな RoI(人物の RoI) を荒い特徴マップに割り当てると人物領域の局所的な情報が失われ、これが品質劣化の原因となる。
    ※ Mask R-CNN で、RoI 領域が大きいほど、低解像度での荒い特徴マップに割り当ている理由は?

    そのため Parsing R-CNN では、
    Bbox branch に対しては、Mask-RCNN と同じく各解像度スケールからの RoIAlign に基づく RoI 情報を利用するが(上図青線)、
    Parsing branch に対しては、最も大きい解像度スケールでの特徴マップ(P2)に対してのみ RoIAlign を行い、RoI 領域を割り当てる(上図赤字)という proposals separation sampling (PSS) strategy を採用している。

  • Enlarging RoI Resolution (ERR)
    Mask-RCNN では、mask branch のネットワーク内で 14 x 14 の解像度スケールでの RoI を使用している。
    しかしながら、人物パースタスクでは、人物の領域が特徴マップの大きな割合を占めているので、後段のネットワークでこのような小さな RoI を使用すると、人物領域の局所的な情報が失われ、これが品質劣化の原因となる。

    そのため Parsing R-CNN の Parsing branch では、32 x 32 の解像度スケールでの RoI を使用する Enlarging RoI Resolution (ERR) を採用している。
    この ERR により、ブランチの計算コストは増加するが、人物パース画像の品質は大幅に向上する。
    この ERR に伴う学習時間増加とメモリオーバーヘッドに対処するために、バッチサイズを固定値(例:32)に減らしている。

  • Geometric and Context Encoding (GCE) module

    Mask R-CNN での各 branch のネットワーク構造は、単純な conv を使用しており、それ故に画像の局所的な情報が失われてしまっている。
    本手法ではこの問題を解決するために、Parsing branch のネットワーク構造として、右上図のような ASPP の構造と non-local operation の構造を取り込んだ Geometric and Context Encoding (GCE) module を採用している。
    これにより、各オブジェクトの幾何学的情報とコンテキスト情報の両方(=大域的情報と局所的情報)をうまくネットワーク内に伝搬させることが出来るようになる。

    ※ ASPP [Atrous Spatial Pyramid Pooling] : DeepLab v3 で採用されている構造で、各 Atrous convolution からの異なる範囲での特徴マップを取り込むことで、複数スケールからの特徴量を抽出している。(詳細は、「DeepLab v3+ の論文まとめ」参照)
    ※ non-local operation : 論文「Non-local Neural Networks」で提案されている構造で、ResNet の残差構造にように、NN において長期依存性を捉えるための構造

    尚、Parsing branch は、この GCE の後段に挿入している。
    これは、Parsing branch を{GCE の前段・GCE の内部・GCE の後段}に挿入した比較実験より、GCE の後段に Parsing branch を挿入した場合が最も品質がよかったためである。

4. どうやって有効だと検証した?

  • 本手法でのインスタンスレベルの人物パース画像の定性品質

    本質の高いインスタンスレベルの人物パース画像が生成出来ている。

  • 既存のモデルとの定量比較

    既存のモデル(Mask R-CNN, CE2P など)と比較して、AP スコア、PCP スコアで最もよいスコアを実現している。

  • 各提案手法(PSS, EER, GCE)の Ablation study

    PSS, EER, GCE を採用することで、品質が向上していることが見て取れる。
    また GCE の後段に Parsing branch を挿入した場合が最も品質が向上していることが見て取れる。

    GCE を採用することで、赤丸部分の品質が向上していることが見て取れる。

5. 議論はあるか?

  • kaggle の iMaterialist のモデルに利用できそう?(少なくとも Mask R-CNN よりよさそう)

6. 次に読むべき論文はあるか?

  • Non-local Neural Networks

7. 参考文献

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant