多媒體內容分析(MCA) === 相關文獻 --- ### **Conditional GAN 系列** - **Conditional GAN |** https://arxiv.org/abs/1411.1784 - **Pix2Pix |** https://arxiv.org/abs/1611.07004 - [論文講解(英)](https://www.youtube.com/watch?v=UcHe0xiuvpg&ab_channel=DigitalSreeni) - [tensorflow ](https://www.tensorflow.org/tutorials/generative/pix2pix) - [pytorch 實作](https://www.youtube.com/watch?v=SuddDSqGRzg&ab_channel=AladdinPersson) - Pix2Pix訓練示意圖 ![image](https://hackmd.io/_uploads/Bk6YYM46p.png) - 一組生成器(U-net) + 一組鑑別器(PatchGAN) - [一文看懂PatchGAN](https://blog.csdn.net/weixin_35576881/article/details/88058040) - **Pix2PixHD |** [High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs](https://arxiv.org/abs/1711.11585) - Nvidia + UC Berkerly - [Github]( https://github.com/NVIDIA/pix2pixHD?tab=readme-ov-file) - [Training a custom Pix2Pix model using Pix2PixHD](https://www.youtube.com/watch?v=TVCZLb1qe_0) - [图像转换(二): pix2pixHD](https://zhuanlan.zhihu.com/p/364367710) - [Perceptual Loss: 图像风格迁移和超清化](https://zhuanlan.zhihu.com/p/364694709) ### **CycleGAN 系列** - ~~類似於conditional-GAN~~,~~但不同的是,cycleGAN是利用圖片作為約束,且架構上也有不同~~ - [論文講解(英)](https://www.youtube.com/watch?v=VzIO5_R9XEM&ab_channel=DigitalSreeni) - 可利用不成對樣本進行訓練 - cycleGAN使用三種概念 - 來回一致損失 - 對抗損失 - 特質損失 - 具有兩組生成器採用U-Net結構(也可以利用ResNet),兩組鑑別器採用類似PatchGAN架構 - [pytorch-CycleGAN-and-pix2pix](https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix) - **CycleGAN |** https://arxiv.org/abs/1703.10593 - [Image to image translation using Pix2Pix GAN](https://reurl.cc/N4od46) - **Augmented CycleGAN |** https://arxiv.org/abs/1802.10151 - 為基本cycle GAN 加上其他約束,讓模型輸出能根據使用者提示產生變化 - [炫酷的图像转换:从pix2pix到CycleGAN](https://zhuanlan.zhihu.com/p/93219297) ### **Progressive GAN (PGGAN)系列** - **PGGAN |** https://arxiv.org/abs/1710.10196 - [paperexplain](https://www.youtube.com/watch?v=nkQHASviYac) - **StyleGAN |** https://arxiv.org/abs/1812.04948 - [StyleGAN Paper Explained](https://www.youtube.com/watch?v=qZuoU23ACTo&ab_channel=AladdinPersson) - **StyleGAN V2 |** https://arxiv.org/abs/1912.04958 - **TransGAN |** https://arxiv.org/abs/2102.07074 - [StyleGAN 和 StyleGAN2 的深度理解](https://zhuanlan.zhihu.com/p/263554045) ### **Self-Attention GAN 系列** - **SAGAN |** https://arxiv.org/abs/1805.08318 - **BigGAN |** https://arxiv.org/abs/1809.11096 ### **Diffusion Model 系列** - **Denoising Diffusion Probabilistic Models |** https://arxiv.org/abs/2006.11239 - **Learning Transferable Visual Models From Natural Language Supervision |** https://arxiv.org/abs/2103.00020 - **DALL-E |** https://arxiv.org/abs/2102.12092 - 相關研讀 | https://github.com/simonsanvil/DALL-E-Explained/blob/main/README.md ### **VQGAN 系列** - [详解VQGAN(一)| 结合离散化编码与Transformer的百万像素图像生成](https://zhuanlan.zhihu.com/p/515214329) - **Taming Transformers for High-Resolution Image Synthesis |** https://arxiv.org/abs/2012.09841 - 延伸閱讀 | [Non-local Neural Networks](https://arxiv.org/abs/1711.07971) - [論文閱讀 CVPR 2018 — Non-local Neural Networks](https://reurl.cc/Ej71vA) - **VQGAN-CLIP: Open Domain Image Generation and Editing with Natural Language Guidance |** https://arxiv.org/abs/2204.08583 ### **其他相關** - 評估方式 - [GAN的几种评价指标](https://blog.csdn.net/qq_35586657/article/details/98478508) - **clip + GAN** - https://arxiv.org/abs/2301.12959 - https://zhuanlan.zhihu.com/p/62746494 - [Reviewing FID and SID Metrics on Generative Adversarial Networks](https://arxiv.org/abs/2402.03654) - 優化訓練GAN的方法 - Wasserstein GAN - https://zhuanlan.zhihu.com/p/25071913 - https://arxiv.org/abs/1701.07875 ## Pix2Pix - Image-to-Image Translation(to be continued) ### 理論 傳統的GAN具有一個生成器G 跟判別器D,生成器利用一個隨機噪聲生成假圖,透過判別器判別是否真假,並利用其Loss去訓練生成器跟判別器。 而conditional GAN 透過輸入文字跟對應圖像,生成器透過GAN的訓練架構,去學習到兩者之間的對應關係。而pix2pix承襲此概念利用圖像作為輸入,利用U-Net架構的生成器,進而達成圖像轉譯 原始cGAN目標函數如下 ![image](https://hackmd.io/_uploads/ryqAHTRg0.png) * 整個公式由兩項組成。 * x表示輸入(input) * y代表真實圖像 * z 表示輸入生成器的隨機分布(input) * G(x, z)表示生成器產生的生成圖(fake) * 判別器(D) * 以x當成輸入來說,y是真實圖(real),希望判別器分辨照片為真,D(x, y)輸出的值越大越好 * 以x輸入,先用生成器產生假照片G(x, z),希望判別器分辨生成照片(fake)為假,D(x,G(x, z))輸出越小越好 * 判別器的工作就是在使函數最大化 * 生成器(G) * 生成器則是希望透過騙過判別器,使D(x,G(x, z))最大化 * 生成器希望函數最小化 * 對應到就是GAN背後"極大極小零和博弈"概念 ### pix2pix架構 - 生成器採用U-net架構,如同encoder/decoder架構,U-net下採樣過程中可以提取高層特徵(又稱為語意特徵、貓狗人飛機鳥),但作者認為,同時在上採樣過程中採用跳接結合特徵,學習到底層特徵(輪廓、邊緣、紋理)、包留各種尺度的特徵訊息更有利生成清晰度更好的圖像 ![image](https://hackmd.io/_uploads/ByKgD6CeR.png) - 判別器是採用PatchGAN架構,patchGAN僅判斷一個NxN大小的patch是否為真,故能更好的判別局部的特徵,即使N遠小於圖像大小,也能獲得很好的效果,且具備更少參數,操作上更快的優點。 ![image](https://hackmd.io/_uploads/ryMNFTRx0.png) - 損失函數作者並沒有採用cGAN中最小化log(1 -D(x,G(x, z)) ![image](https://hackmd.io/_uploads/HklKguy-R.jpg) - 作者認為在訓練初期生成器的能力非常差D(x, G(x, z))項非常小,導致與生成器有關的函數非常接近0不利生成器學習。pix2pix將第二項改成由生成器產出圖像與原圖用L1-distance作為損失函數(圖一),修改後損失函數如(圖二)所示,整體概念符合原始GAN的minmax game,透過判判別器跟生成器的競爭達到納什平衡。 - ![螢幕擷取畫面 2024-04-19 101516](https://hackmd.io/_uploads/r19HedJZA.jpg) - ![image](https://hackmd.io/_uploads/BJcvcaRg0.png)