碎片筆記|AI生成圖像溯源方法源碼復現經驗(持續更新中……)

前言:本篇博客分享一些溯源方法的復現經驗,希望能幫助到大家🎉。


目錄

  • 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加載模型時因網絡問題報錯的一個解決方案 - 知乎

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79806.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79806.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79806.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SAP Fiori Elements Object Page

?? SAP Fiori Elements Object Page:魔法積木城堡的建造秘密 想象一下,你曾經去過一個神奇的樂高主題公園,在那里,城堡會根據你的設計圖紙自動搭建,而你只需要提供一張設計說明書,不必親自擺放每一塊積木!這就是SAP Fiori Elements Object Page的渲染魔法! ???♂…

Git 用戶名與郵箱配置全解析:精準配置——基于場景的參數選擇

目錄 一、配置查看:理解多層級配置體系二、精準配置:基于場景的參數選擇1. 倉庫級配置(推薦)2. 用戶級配置3. 系統級配置 三、歷史提交信息修改1. 修改最近一次提交2. 修改多個歷史提交(危險操作) 五、配置…

Fabric系列 - SoftHSM 軟件模擬HSM

在 fabric-ca-server 上使用軟件模擬的 HSM(密碼卡) 功能 安裝 SoftHSMv2 教程 SoftHSMv2 默認的配置文件 /etc/softhsm2.conf默認的token目錄 /var/lib/softhsm/tokens/ 初始化和啟動fabric-ca-server,需要設置一個管理員用戶的名稱和密碼 初始化令牌 # 初始…

醫學影像系統的集成與工作流優化

?? 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,10年以上C/C++, C#, Java等多種編程語言開發經驗,擁有高級工程師證書;擅長C/C++、C#等開發語言,熟悉Java常用開發技術,能熟練應用常用數據庫SQL server,Oracle,mysql,postgresql等進行開發應用…

轉發多臺px4仿真UDP數據到地面站

轉發腳本的任務需求 仿真采用UDP通信方式,在 wsl 中仿真三臺飛機,項目需要將一臺電腦中的三臺飛機的數據打包發送到另一臺飛機的地面站,但地面站是無法直接訪問另一臺主機的 wsl 中的端口的,wsl 中的端口需要本機才能訪問&#x…

FPGA圖像處理(五)------ 圖片水平鏡像

利用bram形成雙緩沖,如下圖配置所示: wr_flag 表明 buffer0寫 還是 buffer1寫 rd_flag 表明 buffer0讀 還是 buffer1讀 通過寫入邏輯控制(結合wr_finish) 寫哪個buffer ;寫地址 進而控制ip的寫使能 通過狀態緩存來跳轉buffer的…

微服務八股(自用)

微服務 SpringCloud 注冊中心:Eureka 負載均衡:Ribbon 遠程調用:Feign 服務熔斷:Hystrix 網關:Gateway/Zuul Alibaba 配置中心:Nacos 負載均衡:Ribbon 服務調用:Feign 服務…

ESP32_IDF_OTA_HTTP升級固件

ESP32_IDF_OTA_HTTP升級固件 前言:一個項目的主控使用的是ESP32,因為封裝外殼的原因,所以需要采用OTA的方式進行升級,因為之前有對WIFI的OTA有所了解,所以在此基礎上,使用官方提供的native_ota_example例程…

MySQL表結構化:數據類型與表生命周期詳解

引言 各位數據庫學習者大家好!今天我們將深入探討MySQL中最核心的對象——表(Table)的各類操作 🎯。表是存儲數據的基石,就像Excel中的工作表一樣,但功能要強大得多!無論是電商網站的用戶信息&…

React中的狀態管理Dva總結

在 React 開發中,隨著應用的復雜度增加,如何高效地管理應用狀態成為了一個非常重要的問題。為了解決這一問題,很多開發者選擇了 Redux,然而 Redux 的學習曲線較陡,且需要配置較多的樣板代碼。為此,Ant Desi…

數據結構中的高級排序算法

