note:以下两个工作均为使用CNNDetection的训练基本框架下修改,具体网络在network文件下进行自己修改完成。
第一项工作(ForgeryNIR)
一、Cross-Modality Knowledge Distillation (CMKD)
1.使用方法
安装包
- install Pytorch (pytorch.org)
pip install -r requirements.txt
(1) 数据准备
下载好需要的数据集,按照如下方式进行组织
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
...
(2) 训练模型
我们使用 checkpoints/[model_name]/model_epoch_best.pth
作为我们训练的最优模型。
- 首先我们需要使用可见光数据集(这里用的wildDeepfake)预训练一个教师模型并保存在以下路径
/home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDeepfake/model_epoch_best.pth
- 下面这段命令是在multiple epochs设置下以wildDeepfake预训练的模型作为教师模型,以ForgeryNIR-std训练,以ForgeryNIR-std验证的训练代码
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:教师模型路径
(3) 测试模型
在测试集已经按照要求放置好之后,可以通过下面的代码测试:
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:需要测试模型的路径
第二项工作(TCSVT)
一、Spatial-Temporal Frequency Forgery Clue for Video Forgery Detection in VIS and NIR Scenario
1.使用方法
安装包
- install Pytorch (pytorch.org)
pip install -r requirements.txt
(1) 数据准备
下载好需要的数据集。
生成相应的视频数据集路径与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
验证集同理
(2) 训练模型
我们使用 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增强权重矩阵
(3) 测试模型
可以通过下面的代码测试:
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文章来源:https://www.toymoban.com/news/detail-468662.html
参数说明:--model_path:模型所在路径
--val_txt:测试集txt文件路径
--batch_size:批
--num_frames:一个视频中选取的帧数量
--k:分块的数量
--model_name:模型名称[resnet50,xception]
--num_classes:类别数,这里因为为2分类,所以固定为1
--our_weight:是否使用DCT增强权重矩阵
文章来源地址https://www.toymoban.com/news/detail-468662.html
到了这里,关于代码使用手册(自用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!