Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

概要  筆者  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

Slide 3

Slide 3 text

Outline ① 背景 ② 関連研究 ③ 手法 ④ 実験 ⑤ 考察 ⑥ まとめ 3

Slide 4

Slide 4 text

背景 1/3  影領域抽出について  画像のシーン理解のために重要である  やってみると意外と難しい • 照明条件、物体のテクスチャ、周辺の状況に依存 • 局所的な分類問題だと失敗(semanticな情報が必要) • 後処理でCRFとか入れるけど結局は局所的な情報  この論文でやりたいこと • Conditional Generative Adversarial Network(cGAN)改善 • generatorで画像の影領域マスク(影マスク)を推定 • generatorは画像全体のコンテクストや構造を学べる • discriminatorで影マスク画像の整合性を見る 4

Slide 5

Slide 5 text

背景 2/3  cGANで影領域抽出の問題点  影と非影領域のバランスが悪い • 影: 多、非影: 少→すべて影予測だとdiscriminator勝つ • 影: 少、非影: 多→すべて非影予測だとdiscriminator勝つ クラスの偏りをどうにかしたい。。。  scGANで影領域抽出  cGANの弱点克服するscGANを提案 • sensitivity parameter • lossの設計 5

Slide 6

Slide 6 text

背景 3/3  contribution  画像中の影領域抽出にGANの枠組みを取り入れた最初の研究  conditional GANにsensitivity parameterを取り入れ、 発展させたscGANを提案  影抽出データセットであるSBU と UCFで 提案手法がSoTA獲得 6

Slide 7

Slide 7 text

関連研究 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で影/非影領域の分類

Slide 8

Slide 8 text

関連研究 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

Slide 9

Slide 9 text

関連研究 3/3  Deep  stacked CNN(FCN+CNN) • FCNで影領域を大まかに抽出 • パッチごとにCNNで影領域の予測 FCN良いけど2段階ってスマートじゃないよね。。。。。。 9 http://www.chenpingyu.org/docs/yago_eccv2016.pdf

Slide 10

Slide 10 text

手法: cGAN 1/3  cGANって何?  GANに条件の情報を付加  影領域抽出の場合、条件とは入力RGB画像 のこと  真値の影マスクと予測した影マスクの差を小さくするように generatorは学習する  discriminatorは真値の影マスクと予測する影マスクを区別 10

Slide 11

Slide 11 text

手法: cGAN 2/3  cGANのloss  cGANの基本的なlossは式(1)  乱数zを消すと式(2)に単純化できる  generatorのlossは真値と予測結果の最小化である 式(3)  cGANの学習はgeneratorとdiscriminatorの min-maxゲーム 式(4) 11

Slide 12

Slide 12 text

手法: cGAN 3/3  cGANの問題点  影の抽出は影と非影のバランスが非常に悪い状況下での 2値分類の問題であると解釈できる  generatorが2値の影マスク画像を出力すると、 真値画像も2値画像なので discriminatorは騙されやすいという敵対的学習  generatorが学習する際の、影の抽出は影と非影のバランスを整 えるclass weightを与えることがあるが、 与え方はGrid Search☹ 12

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

手法: Sensitivity param. 2/3  generatorのloss関数  真値 : (=1のとき影、=0のとき非影)  generatorはピクセル単位に影である確率(0 ≤ ≤ 1)を算出  これを定式化すると式(5) − log : yが影、 − − 1 log 1 − : が非影 ≫ 1 − のとき、影ピクセルを分類ミスした時のほうが反映  GANっぽく書くと式(6) 14

Slide 15

Slide 15 text

手法: Sensitivity param. 3/3  scGANのloss関数  cGANを合わせて書くと式(7) [0,1]は一様分布  discriminator は式(7)を最大化するように学習  generatorは 式(7)を最小化するように学習 15

Slide 16

Slide 16 text

手法: architectures 1/2  generator設計  U-Net構造を持つ層設計  入力:4次元(RGBω)  出力:影マスク 16

Slide 17

Slide 17 text

手法: architectures 2/2  discriminator設計  入力:RGB画像と影マスク(生成された画像 or 真値画像) 重ねて4chにしてる  出力:真値画像である確率  層設計 • Conv(64)-Conv(128)-Conv(256)-Conv(512)-FC • FC層はSigmoid 17

Slide 18

Slide 18 text

手法: 学習設定  最適化  オプティマイザ:SGDとAdam  1イテレーションは、discriminatorの勾配を一回計算した後、 generatorの勾配を二回計算  technique的なやつ  data augmentation • original解像度から256x256へリサイズ • ¾切り出し( stride 20 )でへリサイズ • original解像度から256x256へ切り出し( stride 20 )  ωの設定 • iterationごとに一様分布[0,1]からサンプリング 18  約13倍になった

Slide 19

Slide 19 text

手法: マルチスケールで予測  Weighted aggregation scheme  影マスクをマルチスケールで予測 • s1: オリジナル • s2: ¾切り取り(stride 20) • s3: 256x256切り取り(stride 20) 19 最終的な影マスクは、 ピクセル単位の重み付き平均で予測 α=25, α=5, α=1

Slide 20

Slide 20 text

実験: データセットと評価  データセット  入力画像(RGB)と真値のマスクのあるデータセット • UCF Shadow dataset(全部で221枚) • The SBU dataset(Train: 4089, Test: 638)  評価手法  balance error rate (BER) 式(8)  BERはバランスの悪い影データで用いられてきた評価手法 20

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

実験: SBU結果 3/4  定性評価 23

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

考察: Sensitivity Param.  SBUデータセットでωを変えてテスト  sensitivity ωを増加させると影のピクセルに対して反応  ω=0.7のとき、Balance Error Rate (BER)が最小 26

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

考察: scGAN vs cGAN 2/2  SBUデータセットで比較実験  cGANの時は式(7)のλを0にして学習  提案手法がcGANに比べ49%性能向上 28 定性的に見ても、scGANの方が影との対応が取れている

Slide 29

Slide 29 text

まとめ  本研究でやったこと  GANを使った影領域抽出問題を定式化した  パラメータチューニングを必要としない、 影/非影のクラスバランスを制御するloss関数を提案  影のデータセットでエラーを既存手法に対して大幅に下げた  提案手法は、クラスバランスが偏った分類問題ならば、 汎用的に使える 29