Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

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

吉田 慎太郎 @微分

November 19, 2020
Tweet

More Decks by 吉田 慎太郎 @微分

Other Decks in Research

Transcript

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

    View Slide

  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 ⇦今日

    View Slide

  3. 今日の発表内容
    - Saliency Detectionとは
    - Semantic Segmentation の復習
    - Semantic Segmentationの有名手法 FCN と UNet の紹介
    - UCNet
    - 評価指標と結果

    View Slide

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

    View Slide

  5. UCNetの簡単な紹介
    - CVPR2020に採択、CVPR2020のBest Paper Awardにノミネート
    - オーストラリア国立大学の論文
    - RGB-D Saliency Detectionのタスクで全てのDataset, 全ての指標でSOTA
    - CVAE(Conditional Variational AutoEncoder)を導入
    - Depth Correction Networkと呼ばれる アノテーターの不確かさを考慮したモデル

    View Slide

  6. Semantic Segmentationの基本
    Image Classification との違い
    ピクセルごとにクラスを予測
    FCN(2014, Jonathan)
    15層の3x3 Convで1/32
    7x7 Convと1x1Convで4096次元に
    1x1 Convで21次元に(VOCのクラス数)
    Transpose Convで 元の画像サイズ

    View Slide

  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

    View Slide

  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])

    View Slide

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

    View Slide

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

    View Slide

  11. TransposeConv2Dの計算方法 (Dilation)
    Dilation = 1 Dilation = 2
    ...
    Output
    Input
    Kernel
    カーネル 走査スタート時
    ...
    まとめ
    Paddingはカーネルのスタート地点
    からInput上に行くまでの距離が変更

    View Slide

  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])

    View Slide

  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

    View Slide

  14. Fully Convolutional Network
    FCN-32s : そのまま
    FCN-16s : feature4とconcat
    FCN-8s : feature3とconcat
    結果
    空間的な情報を補完することが可能

    View Slide

  15. UNet(2015, Olaf)
    - 医療画像が対象
    - High resolutionの画像生成が可能
    - GAN で広く応用!

    View Slide

  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 ]

    View Slide

  17. UCNet(2020, Jing)
    ● 5つのモジュール(実質3つ)
    ● 学習とテストで使うモジュールが異なる
    ● 実際のコードを追うことは大変
    Contribution
    1 ) 初めてこのタスクでCVAEを採用
    2 ) 多数決をするモジュール(実装なし)
    3 ) Depth情報も修正

    View Slide

  18. Conditional Variational AutoEncoder
    AutoEncoderとVariational AutoEncoderの復習
    AutoEncoder
    [ Image Credit ]
    Variational AutoEncoder
    精度の向上、Latent Vectorの分布が0中心、Latent Vetorであるzの分布が連続的
    平均0分散1の正規分布に近づくように KL Lossを追加
    [ Image Credit ]

    View Slide

  19. Conditional Variational AutoEncoder
    - 欲しいyラベルを出力したい (Yが複数のモードを持つとき )
    - 効率よく学習したい
    Encoder, Decoderにyラベルを追加
    Objective Functionや
    モデル構成は入力を増やす以外ほぼ同じ
    Reconstruction Loss Kullback Leibler Divergence(正則化項)
    このyをGT画像にしてSaliency Detectionタスクに応用 = UCNet
    CVAE
    VAE

    View Slide

  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

    View Slide

  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

    View Slide

  22. DenseASPP
    - Semantic Segmentationの
    テクニックの一つ
    特徴
    - Dilated Convolutionの結果を
    ConcatenateするASPP
    - 途中のFeatureを
    最終層につなげるDenseNet

    View Slide

  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

    View Slide

  24. Channel Attention Module(2018, Sangyurun)
    SE ModuleのAvg Poolingだけでなく、 Max PoolingとAvg Poolingを組み合わせ
    ⇨コードにはChannel Attentionと書いているが、 実装上はSE Module
    SE Module [ Image Credit ]

    View Slide

  25. Hide and Seek Module(2017, Krishna)
    - 画像を16個のPatchに分割
    - 学習中のみ50%の確率でマスキング
    効果
    - モデルがObjectの関連した
    パーツを学習する

    View Slide

  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番目のクラスと予測したうちでどの程度合っているか

    View Slide

  27. Mean F-Measure( Arbelaez, 2011)
    輪郭を正解することがタスクにおいてより重要
    輪郭かどうかを予測し、画像の対角成分の0.75%に設定したθ以内に収まると1

    View Slide

  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
    分布の拡散具合
    輝度の分布の近さ

    View Slide

  29. E-Measure(2018, Deng-ping)
    S-MeasureはBinary Mapでうまくいかない
    Pixelだけの情報でなく、Imageレベルの量も重要
    IはForeground Map, Aは全てが1の行列
    Bias Matrix φ 輝度のコントラスト
    と強い相関
    類似度をアマダール積で計算

    View Slide

  30. 結果1
    - CVAEにより多様な予測が可能に
    - 精度も高い
    - Ours(1)とOurs(2)はCVAEからrandomにサンプリング

    View Slide

  31. 結果2

    View Slide

  32. 結果3 Ablation Studies
    M2 :
    Depth Correction Networkの有無で比較
    M4 :
    VAE vs CVAE
    M6 :
    Monte Carlo Dropout との比較
    ( テスト中にDropoutを行うことで
    Stochastic Inferenceを実現 )

    View Slide

  33. 所感
    - 少しずつ盛り上がってきている分野
    - 不確かさを考慮するDepth Correction Netや
    予測に確立要素を組み込むCVAEは応用が広そう
    - CVAEの実装が勉強になった。

    View Slide