人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)

人が注目する箇所を当てるSaliency Detectionの最新モデル UCNet(CVPR2020)

EAGLYS株式会社 AI勉強会 #7の資料になります。

今回の発表はCVPR2020に採択され、Best Paperにもノミネートされたモデル UCNetについてです。Saliency Detectionと呼ばれる人が注目する箇所を当てるタスクにおいて、全てのデータセット、指標でSOTAを出したモデルです。 人が注目する箇所はアノテーターの主観が含まれており、その不確かさを考慮することでモデルの性能を飛躍的に向上させました。

Transcript

  1. 人が注目する箇所を当てるSaliency Detectionの 最新モデル UCNet(CVPR2020) EAGLYS株式会社 AI 勉強会 #7 2020/11/19(Thu) 吉田

    慎太郎 @sht_47
  2. EAGLYS株式会社 AI勉強会 1. NAS 入門 2. Out of Distribution【入門編】 3.

    Out of Distribution【実践編】画像認識 x 異常検知 4. 安定の可視化手法 「Grad-CAM 」 5. 新しい Optimizer 「Adabelief」 6. Federated Learning 入門 7. Saliency Detection最新研究 UCNet ⇦今日
  3. 今日の発表内容 - Saliency Detectionとは - Semantic Segmentation の復習 - Semantic

    Segmentationの有名手法 FCN と UNet の紹介 - UCNet - 評価指標と結果
  4. Saliency Detectionとは - Semantic Segmentationという分野の1カテゴリーかつ設定がより高次元 - 近年、RGB-D画像の入手が容易になり、RGB-D画像を用いたモデルが注目 - トラッキング、画像抽出、要約動画の作成、動画理解への応用が期待される

  5. UCNetの簡単な紹介 - CVPR2020に採択、CVPR2020のBest Paper Awardにノミネート - オーストラリア国立大学の論文 - RGB-D Saliency

    Detectionのタスクで全てのDataset, 全ての指標でSOTA - CVAE(Conditional Variational AutoEncoder)を導入 - Depth Correction Networkと呼ばれる アノテーターの不確かさを考慮したモデル
  6. Semantic Segmentationの基本 Image Classification との違い ピクセルごとにクラスを予測 FCN(2014, Jonathan) 15層の3x3 Convで1/32

    7x7 Convと1x1Convで4096次元に 1x1 Convで21次元に(VOCのクラス数) Transpose Convで 元の画像サイズ
  7. TransposeConv2D Quiz : TransposeConv2DのOutput Shapeは? >> input = torch.randn(20, 16,

    50, 100) >> m = nn.ConvTranspose2d(16, 33, kernel_size=3, stride=2, padding=1,dilation=2) >> output = m(input) [ Image Credit ] 元画像 2x2 アップサンプリング後 4x4 Stride : 1 Padding : 0 (Valid in Tensorflow) Dilation : 1
  8. TransposeConv2D Quiz : TransposeConv2DのOutput Shapeは? >> input = torch.randn(20, 16,

    50, 100) >> m = nn.ConvTranspose2d(16, 33, kernel_size=3, stride=2, padding=1,dilation=2) >> output = m(input) 正解 : torch.Size([20, 33, 101, 201])
  9. TransposeConv2Dの計算方法 (Stride) Stride = 1 Step(0) Stride = 2 ...

    ... Output Input Kernel Step(1) Step(1) まとめ StrideはInput上をカーネル が操作する時の回数が変更
  10. TransposeConv2Dの計算方法(Padding) Padding = 1 ... ... Output ... Padding =

    2 Padding = 0 まとめ Paddingはカーネルの スタート地点が変更
  11. TransposeConv2Dの計算方法 (Dilation) Dilation = 1 Dilation = 2 ... Output

    Input Kernel カーネル 走査スタート時 ... まとめ Paddingはカーネルのスタート地点 からInput上に行くまでの距離が変更
  12. TransposeConv2D 解答 Quiz : TransposeConv2DのOutput Shapeは? >> input = torch.randn(20,

    16, 50, 100) >> m = nn.ConvTranspose2d(16, 33, kernel_size=3, stride=2, padding=1,dilation=2) >> output = m(input) 正解 : torch.Size([20, 33, 101, 201])
  13. 実際のコード FCN(2014, Jonathan) 15層の3x3 Convで1/32 7x7 Convと1x1Convで4096次元に 1x1 Convで21次元に(VOCのクラス数) torch.Size([1,

    21, 16, 12]) Transpose Convで 元の画像サイズ nn.ConvTranspose2d(21, 21, 64, stride=32) torch.Size([1, 21, 416, 544]) 500 375
  14. Fully Convolutional Network FCN-32s : そのまま FCN-16s : feature4とconcat FCN-8s

    : feature3とconcat 結果 空間的な情報を補完することが可能
  15. UNet(2015, Olaf) - 医療画像が対象 - High resolutionの画像生成が可能 - GAN で広く応用!

  16. Saliency Detection - 2D, 3D(Depth), 4Dの問題 に分けることが可能 - ルール⇨CNN⇨Network Engineering

    3D(RGB-D画像)は大きくわけて2種類 - MultiModal Input Fusion ⇦◉, UCNet - MultiModal Feature Fusion ⇦◉ - UniModal Result Fusion 近年の動向 Coase to Fine , SOC [ Image Credit ] Kinect [ Image Credit ] RealSense [ Image Credit ]
  17. UCNet(2020, Jing) • 5つのモジュール(実質3つ) • 学習とテストで使うモジュールが異なる • 実際のコードを追うことは大変 Contribution 1

    ) 初めてこのタスクでCVAEを採用 2 ) 多数決をするモジュール(実装なし) 3 ) Depth情報も修正
  18. Conditional Variational AutoEncoder AutoEncoderとVariational AutoEncoderの復習 AutoEncoder [ Image Credit ]

    Variational AutoEncoder 精度の向上、Latent Vectorの分布が0中心、Latent Vetorであるzの分布が連続的 平均0分散1の正規分布に近づくように KL Lossを追加 [ Image Credit ]
  19. Conditional Variational AutoEncoder - 欲しいyラベルを出力したい (Yが複数のモードを持つとき ) - 効率よく学習したい Encoder,

    Decoderにyラベルを追加 Objective Functionや モデル構成は入力を増やす以外ほぼ同じ Reconstruction Loss Kullback Leibler Divergence(正則化項) このyをGT画像にしてSaliency Detectionタスクに応用 = UCNet CVAE VAE
  20. PriorNet and PosteriorNet RGB + D をもとにLatent Vector Zを作成 =

    PriorNet RGB + D + GTをもとにLatent Vector Zを作成 = PriorNet 構造はシンプルで5層のCNN(BNとLeaky ReLU) + Flatten + MLP Feature Expandingは2次元のテンソルを 4次元のB x 画像サイズ に拡大 Loss KL Divergence
  21. DepthCorrectNet - Annotatorの不確かさを考慮し、Depth画像を修正 - EncoderとDecoderからなり、 EncoderはResNet50を使用 Decoder - LayerごとのFeatureをConvでChannel数 UpSamplingでサイズを揃える

    - Dilated Conv(6, 12, 18, 24)を挿入 足し合わせる Layer 1 Layer 2 Layer 3 Layer 4 RGB-D 画像 ResNet50 Dilated 6,12,18,24 Depth 画像 C
  22. DenseASPP - Semantic Segmentationの テクニックの一つ 特徴 - Dilated Convolutionの結果を ConcatenateするASPP

    - 途中のFeatureを 最終層につなげるDenseNet
  23. SaliencyNet - EncoderとDecoder 構造 - Input : RGB-D画像 + Latent

    Vector Latent Vectorは画像サイズと同じに - Output : 1channelのSaliency Map Encoder ResNet50 Decoder - それぞれのFeature Mapsに対して、 DenseASPP Layer 1 Layer 2 Layer 3 Layer 4 RGB-D 画像 + Latent Vector ResNet50 C DenseASPP DenseASPP DenseASPP DenseASPP Saliency Map Decoder
  24. Channel Attention Module(2018, Sangyurun) SE ModuleのAvg Poolingだけでなく、 Max PoolingとAvg Poolingを組み合わせ

    ⇨コードにはChannel Attentionと書いているが、 実装上はSE Module SE Module [ Image Credit ]
  25. Hide and Seek Module(2017, Krishna) - 画像を16個のPatchに分割 - 学習中のみ50%の確率でマスキング 効果

    - モデルがObjectの関連した パーツを学習する
  26. Semantic Segmentationの指標 4つ 今回使用している指標 - MAE - Mean F-Measure -

    S-Measure - Mean E-Measure 従来の指標 - OP(Overall Pixel Accuracy) , PC(Per Class Accuracy), IOU - JI(Jaccard Index) i番目のクラスと予測したうちでどの程度合っているか
  27. Mean F-Measure( Arbelaez, 2011) 輪郭を正解することがタスクにおいてより重要 輪郭かどうかを予測し、画像の対角成分の0.75%に設定したθ以内に収まると1

  28. S-Measure(2017, Deng-ping) 構造の類似度(Structure Similarity)を捉えたい SSIMをベースに 0.5*Sr+0.5*Soで定義 Region-Aware Structure Similarity Sr

    Object-Aware Structure Similarity So (Object Levelが高次元の問題に不可欠) Xfg, YfgはGT, SMの確率分布 So = μOBG + (1-μ)OFG 分布の拡散具合 輝度の分布の近さ
  29. E-Measure(2018, Deng-ping) S-MeasureはBinary Mapでうまくいかない Pixelだけの情報でなく、Imageレベルの量も重要 IはForeground Map, Aは全てが1の行列 Bias Matrix

    φ 輝度のコントラスト と強い相関 類似度をアマダール積で計算
  30. 結果1 - CVAEにより多様な予測が可能に - 精度も高い - Ours(1)とOurs(2)はCVAEからrandomにサンプリング

  31. 結果2

  32. 結果3 Ablation Studies M2 : Depth Correction Networkの有無で比較 M4 :

    VAE vs CVAE M6 : Monte Carlo Dropout との比較 ( テスト中にDropoutを行うことで Stochastic Inferenceを実現 )
  33. 所感 - 少しずつ盛り上がってきている分野 - 不確かさを考慮するDepth Correction Netや 予測に確立要素を組み込むCVAEは応用が広そう - CVAEの実装が勉強になった。