希爾排序 你可以將希爾排序理解成——先通過幾次分組的、較小的組間插入排序將原數組變得有序&#xff0c;最后再進行一次序列基本有序的完整插入排序。 #include <stdio.h>#define ARR_LEN(arr) (sizeof(arr) / sizeof(arr[0]))void print_arr(int arr[], int len) {for…

計算機視覺最不卷的方向:三維重建學習路線梳理

提到計算機視覺&#xff08;CV&#xff09;&#xff0c;大多數人腦海中會立馬浮現出一個字&#xff1a;“卷”。卷到什么程度呢&#xff1f;2022年秋招CV工程師崗位數下降了16%&#xff0c;但求職人數增加了23%&#xff0c;求職人數與招聘崗位的比例達到了恐怖的15:1&#xff0…

【Docker】Docker環境下快速部署Ollama與Open-WebUI:詳細指南

Docker環境下快速部署Ollama與Open-WebUI&#xff1a;詳細指南 在本篇文章中&#xff0c;我們將深入探討如何在Docker中高效部署 Ollama 和 Open-WebUI&#xff0c;并解決在實際使用中常見的問題&#xff0c;確保你的模型服務穩定高效地運行。 一、Ollama 和 Open-WebUI 快速部…

Vue3學習(組合式API——Watch偵聽器詳解)

目錄 一、Watch偵聽器。 &#xff08;1&#xff09;偵聽單個數據。 &#xff08;2&#xff09;偵聽多個數據。&#xff08;數組寫法&#xff1f;&#xff01;&#xff09; &#xff08;3&#xff09;immediate參數。(立即執行回調) &#xff08;3&#xff09;deep參數。(深層監…

SARIMA-LSTM融合模型對太陽黑子數量預測分析|附智能體數據代碼

全文智能體鏈接&#xff1a;https://tecdat.cn/?p41969 分析師&#xff1a;Peng Fan 本研究以太陽黑子活動數據為研究對象&#xff0c;旨在幫助客戶探索其未來走勢并提供預測分析。首先&#xff0c;通過對數據的清洗和處理&#xff0c;包括離群值的識別與處理以及時間序列的建…

簡單易懂的JavaScript中的this指針

文章目錄 默認綁定 / 隱式綁定如何調整this1.用變量固定this2.箭頭函數2.bind3.call/apply&#xff08;一次性&#xff09; 默認綁定 / 隱式綁定 要找this指針指向誰&#xff0c;我們首先要做的是&#xff1a;找到一個明確的對象&#xff0c;這個對象調用了含有this指針的函數…

Spring MVC數據綁定和響應 你了解多少?

數據綁定的概念 在程序運行時&#xff0c;Spring MVC接收到客戶端的請求后&#xff0c;會根據客戶端請求的參數和請求頭等數據信息&#xff0c;將參數以特定的方式轉換并綁定到處理器的形參中。Spring MVC中將請求消息數據與處理器的形參建立連接的過程就是Spring MVC的數據綁…

BMS工具箱用來執行貝葉斯模型平均(BMA)計算模塊

貝葉斯模型平均&#xff08;Bayesian Model Averaging&#xff0c;BMA&#xff09;是一種用于處理模型不確定性的統計方法&#xff0c;通過結合多個模型的預測結果來提高預測的準確性和魯棒性。在 MATLAB 中&#xff0c;可以使用專門的工具箱&#xff08;如 BMS 工具箱&#xf…

Java內存馬的檢測與發現

【網絡安全】Java內存馬的檢測與發現 一、Java內存馬的現象二、檢測思路三、重點關注類四、檢測方法1. 檢查方法&#xff08;FindShell&#xff09;2. 檢查方法&#xff08;sa-jdi&#xff09;3. 檢查方法&#xff08;arthas-boot&#xff09;4. 檢查方法&#xff08;cop.jar&a…

ISP有感自發

一、黑電平 由于傳感器&#xff0c;即便在無光的情況下&#xff0c;依然會產生微小的暗電流&#xff0c;這些暗電流可能是噪點會影響后期的調試。因此&#xff0c;我們便將這些電流處理為0&#xff0c;成為純黑的顏色。可以在源頭消除這些誤差。 如何矯正黑電平&#xff1a; …