Skip to content

JPEG圧縮を応用した画像生成PyTorchプロジェクトです。

License

Notifications You must be signed in to change notification settings

kthksgy/jpeg-dcgan-pytorch

Repository files navigation

jpeg-dcgan-pytorch

JPEG圧縮を応用した画像生成プロジェクトです。

参考論文

Gueguen, L., Sergeev, A., Kadlec, B., Liu, R., & Yosinski, J. (2018). Faster neural networks straight from jpeg. In Advances in Neural Information Processing Systems (pp. 3933-3944).

JPEGのDCT係数を入力として画像分類をする。
分類精度を維持しながら高速化を達成した。

公式実装: uber-research / jpeg2dct

Kang, B., Tripathi, S., & Nguyen, T. Q. (2019). Toward Joint Image Generation and Compression using Generative Adversarial Networks. arXiv preprint arXiv:1901.07838.

高解像度画像は圧縮されているはずなのでGeneratorにJPEGデコード機構を追加する事で画像にJPEG的な特徴を付与する。
通常のモデルに追加する形なので高速化ではなくFIDスコアの向上が目的である。

  • Locally Connected Layer
    入出力特徴平面上の小領域間でのみ結合があるような畳み込みを行う。

Goyal, P., Dollár, P., Girshick, R., Noordhuis, P., Wesolowski, L., Kyrola, A., Tulloch, A., Jia, Y., & He, K. (2017). Accurate, large minibatch sgd: Training imagenet in 1 hour. arXiv preprint arXiv:1706.02677.

  • Linear Scaling
    学習率をバッチサイズに比例させる。

Miyato, T., & Koyama, M. (2018). cGANs with projection discriminator. arXiv preprint arXiv:1802.05637.

  • Projection Discriminator
    Discriminatorの最終層の特徴とクラスを埋め込んだベクトルの内積を取る。

Heusel, M., Ramsauer, H., Unterthiner, T., Nessler, B., & Hochreiter, S. (2017). Gans trained by a two time-scale update rule converge to a local nash equilibrium. In Advances in neural information processing systems (pp. 6626-6637).

  • Two Time-Scale Update Rule (TTUR)
    GeneratorとDiscriminatorでそれぞれ異なる学習率を適用する。

Zhang, H., Goodfellow, I., Metaxas, D., & Odena, A. (2019, May). Self-attention generative adversarial networks. In International Conference on Machine Learning (pp. 7354-7363). PMLR.

GとDの両方にSelf-Attentionを導入して大域的な画素の関係を考慮できるようにする。

Anonymous authors (Paper under double-blind review). ICLR2021.

  • Skip-Layer channel-wise Excitation Module (SLE Module)
    ResidualConnectionやSEモジュールのような勾配補強のレイヤー間接続を作成する。
  • Self-Supervised Discriminator
    Dの中間特徴から元画像を復元できるようにDを訓練し正則化する。

非公式実装: lucidrains / lightweight-gan

参考記事など

  1. soumith/ganhacks - GitHub
  2. Tips for Training Stable Generative Adversarial Networks
  3. Keep Calm and train a GAN. Pitfalls and Tips on training Generative Adversarial Networks
  4. GAN — Ways to improve GAN performance
  5. GAN(Generative Adversarial Networks)を学習させる際の14のテクニック
  6. DCGAN(Deep Convolutional GAN)|DeepLearning論文の原文を読む #12
  7. DCGAN
  8. GANで学習がうまくいかないときに見るべき資料
  9. 個人的GANのTipsまとめ
  10. PyTorchでDCGANやってみた
  11. CIFAR10を混ぜたままChainerのDCGANに突っ込んだら名状しがたい何かが生成された話
  12. TonyMooori/dct_2dim.py - GitHub Gist
  13. GANの発展の歴史を振り返る!GANの包括的なサーベイ論文の紹介(アルゴリズム編)
  14. GANの発展の歴史を振り返る!GANの包括的なサーベイ論文の紹介(応用編)

参考ライブラリ

Releases

No releases published

Packages

No packages published