赞
踩
pip install -r requirements.txt
下载好需要的数据集,按照如下方式进行组织
ForgeryNIR |--train |--ForgeryNIR-std |--0_real |--cyclegan |--progan |--stylegan |--stylegan2 |--ForgeryNIR-rand ... |--ForgeryNIR-mix ... |--test |--ForgeryNIR-std |--0_real |--cyclegan |--progan |--stylegan |--stylegan2 ... |--val |--ForgeryNIR-std |--0_real |--cyclegan |--progan |--stylegan |--stylegan2 ...
我们使用 checkpoints/[model_name]/model_epoch_best.pth
作为我们训练的最优模型。
/home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDeepfake/model_epoch_best.pth
python train.py
–name resnet50_wildDF_kd_forgerynir_yanshou
–dataroot ./dataset_2/
–classes faces_muti_epochs --batch_size 64 --load_teacher_model --teacher_model_path /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDeepfake/model_epoch_best.pth
可直接运行的命令:
python train.py --name resnet50_wildDF_kd_forgerynir_yanshou --dataroot ./dataset_2/ --classes faces_muti_epochs --batch_size 64 --load_teacher_model --teacher_model_path /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDeepfake/model_epoch_best.pth
参数说明:
--name:模型名称
--dataroot:训练,测试集所在文件夹
--classes:训练集/测试集文件夹名称
--batch_size:批
--load_teacher_model:是否导入教师模型
--teacher_model_path:教师模型路径
在测试集已经按照要求放置好之后,可以通过下面的代码测试:
python eval.py --vals faces_muti_epochs
–batch_size 64
–model_path /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDF_kd_forgerynir_yanshou/model_epoch_best.pth
可直接运行的命令
python eval.py --vals faces_muti_epochs --batch_size 64 --model_path /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDF_kd_forgerynir_yanshou/model_epoch_best.pth
参数说明:
--vals:测试集文件夹名称
--batch_size:批
--model_path:需要测试模型的路径
pip install -r requirements.txt
下载好需要的数据集。
生成相应的视频数据集路径与label值(0:real,1:fake)
DF_W_train.txt
./dataset/DF_W/train/0_real/352/real/135 0
./dataset/DF_W/train/0_real/352/real/122 0
./dataset/DF_W/train/0_real/352/real/102 0
./dataset/DF_W/train/0_real/352/real/124 0
./dataset/DF_W/train/0_real/352/real/159 0
./dataset/DF_W/train/0_real/352/real/25 0
./dataset/DF_W/train/1_fake/205/fake/12 1
./dataset/DF_W/train/1_fake/205/fake/13 1
./dataset/DF_W/train/1_fake/291/fake/43 1
./dataset/DF_W/train/1_fake/291/fake/5 1
./dataset/DF_W/train/1_fake/291/fake/356 1
./dataset/DF_W/train/1_fake/291/fake/196 1
./dataset/DF_W/train/1_fake/291/fake/345 1
./dataset/DF_W/train/1_fake/291/fake/329 1
./dataset/DF_W/train/1_fake/291/fake/321 1
DF_W_val.txt
验证集同理
我们使用 checkpoints/[model_name]/model_epoch_best.pth
作为我们训练的最优模型。
以下命令是主干网络为ResNet50,参数设置:帧数
f
r
a
m
e
s
=
16
frames=16
frames=16,分块
K
K
K 选择为
4
×
4
4 \times 4
4×4 。数据集选择为:训练集:WildDeepfake,测试集:WildDeepfake 的训练示例
python train.py --name resnet50_DF-W_frames16_k16_W
–train_txt DF_W_train.txt
–val_txt DF_W_val.txt
–batch_size 8
–num_frames 16
–k 16
–model_name resnet50
–num_classes 1
–our_weight可直接运行的命令:
python train.py --name resnet50_DF-W_frames16_k16_W --train_txt DF_W_train.txt --val_txt DF_W_val.txt --batch_size 8 --num_frames 16 --k 16 --model_name resnet50 --num_classes 1 --our_weight
参数说明:
--name:模型名
--train_txt:训练集txt路径
--val_txt:测试集txt路径
--batch_size:批次
--num_frames:一个视频中选取的帧数量[4,8,16,32]
--k:分块的数量[4,8,64]
--model_name:模型名称[resnet50,xception]
--num_classes:类别数,这里因为为2分类,所以固定为1
--our_weight:是否使用DCT增强权重矩阵
可以通过下面的代码测试:
python eval.py --model_path ./checkpoints/resnet50_DF-W_frames16_k16_W/model_epoch_best.pth
–val_txt DF_W_val.txt
–batch_size 16
–num_frames 16
–k 16
–model_name resnet50
–num_classes 1
–our_weight
可直接运行的命令
python eval.py --model_path ./checkpoints/resnet50_DF-W_frames16_k16_W/model_epoch_best.pth --val_txt DF_W_val.txt --batch_size 16 --num_frames 16 --k 16 --model_name resnet50 --num_classes 1 --our_weight
参数说明:
--model_path:模型所在路径
--val_txt:测试集txt文件路径
--batch_size:批
--num_frames:一个视频中选取的帧数量
--k:分块的数量
--model_name:模型名称[resnet50,xception]
--num_classes:类别数,这里因为为2分类,所以固定为1
--our_weight:是否使用DCT增强权重矩阵
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。