Skip to content

[ICCV'25] ADCD-Net: Robust Document Image Forgery Localization via Adaptive DCT Feature and Hierarchical Content Disentanglement

License

Notifications You must be signed in to change notification settings

KahimWong/ADCD-Net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[ICCV'25] ADCD-Net: Robust Document Image Forgery Localization via Adaptive DCT Feature and Hierarchical Content Disentanglement

arXiv

Description

Official code for "ADCD-Net: Robust Document Image Forgery Localization via Adaptive DCT Feature and Hierarchical Content Disentanglement".

model_overview

ForensicHub Benchmark (Doc Protocol)

doc_protocol

The evaluation follows the Doc Protocol. See ForensicHub.

Environment Setup

Dependencies: python 3.10.13, pytorch 2.3.0+cu121, albumentations 2.0.8.

Data Preparation

Download DocTamper Data

DocTamper dataset (Training, Testing, FCD, SCD): DocTamper. qt_table.pk and pks are in the DocTamper repo.

Download ADCD-Net Data

OCR masks and checkpoints: ADCD-Net.

ADCDNet.pth # ADCD-Net checkpoint
docres.pkl # DocRes checkpoint
DocTamperOCR/ # OCR mask directory
    ├── TrainingSet # Training set directory
    ├── TestingSet # Testing set directory
    ├── FCD # FCD dataset directory
    └── SCD # SCD dataset directory

Download Doc Protocol Data

4 cross-domain test sets (T-SROIE, OSTF, TPIC-13, RTM): https://drive.google.com/drive/folders/1xn8mELN8etQwRo_PgS5XV6XTKCZasz_A?usp=drive_link (cutted_datasets_fakes.zip)

Get OCR masks

Use seg_char.py. PaddleOCR setup: PaddleOCR.

Train ADCD-Net

ADCD-Net is trained on 4 NVIDIA GeForce RTX 4090 24G GPUs which takes about 27 hours with 100k training steps and 40 batch size.

  1. Set dataset, OCR mask, and checkpoint paths in cfg.py.
  2. Run main.py.
mode = 'train'
root = 'path/to/root'
docres_ckpt_path = 'path/to/docres.pkl'

Reproduce ForensicHub (Doc Protocol) Results of ADCD-Net

Doc Protocol: train on DocTamper training set, evaluate on seven test sets. DocTamper FCD/SCD/Test set are compressed once using the official DocTamper pickle QFs. Authentic images are skipped.

  1. Generate OCR masks for T-SROIE/OSTF/TPIC-13/RTM with seg_char.py.
  2. Generate path pkl files for T-SROIE/OSTF/TPIC-13/RTM with build_path_pkl.py.
  3. Update the following in cfg.py and run main.py.
mode = 'val'
all_ds_name = ['TestingSet', 'FCD', 'SCD', 'T-SROIE_test', 'Tampered-IC13_test', 'RealTextManipulation_test', 'OSTF_test']
pkl_dir = 'path/to/path_pkl'

Citation

If you find our project useful in your research, please cite it in your publications.

@inproceedings{wong2025adcd,
  title={ADCD-Net: Robust Document Image Forgery Localization via Adaptive DCT Feature and Hierarchical Content Disentanglement},
  author={Wong, Kahim and Zhou, Jicheng and Wu, Haiwei and Si, Yain-Whar and Zhou, Jiantao},
  booktitle={Proceedings of the IEEE/CVF international conference on computer vision},
  year={2025}
}

About

[ICCV'25] ADCD-Net: Robust Document Image Forgery Localization via Adaptive DCT Feature and Hierarchical Content Disentanglement

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages