(NVIDIA)物体向き推定 自己教示学習の内容理解


※テキストをそのまま貼り付けており、失礼します。

対象論文

(NVIDIA)物体向き推定 自己教示学習(CVPR2020採択)
Self-Supervised Viewpoint(SSV) Learning from Image Collections
https://arxiv.org/abs/2004.01793

概要

教師なしでviewpointを推定。
GANでviewpoint(向き)とstyleを推定。
誤差の概念は、①GAN・Discriminator、②画像⇔viewpoint(向き)・styleの可逆性、③反転の可逆性、の3つ。
2年前の教師あり推定と同等の性能を実現。

詳細

CVPR 2020採択。
向き推定だが、他にも利用できる。

viewpoint(向き)
 azimuth   方位角
 elevation  仰角(上下方向)
 tilt    傾き(左右方向)

 角度それぞれをベクトルの回帰問題と正負のクラス分類に置き換えて推定

Viewpoint(向き) NetworkとSynthesis(合成) Networkの2つで構成

(1)Viewpoint(向き) Network
 ①Viewpoint(向き)、②Style(顔)、③Real or synthetic(合成)判定の3つを推定
 →Styleを顔と仮定すると理解しやすい

(2)Synthesis(合成) Network
 ①Viewpoint(向き)、②Style(顔)から④Synth(合成)を推定
 →①Viewpoint(向き)は変えない
  ②Style(顔)を別のStyle(顔)に置換

Viewpoint Networkの誤差は3つ(細かくは4つ)

(1)Generative consistency(一貫性)
 (a)Image consistency(一貫性)
  Realと④Synth(合成)それぞれから学習済VGGで特徴量を抽出、誤差算出
  →Realと④Synth(合成)から同じ特徴量が得られるようにしたい

 (b)Style(顔) and viewpoint(向き) consistency(一貫性)
  サンプルの①Viewpoint+②Styleと、
  サンプルの①Viewpoint+②Style→Synthesis(合成) Network→④Synth(合成)→Viewpoint Network→①Viewpoint+②Styleの、
  誤差を算出
  →Synth(合成)から同じ①Viewpoint+②Styleを推定したい

(2)Symmetry constraint
 Realの①Viewpointと、
 Realを反転→Viewpoint Network→①Viewpointのa(方位角)・t(傾き)は正負を反転、e(仰角)はそのままで、
 誤差を算出
 →反転しても仰角(e)は変わらないことに基づく
 →反転したRealから同じ①Viewpointを推定したい

(3)Discriminator loss
 Realと、④Synth(合成)それぞれと、
 Realと、④Synth(合成)それぞれ→Viewpoint Network→③Real or synthetic(合成)判定、
 との誤差
 →③Real or synthetic(合成)判定を正しく判定したい

Synthesis(合成) Network
 HoloGAN
  3D ConvNet→3D Rotation→3D ConvNet→2D Projection→2D ConvNet
 ①Viewpoint(向き)、②Style(顔)から④Synth(合成)を推定
 →①Viewpoint(向き)は変えない
  ②Style(顔)を別のStyle(顔)に置換

Synthesis(合成) Networkの誤差は3つ

(1)GAN loss
 Realと、
 ④Synth(合成)→Viewpoint Network→③Real or synthetic(合成)判定と、
 の誤差
 Viewpoint Networkの「(3)Discriminator loss」と対。
 →Synth(合成)をRealとだましたい

(2)Style(向き) and viewpoint(向き) consistency(一貫性)
 サンプルの①Viewpoint+②Styleと、
 サンプルの①Viewpoint+②Style→Synthesis(合成) Network→④Synth(合成)→Viewpoint Network→①Viewpoint+②Styleの、
 誤差を算出
 Viewpoint Networkの「(1)Generative consistency(一貫性)」の「(b)Style(顔) and viewpoint(向き) consistency(一貫性)」と同じ。
 →Synth(合成)から同じ①Viewpoint+②Styleを推定したい

(3)Flip image consistency(一貫性)

 サンプルの①Viewpoint+②Style→Synthesis(合成) Network→④Synth(合成)と、
 反転した①Viewpoint+②Style→Synthesis(合成) Network→④Synth(合成)の反転画像の、
 誤差
 →反転以外同じ①Viewpoint+②Styleから反転以外同じ画像を生成したい

第2ネットワークのデモ
②Style固定で①Viewpointのa(方位角)・t(傾き)、e(仰角)を変える

定量&定性評価
 2年前の教師あり推定以上。
 去年の教師あり推定にやや劣る。

参考

https://github.com/NVlabs/SSV
https://research.nvidia.com/publication/2020-03_Self-Supervised-Viewpoint-Learning
https://www.nvidia.com/en-us/gtc/session-catalog-details/?search=S22193
https://ai-scholar.tech/articles/viewpoint/viewpoint-ssv-pascal3d-hologan-cycle-consistency