End-to-End Time-Lapse Video Synthesis from a Single Outdoor Image[Nam+ CVPR19]
End-to-End Time-Lapse Video Synthesis from a Single Outdoor Image Seonghyeon Nam, Chongyang Ma, Menglei Chai, William Brendel, Ning Xu, Seon Joo Kim To appear in CVPR 2019 https://arxiv.org/abs/1904.00680
を読んだ. 非常に面白かった.
簡易箇条書きなまとめで申し訳のなさがあります.
1. Abstract
- conditional image-to-image translationの枠組みで,End-to-Endで,単一画像屋外から時刻が変わっていくようなタイムラプス動画を生成する.
- 屋外シーンの照明変化と時刻の間の相関を学習する.
- 時刻ラベルが付いていると,時刻ラベルがないデータセットを用いて半教師あり学習を行う.
- 既存手法では,スタイルの参照が必要であったが,提案手法では時刻ラベルのみで変換できる
2. 設定
2.1 問題定義
- 入力画像と,時刻ラベル
- 物の動きを考慮せず,連続した非線形な照明変化を学習する.
2.2 データセット
AMOSデータセット[Jacobs+ CVPR07]
- 時刻ラベルが付いている.
- 24時間撮影した監視カメラの動画
- 世界中の35000個のweb cameraの映像
- 実験では1,633 web cameraからの40,537動画を1,310,375枚画像へ
- trainとvalを1533, 100 web cameraに分割
TLVDBデータセット[Shih+ ACM Trans03]
- 時刻ラベルなし
- プロの人達が撮影したアウトドア動画
- 463動画から1,065,427枚の画像へ
- その内の30動画をテストとして使用
3. Method
3.1 Multi-Frame Joint Conditional Generation
- AMOSデータセット()のみで学習
- データは[tex:(I{i}, t{i})]を含む
- は,画像と時刻がペアかを見極める
- 最初は単純なVanilla Encoder-Resblock-Decoderでやっていたが,出力がありえんヤバかったのでN(0,1)の一様分布からサンプリングされたshared latent variableを用いて学習をすることにした.
- は間の時間的構造を表している
- よって,
- 学習がうまくいかない原因としては,(1) 時刻の違いはあっても見た目が同じようなイルミネーションが多かったこと. (2) 場所や季節の変動をうまく学習できなかった
- 入力動画が連続していると,動きを学習してしまうので,Augmentationで回転や左右反転などをした上で,入力動画のフレームは全て別の動画からサンプリングされたもので,時刻順にソートされたもの. なるほど.
Generator
- conditionはdownsamplingされた特徴に加えられる
- Conv-Resblock-Deconv
Discriminator
- との2つから成り立つ
- : 生成画像がReal or Fakeを判断
- : 生成結果 [tex: \hat{S{A}}] がビデオの連続した繋がりとして適切かを判断. つまり,[tex:\hat{I{t}}] がその時刻[tex:t{i}]に当てはまるか?,[tex:\hat{I}{t}]がその時刻で現れそうな色(夕焼けとか)をしているか?を判断
Adversarial Loss
- : 通常のAdv loss.
- : condition付きAdv loss
- の赤線引いたところが,画像と時刻の情報が不一致なものをに入力している
- (これがないと,Discriminatorが有利すぎて,うまく学習できないんだろうなって感じがした. アドバイスください.)
3.2 Multi-Domain training
- AMOSデータセットだけだと,結果が微妙だったので,風景動画でリッチなアウトドアスタイルを含むTLVDBデータセット()を利用
- AMOSは監視カメラ映像なので,アウトドアみがない
- 単純に合併させて教師無しで学習させても,お互いのドメインが違いすぎてうまく学習ができない
- よって,TLVDBの時刻アノテーションがない部分を補える,半教師あり学習を提案
Model architectureとLoss
- : Aの時刻ラベルtと,Bの連続したフレームを用いて,時刻に合わせたスタイルが付与されるように生成する.(モデル図の実線)
- : Gへ入力したBの連続フレームと生成されたフレームのReal or Fakeを評価(モデル図の実線)
- : Gbの出力を受け取り,時刻の連続した変化で色はどう変化するか?のスタイルを学習するG
- : Aのフレーム毎に違う動画からサンプリングされた画像を重ねて作った時刻が連続した動画(Sa)をReal, Gaの出力をFakeとして,Real or Fakeの計算
- : Sa, ~Sa, Ga(G(b(I,t,z)))を入力
- : Gaの出力で構造が変化しないためのL1距離
3.3 Guided Upsampling
- 128x128の動画を生成するのはきついので,64x64で生成して提案Upsamplingで512x512にする
- (なんかここよくわからなかったので,いつか修正しておきます)
- (動画生成,変換において解像度が高いと難しいのはものすごく同意した)
4. Experiment
4.1 定量評価
- (実験はなかなかの闇)
- 比較対象は,本物,[Li+ ECCV18]https://arxiv.org/abs/1802.06474, TLVDBの手法[Shih+ ACM Trans03]
- 24枚の画像から,16フレームへの風景変化予測をする(合計: 384)
- 各生成動画から,2 or 3フレームをランダムサンプリングして,合計71枚
- AMTで高評価98%以上の人10人に本物か偽物かを聞いた(GAN専用の人なんているのか?)
- 提案手法, 本物,[Li+ ECCV18], TLVDB[Shih+ ACM Trans03]は,60.6, 67.5, 34,1 44.9%の本物率
4.2 計算時間
- 提案手法は,64x64の16フレームをGbがGPU-0.02s,CPU-0.8s
- Guided upsamplingは64x64を512x512へと0.1s
- [Li+ ECCV18]は,6.3s(768x384)
- TLVDB[Shih+ ACM Trans03]は,58s (700ピクセル)
4.2 Ablation study
+ (Top: vanilla cGAN): 夕焼けみたいな情報は一切できずに,明るさだけを変化させてる + (Dを騙すのに一番そうするのがよかったっぽい?) + (Middle: supervised) : 監視カメラ情報だけなので,微妙 + (Bottom: semi-supervised): 風景データセットが加わったのでエモい結果にうぇい
+ Gaの役割 + (手前が暗くなってる) +( 全体的に見て,よくなってるのかの評価できないし,何も言えない) + (データセット依存の特徴から,Discriminatorをうまく騙せるように学習するので,データセット依存な気がする)
5. Conclusion
- 参照スタイルなしで変えれる
- ありえん暗闇 -> 昼への変換は,あんまりできない
- (多分,スタイルが違いすぎる?)
- 人工物のあかり(窓からの漏れた光)みたいなのは生成できないっぽい(データ数が少ないから?)
- (動きは考慮していないので,動きも考慮しつつ夕焼けみたいにスタイルも変換できたら面白そう,リフティングしながらいつのまにか夕焼けにできる. 超ゆっくりリフティングを何百倍にも早送りてきになる?物理法則は無視してるが)
最後に
MIRU19で,動画のフレーム予測のポスター発表をするので,今回のようなタスクや,動画のフレーム予測やGANなどの研究について議論できたらいいなと思います. 私は初心者ですが.