conda create -n refii python=3.9
conda activate refii
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt
我们用到了DiFF以及DiffusionForensics数据集,数据集下载链接已经给出,其中DiffusionForensics
数据集密码为dire
。
在训练之应该将训练real
和fake
图像放置到data/train
文件夹。例如,将LSUN-Bedroom
的real
图像放置到data/train/lsun_adm/0_real
目录下,将ADM-LSUN-Bedroom
的虚假图像放置到data/train/lsun_adm/1_fake
目录下。我们需要对验证集和测试集执行同样的操作,只需将data/train
修改为data/val
和data/test
。此外,如果您想修改模型训练数据,请在train.sh
修改DATASETS
以及DATASETS_TEST
路径,然后,执行以下命令训练ReFii模型:
sh train.sh
在训练完成后,我们为您保存了最佳模型,其路径为/data/exp/your_best_model
。如果您想用这个模型进行测试,那您需要在test.sh
中修改CKPT
路径为您的最优模型路径,然后通过运行下面的程序即可进行测试。
sh test.sh
例如,在数据集DiFF
上进行T2I
域内鉴别,我们需要按照如下步骤进行:首先,我们需要按照创建Training
中的方法创建DiFF_T2I
子数据集,并且将train.sh
中的DATASETS
以及DATASETS_TEST
均修改为DiFF_T2I
,在训练完成后,我们将在路径data/exp/DiFF_T2I/ckpt/model_epoch_best.pth
获得其最优模型;在测试阶段,我们需要按照Evaluation
的方法进行域内测试,其中test.sh
中CKPT
路径为data/exp/DiFF_T2I/ckpt/model_epoch_best.pth
,DATASETS_TEST
为DiFF_T2I
。
例如,在数据集DiFF
上进行T2I
训练I2I
的跨域鉴别,我们需要按照如下步骤进行:训练过程同Intra-domain discrimination
;在测试阶段,我们需要将test.sh
中DATASETS_TEST
修改为DiFF_I2I
。
鲁棒性测试我们主要针对JPEG压缩
和高斯模糊
进行实验。在/utils/config.py
中参数jpg_qual
和jpg_prob
分别控制JPEG压缩程度以及JPEG压缩概率,blur_sig
和blur_prob
分别控制高斯模糊强度以及高斯模糊概率,我们只需要修改这几个参数,并进行测试
步骤即可完成鲁棒性实验。