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

shadow-detection-with-conditional-generative-adversarial-networks

 shadow-detection-with-conditional-generative-adversarial-networks

暫定版ですが

More Decks by 望月紅葉さんと幸せな家庭を築きたい

Other Decks in Research

Transcript

  1. Shadow Detection with Conditional Generative Adversarial Networks 特に標記が無ければ、スライド内の図は http://openaccess.thecvf.com/content_ICCV_2017/papers/Nguyen_Sh adow_Detection_With_ICCV_2017_paper.pdf

    から引用 1
  2. 概要  筆者  Vu Nguyen, Tomas F. Yago Vicente,

    Maozheng Zhao, Minh Hoai, Dimitris Samaras *Stony Brook University  簡単な内容  Conditional GAN(Generative Adversarial Networks)で 画像内の影領域を自動抽出  GANの構造を取り入れることで、 画像全体の特徴や高次の関係を学習できる  影と非影領域のバランスに偏りが有るので cGANにSensitivity parameterを追加したscGANを提案 (Focal lossみたいな考え方) 2
  3. Outline ① 背景 ② 関連研究 ③ 手法 ④ 実験 ⑤

    考察 ⑥ まとめ 3
  4. 背景 1/3  影領域抽出について  画像のシーン理解のために重要である  やってみると意外と難しい • 照明条件、物体のテクスチャ、周辺の状況に依存

    • 局所的な分類問題だと失敗(semanticな情報が必要) • 後処理でCRFとか入れるけど結局は局所的な情報  この論文でやりたいこと • Conditional Generative Adversarial Network(cGAN)改善 • generatorで画像の影領域マスク(影マスク)を推定 • generatorは画像全体のコンテクストや構造を学べる • discriminatorで影マスク画像の整合性を見る 4
  5. 背景 2/3  cGANで影領域抽出の問題点  影と非影領域のバランスが悪い • 影: 多、非影: 少→すべて影予測だとdiscriminator勝つ

    • 影: 少、非影: 多→すべて非影予測だとdiscriminator勝つ クラスの偏りをどうにかしたい。。。  scGANで影領域抽出  cGANの弱点克服するscGANを提案 • sensitivity parameter • lossの設計 5
  6. 背景 3/3  contribution  画像中の影領域抽出にGANの枠組みを取り入れた最初の研究  conditional GANにsensitivity parameterを取り入れ、

    発展させたscGANを提案  影抽出データセットであるSBU と UCFで 提案手法がSoTA獲得 6
  7. 関連研究 1/3  非Deep  色と照明の物理モデルを使う  機械学習手法も行われてきた ローカルな情報を元に予測してる 7

    https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Vicente_Leave-One- Out_Kernel_Optimization_ICCV_2015_paper.pdf Leave-One-Out Kernel Optimization for Shadow Detection ・セグメンテーション ・SVMで影/非影領域の分類
  8. 関連研究 2/3  Deep  CNN • パッチごとに影領域、影との境目をCNNで学習 • CRFで推定結果をきれいにする

    パッチベースCNNだとグローバルな情報を拾えない 8 https://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Khan_Automatic_Feature_Learning_2014_CVPR_paper.pdf
  9. 関連研究 3/3  Deep  stacked CNN(FCN+CNN) • FCNで影領域を大まかに抽出 •

    パッチごとにCNNで影領域の予測 FCN良いけど2段階ってスマートじゃないよね。。。。。。 9 http://www.chenpingyu.org/docs/yago_eccv2016.pdf
  10. 手法: cGAN 1/3  cGANって何?  GANに条件の情報を付加  影領域抽出の場合、条件とは入力RGB画像 のこと

     真値の影マスクと予測した影マスクの差を小さくするように generatorは学習する  discriminatorは真値の影マスクと予測する影マスクを区別 10
  11. 手法: cGAN 2/3  cGANのloss  cGANの基本的なlossは式(1)  乱数zを消すと式(2)に単純化できる 

    generatorのlossは真値と予測結果の最小化である 式(3)  cGANの学習はgeneratorとdiscriminatorの min-maxゲーム 式(4) 11
  12. 手法: cGAN 3/3  cGANの問題点  影の抽出は影と非影のバランスが非常に悪い状況下での 2値分類の問題であると解釈できる  generatorが2値の影マスク画像を出力すると、

    真値画像も2値画像なので discriminatorは騙されやすいという敵対的学習  generatorが学習する際の、影の抽出は影と非影のバランスを整 えるclass weightを与えることがあるが、 与え方はGrid Search☹ 12
  13. 手法: Sensitivity param. 1/3  Sensitivity param とは 1. generator

    Gが生成した影マスクに対して、 予測結果を調整するsensitivity parameter ωを取り入れる 2. ω はloss関数に取り入れ、影と非影の重要度を制御 13
  14. 手法: Sensitivity param. 2/3  generatorのloss関数  真値 : (=1のとき影、=0のとき非影)

     generatorはピクセル単位に影である確率(0 ≤ ≤ 1)を算出  これを定式化すると式(5) − log : yが影、 − − 1 log 1 − : が非影 ≫ 1 − のとき、影ピクセルを分類ミスした時のほうが反映  GANっぽく書くと式(6) 14
  15. 手法: Sensitivity param. 3/3  scGANのloss関数  cGANを合わせて書くと式(7) [0,1]は一様分布 

    discriminator は式(7)を最大化するように学習  generatorは 式(7)を最小化するように学習 15
  16. 手法: architectures 1/2  generator設計  U-Net構造を持つ層設計  入力:4次元(RGBω) 

    出力:影マスク 16
  17. 手法: architectures 2/2  discriminator設計  入力:RGB画像と影マスク(生成された画像 or 真値画像) 重ねて4chにしてる

     出力:真値画像である確率  層設計 • Conv(64)-Conv(128)-Conv(256)-Conv(512)-FC • FC層はSigmoid 17
  18. 手法: 学習設定  最適化  オプティマイザ:SGDとAdam  1イテレーションは、discriminatorの勾配を一回計算した後、 generatorの勾配を二回計算 

    technique的なやつ  data augmentation • original解像度から256x256へリサイズ • ¾切り出し( stride 20 )でへリサイズ • original解像度から256x256へ切り出し( stride 20 )  ωの設定 • iterationごとに一様分布[0,1]からサンプリング 18  約13倍になった
  19. 手法: マルチスケールで予測  Weighted aggregation scheme  影マスクをマルチスケールで予測 • s1:

    オリジナル • s2: ¾切り取り(stride 20) • s3: 256x256切り取り(stride 20) 19 最終的な影マスクは、 ピクセル単位の重み付き平均で予測 α=25, α=5, α=1
  20. 実験: データセットと評価  データセット  入力画像(RGB)と真値のマスクのあるデータセット • UCF Shadow dataset(全部で221枚)

    • The SBU dataset(Train: 4089, Test: 638)  評価手法  balance error rate (BER) 式(8)  BERはバランスの悪い影データで用いられてきた評価手法 20
  21. 実験: SBU結果 1/4  定量評価  BERの評価 • 提案手法がStackedCNNに比べ17%性能向上 

    ピクセル単位の評価 • 影抽出:提案手法がStackedCNNに比べ19%性能向上 • 非影抽出:提案手法がStackedCNNに比べ17%性能向上 21
  22. 実験: SBU結果 2/4  定性評価  scGAN vs. stackedCNN •

    stackedCNNは黒板のようなアルベドの低い物体をミス • 提案手法は騙されずに影のみを抽出 22
  23. 実験: SBU結果 3/4  定性評価 23

  24. 実験: SBU結果 4/4  定性評価 24 厳しい条件でも影領域の抽出ができている

  25. 実験: UCF結果  定量評価  UFCを学習→UFCで評価 • 提案手法がStackedCNNに比べ6%性能向上  SBUを学習→UFCで評価

    • 提案手法がStackedCNNに比べ12%性能向上 25
  26. 考察: Sensitivity Param.  SBUデータセットでωを変えてテスト  sensitivity ωを増加させると影のピクセルに対して反応  ω=0.7のとき、Balance

    Error Rate (BER)が最小 26
  27. 考察: scGAN vs cGAN 1/2  SBUデータセットで比較実験  cGANの時は式(7)のλを0にして学習 

    提案手法がcGANに比べ49%性能向上 27
  28. 考察: scGAN vs cGAN 2/2  SBUデータセットで比較実験  cGANの時は式(7)のλを0にして学習 

    提案手法がcGANに比べ49%性能向上 28 定性的に見ても、scGANの方が影との対応が取れている
  29. まとめ  本研究でやったこと  GANを使った影領域抽出問題を定式化した  パラメータチューニングを必要としない、 影/非影のクラスバランスを制御するloss関数を提案  影のデータセットでエラーを既存手法に対して大幅に下げた

     提案手法は、クラスバランスが偏った分類問題ならば、 汎用的に使える 29