日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

CIAGAN笔记

發(fā)布時(shí)間:2024/1/18 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CIAGAN笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

paper:
CIAGAN: Conditional Identity Anonymization Generative Adversarial Networks
code:
Official PyTorch implementation of CIAGAN

CIAGAN論文

CIAGAN能對(duì)原圖進(jìn)行匿名,之前的GAN匿名,有時(shí)會(huì)將多個(gè)原圖映射到同一個(gè)假的身份,于是CIAGAN提出了一個(gè)控制向量的方法,來控制其生成過程;同時(shí),CIAGAN通過使用面部landmark的方式來保持原圖的姿態(tài)。

CIAGAN的訓(xùn)練流程


①上圖中,首先將原圖通過landmark detection形成面部的輪廓以及帶有mask的背景圖,將他們拼接成[B,6,128,128]維度的數(shù)據(jù)并饋送入生成器中。
②生成器時(shí)一個(gè)auto-encoder的形式,將目標(biāo)圖的onehot向量經(jīng)過轉(zhuǎn)置卷積神經(jīng)網(wǎng)絡(luò)形成[B,256,4,4]維度的數(shù)據(jù),此時(shí),輸入到生成器中的數(shù)據(jù)經(jīng)過下采樣也是[B,256,4,4]的維度,然后將他們拼接為[B,512,4,4]維度的數(shù)據(jù)進(jìn)行上采樣,最終輸入假圖。
③圖中右上角的判別器是用來判別圖片的真假。
④圖中右下角的判別器是身份判別器,用于判別G生成的假圖與目標(biāo)圖之間的差異,類似于id分類器
我個(gè)人理解:由于輸入到G里面的數(shù)據(jù)包含原圖的背景信息,所以D使得G往原圖的面部進(jìn)行生成,而id的判別器使得G往目標(biāo)圖的面部進(jìn)行生成。

CIAGAN生成器

生成器是一個(gè)Auto-encoder的形式,具體形式如下圖:

轉(zhuǎn)置卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu):

CIAGAN判別器

CIAGAN損失函數(shù)

  • D和G的損失函數(shù)

論文中D和G使用的最小二乘法的損失函數(shù)

  • id判別器的損失函數(shù)

對(duì)于id判別器的損失函數(shù),其使用了對(duì)比損失Contrastive Loss

其中d是指兩個(gè)樣本之間的歐氏距離

CIAGAN代碼

dataset

CIAGAN的數(shù)據(jù)集是使用的celeba,不過在進(jìn)行訓(xùn)練時(shí),需要先對(duì)數(shù)據(jù)集進(jìn)行處理,即先形成下圖中的三個(gè)文件夾(clr、Indm、msk)

其中clr存放原圖,Indm存放對(duì)應(yīng)的面部landmark(可用OpenCV+dlib實(shí)現(xiàn)),msk存放對(duì)應(yīng)的帶有遮罩的原圖。
此外這些文件夾中的圖片是需要按照id進(jìn)行存放的,即相同id的圖片放在一個(gè)文件夾里

  • clr
    • 0
      • 小李圖片1.jpg
      • 小李圖片2.jpg
    • 1
      • 小王圖片1.jpg
      • 小王圖片2.jpg
  • Indm
    • 0
      • 小李landmark1.jpg
      • 小李landmark2.jpg
    • 1
      • 小王landmark1.jpg
      • 小王landmark2.jpg
  • msk
    • 0
      • 小李msk1.jpg
      • 小李msk2.jpg
    • 1
      • 小王msk1.jpg
      • 小王msk2.jpg

訓(xùn)練


run_training.py:運(yùn)行該文件即可跑通代碼,可以設(shè)置訓(xùn)練的一些超參數(shù)
train.py:具體的訓(xùn)練過程可見該文件夾
util_data.py:數(shù)據(jù)加載文件,源碼中返回的img是list,list[0]代表原圖,list[1]表示onehot的目標(biāo)圖
util_func.py:定義了保存模型、加載模型、初始化權(quán)重等一些方法
util_loss.py:定義了對(duì)應(yīng)的GAN的loss

模型


arch_resnet_siam.py:定義了id判別器的模型結(jié)構(gòu),該結(jié)構(gòu)為孿生網(wǎng)絡(luò)結(jié)構(gòu)
arch_siam_discr:定義了id判別器的模型結(jié)構(gòu)(代碼中并未用到,這是用于消融實(shí)驗(yàn)的,代碼中用的是上面的孿生網(wǎng)絡(luò))
arch_unet_flex.py:定義了G和D的模型結(jié)構(gòu)

總結(jié)

以上是生活随笔為你收集整理的CIAGAN笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。