Exploring Multi-Modal Fusion for Image Manipulation Detection and Localization arXiv GitHub


论文(arxiv)
post1post2

数据集

下载 train 数据集:

下载 test 数据:

创建Casiav1+数据集需要corel数据集。

测试集的数据列表分为操纵图像和真实图像,并存在于名为的文件中:

./data/IDT-<DATASET_NAME>-manip.txt
./data/IDT-<DATASET_NAME>-auth.txt

这是为了在评估本地化时易于使用,因为您只使用操纵的图像(真实图像的本地化F1始终为0!)。

为了便于使用和再现,训练的数据列表分为训练文件和val文件。我们使用Kwon等人在CAT-Net中提出的列车验证划分. 列车数据列表位于名为的文件中:

./data/CAT-Net_splits/train/<DATASET_NAME>.txt
./data/CAT-Net_splits/val/<DATASET_NAME>.txt

对于我们的实验,我们在训练数据集的验证分割上进行了验证,因此测试数据集在评估之前完全不可见。

数据文件夹结构

然后,您应该将数据集放在数据目录中,如下所示:

data/
├── Casiav1
│ ├── Au
│ ├── Gt
│ └── Tp
├── Casiav2
│ ├── Au
│ ├── mask
│ └── tampered
├── CocoGlide
│ ├── fake
│ ├── mask
│ └── real
├── Columbia
│ ├── 4cam_auth
│ └── 4cam_splc
├── compRAISE
│ └── <all images here>
├── corel-1k
│ ├── test_set
│ └── training_set
├── COVER
│ ├── Au
│ ├── mask
│ └── tampered
├── DSO-1
│ ├── images
│ └── masks
├── FantasticReality
│ ├── ColorFakeImages
│ ├── ColorRealImages
│ └── masks
├── IMD2020
│ ├── 1a1ogs
│ ├── 1a3oag
│ .
│ .
│ .
│ └── z41
└── tampCOCO
└── <all images here>

训练

准备

在培训之前,您需要按照说明此处下载经过预培训的网络并将它们放在/pretrained目录中,如下所示:

pretrained/
├── segformer
├── noiseprint
└── modal_extractor

实验设置

在训练之前,您需要创建一个实验文件,并将其放在“experiments”文件夹中。此yaml文件包含用于训练的参数。要使用我们的训练设置训练模型,您可以使用提供的ec_example.yaml文件。

但是,您可以按以下方式更改训练参数:

  • 如果需要,您可以更改学习参数或进行更多时期的训练:
WORKERS: 16
ACCUMULATE_ITERS: 6
BATCH_SIZE: 4
WARMUP_EPOCHS: 2
EPOCHS: 100
  • 您可以更改优化器或调度程序参数::
LEARNING_RATE: 0.005
SGD_MOMENTUM: 0.9
WD: 0.0005
POLY_POWER: 0.9
  • 您可以更改训练或验证数据集:
DATASET:
TRAIN:
- 'data-list-1'
- ...
- 'data-list-N'
VAL:
- 'val-data-list-1'
- ...
- 'val-data-list-N'

Localization训练

可以通过以下方式运行示例培训:

example_train.sh

您可以通过在/experiences目录中创建一个新的实验yaml文件来更改训练参数。检查点另存为:

ckpt/
└── <model_name>
├── best_val_loss.pth
└── final.pth

model_name参数在实验yaml文件中设置为:

MODEL:
NAME: <model_name>

Detection训练

要运行detection训练(第2阶段),需要在chekpoints文件夹中放置一个本地化检查点(由第1阶段训练生成)。
如果您想使用我们的本地化检查点之一,您可以按照说明此处下载它们.

第二阶段训练的实验文件应设置为检测:

MODEL:
TRAIN_PHASE: 'detection'

然后,可以在我们的测试数据集上训练检测和评估模型,如下所示:

source data.sh
exp='./experiments/ec_example_phase2.yaml'
ckpt_loc='./ckpt/<path_to_localization_ckpt>'
ckpt='./ckpt/<model_name>/best_val_loss.pth'
$pint ec_train_phase2.py --ckpt $ckpt_loc --exp $exp

$pint test_detection.py --exp $exp --ckpt $ckpt --manip $columbia_manip --auth $columbia_auth
$pint test_detection.py --exp $exp --ckpt $ckpt --manip $cover_manip --auth $cover_auth
$pint test_detection.py --exp $exp --ckpt $ckpt --manip $dso1_manip --auth $dso1_auth
$pint test_detection.py --exp $exp --ckpt $ckpt --manip $cocoglide_manip --auth $cocoglide_auth
$pint test_detection.py --exp $exp --ckpt $ckpt --manip $casiav1_manip --auth $casiav1_auth

评估

您可以按照说明此处下载我们经过预训练的网络并将它们放在/ckpt目录中。然后,您可以使用以下方法评估模型以进行本地化:

example_test.sh

以及改变相关参数:

source data.sh
exp='./experiments/ec_example.yaml'
ckpt='./ckpt/<model_name>/best_val_loss.pth'

$pint test_localization.py --exp $exp --ckpt $ckpt --manip $columbia_manip
$pint test_localization.py --exp $exp --ckpt $ckpt --manip $cover_manip
$pint test_localization.py --exp $exp --ckpt $ckpt --manip $dso1_manip
$pint test_localization.py --exp $exp --ckpt $ckpt --manip $cocoglide_manip
$pint test_localization.py --exp $exp --ckpt $ckpt --manip $casiav1_manip

以同样的方式,可以评估用于检测的模型:

source data.sh
exp='./experiments/ec_example_phase2.yaml'
ckpt='./ckpt/<model_name>/best_val_loss.pth'

$pint test_detection.py --exp $exp --ckpt $ckpt --manip $columbia_manip --auth $columbia_auth
$pint test_detection.py --exp $exp --ckpt $ckpt --manip $cover_manip --auth $cover_auth
$pint test_detection.py --exp $exp --ckpt $ckpt --manip $dso1_manip --auth $dso1_auth
$pint test_detection.py --exp $exp --ckpt $ckpt --manip $cocoglide_manip --auth $cocoglide_auth
$pint test_detection.py --exp $exp --ckpt $ckpt --manip $casiav1_manip --auth $casiav1_auth

鸣谢

这项工作得到了欧盟地平线2020研究和创新计划的支持,该计划的赠款协议为H2020-101021866 CRiTERIA。

感谢public repositories:

引用

如果您发现我们的方法在您的工作中有用,或者您使用了本回购中提供的一些材料,请引用以下介绍我们的方法和材料的出版物:

@inproceedings{triaridis2024exploring,
title={Exploring Multi-Modal Fusion for Image Manipulation Detection and Localization},
author={Triaridis, Konstantinos and Mezaris, Vasileios},
year={2024},
month={Jan.-Feb.},
booktitle={Proc. 30th Int. Conf. on MultiMedia Modeling (MMM 2024)}
}