前言:本篇博客分享一些溯源方法的復現經驗,希望能幫助到大家🎉。
目錄
- 1. Close-set Attribution
- Repmix
- De-Fake
- DNA-Net
- 2. Open-set Attribution
- POSE
- 3. Single-Model Attribution
- OCC-CLIP
- LatentTracer
1. Close-set Attribution
Repmix
論文信息:RepMix: Representation Mixing for Robust Attribution of Synthesized Images. ECCV, 2022.
開源代碼:https://github.com/TuBui/image_attribution
環境配置
配置環境時,imagenet-c庫不能使用pip install imagenet-c
安裝(會報錯如下:
x_start, y_start = np.random.randint(0, frost.shape[0] - 224), np.random.randint(0, frost.shape[1] - 224)
AttributeError: 'NoneType' object has no attribute 'shape'
根據相關經驗,正確的安裝方式為:打開鏈接
https://github.com/hendrycks/robustness/tree/master/ImageNet-C
將下述文件全部下載
然后在上述文件對應的目錄下,運行pip install -e .
命令進行安裝。
代碼適配
-
如果要在其他數據集上運行該代碼,只需要按給定格式生成相應的train/val/test.csv文件,再修改csv文件路徑即可。
-
原始的csv文件有三列,分別表示圖像路徑 / 圖像模型類別 / 圖像語義類別。如果不需要圖像的語義類別,可以將對應值全部設置為0(而非直接刪除該列),確保文件的正確讀取。
-
在運行
test.py
文件時,代碼utils/augment_imagenetc.py
中'clean': transforms.Compose([transforms.Resize(csize)] + norm)
一行要改為:'clean': transforms.Compose([transforms.Resize([csize, csize])] + norm)
,不然會報錯如下:RuntimeError: stack expects each tensor to be equal size, but got [3, 224, 298] at entry 0 and [3, 254, 224] at entry 1
根據此篇博客,這是因為原始代碼只會將圖像較短邊調整為 224,保持長寬比不變。而我們需要的是將圖像尺寸變為224*224,故需對代碼進行相應修改。
De-Fake
論文信息:DE-FAKE: Detection and Attribution of Fake Images Generated by Text-to-Image Generation Models. CCS, 2023.
開源代碼: https://github.com/zeyangsha/De-Fake
環境配置
無過多要求
代碼適配
-
因為De-Fake用到了多模態特征,所以在適配其他數據集時,要事先使用blip模型生成每張圖像對應的caption作為其prompt。然后,對數據加載方式進行修改,確保正確讀取圖像和相應文本。
-
De-Fake需要用到clip和blip預訓練模型,可以預先下載下來,并更新以下路徑:
train.py中的model, preprocess = clip.load("ViT-B/32", device=device)
test.py中的blip = blip_decoder(pretrained=blip_url, image_size=image_size, vit='base')
第一個參數分別替換為相應文件的所在路徑否則,可能會因為網絡問題報錯:
Model has been downloaded but the SHA256 checksum does not not match. Please retry loading the model.
“ViT-B/32” 對應預訓練模型: https://openaipublic.azureedge.net/clip/models/40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af/ViT-B-32.pt
“blip” 對應預訓練模型:
https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_base_capfilt_large.pth
DNA-Net
論文信息:Deepfake Network Architecture Attribution. AAAI 2022.
開源代碼:https://github.com/ICTMCG/DNA-Det
環境配置
無過多要求
代碼適配
如果要在其他數據集上運行該代碼,只需要更新位于data/dataset.py
下的ImageMultiCropDataset()
類即可,確保數據能夠正確讀取。
2. Open-set Attribution
POSE
論文信息:Progressive Open Space Expansion for Open-Set Model Attribution. CVPR, 2023.
開源代碼:https://github.com/ICTMCG/POSE
環境配置
代碼適配
數據集
OSMA 數據集解壓Tip:由于文件較大,推薦使用7z解壓,Ubuntu首先使用apt-get install p7zip-full
命令安裝7z,然后cd切換到zip文件所在目錄下,使用7z x name.zip
完成解壓(7z會自動解壓分卷,無需事先手動合并)
嘗試過unzip和7z解壓方式,均以失敗告終,最后選擇在本地解壓后再上傳到服務器。
3. Single-Model Attribution
OCC-CLIP
論文信息:Which Model Generated This Image? A Model-Agnostic Approach for Origin Attribution. ECCV 2024.
開源代碼:https://github.com/uwFengyuan/OCC-CLIP
環境配置
- 代碼實際運行時其實不需要environment.yaml中給出的數百個庫,所以可以在執行
conda create -n name python=3.11
新建環境之后按需安裝相應的庫,節省安裝時間和存儲成本。
代碼適配
??注意:原代碼并未使用全部數據進行訓練、驗證和測試,所以需修改dataloader.py
中的data_label()
函數,并更新dataset
目錄下用到的json文件。
數據集
這個工作還提出了一個新數據集,由4個真實圖像集和9個生成模型圖像集構成,共301688張圖像,各類別圖像數量如下表。
附:遞歸統計當前目錄下全部文件數量命令:find ./ -type f | wc -l
LatentTracer
論文信息:How to Trace Latent Generative Model Generated Images without Artificial Watermark? ICML, 2024.
開源代碼:https://github.com/ZhentingWang/LatentTracer
環境配置
代碼適配
后記:后續將與大家分享關于如何設計實驗,以實現在同一個數據集上橫向比較上述三種不同類型溯源方法的一些個人見解。
參考鏈接
- CLIP加載模型時因網絡問題報錯的一個解決方案 - 知乎