| --- |
| license: other |
| library_name: pytorch |
| tags: |
| - image-forensics |
| - image-manipulation-detection |
| - image-segmentation |
| - trufor |
| - pytorch |
| --- |
| |
| # TruFor Phase-2 and Phase-3 Checkpoints |
|
|
| This repository stores phase-2 localization and phase-3 detection/confidence |
| checkpoints trained with the official |
| [TruFor](https://github.com/grip-unina/TruFor) PyTorch implementation. TruFor |
| detects and localizes manipulated regions in images using RGB and Noiseprint++ |
| features. |
|
|
| ## Training summary |
|
|
| - Architecture: TruFor localization network (`detconfcmx`, SegFormer-B2 backbone) |
| - Training datasets: IMD2020, CASIA 2.0 revised, and CocoGlide |
| - Training crop: 512 x 512 |
| - Epochs: 30 |
| - Optimizer: SGD |
| - Initial learning rate: 0.005 |
| - Batch size: 1 per GPU |
| - Hardware: NVIDIA GeForce RTX 2080 Ti (11 GiB) |
| - Validation maximum crop: 1024 x 1024 |
|
|
| Final recorded validation results: |
|
|
| - Loss: 0.657 |
| - Best `avg_p-F1_smooth`: 0.5505 |
| - Class IoU: `[0.90797067, 0.17650062]` |
|
|
| ### Phase 3: detection network and confidence estimator |
|
|
| - Initialization: phase-2 `weights/best.pth.tar` |
| - Frozen modules: Noiseprint++, backbone, and localization head |
| - Trained modules: confidence head and detection head |
| - Training datasets: IMD2020, CASIA 2.0 revised, and CocoGlide |
| - Training crop: 512 x 512 |
| - Epochs: 100 |
| - Batch size: 4 per GPU |
| - Validation maximum crop: 1024 x 1024 |
| - Final validation loss: 0.538 |
| - Best `avg_det_bacc`: 0.5981 |
| - Final class IoU: `[0.90785598, 0.08274118]` |
|
|
| ## Files |
|
|
| - `weights/best.pth.tar`: best checkpoint selected by `avg_p-F1_smooth` |
| - `weights/checkpoint.pth.tar`: final epoch-30 resume checkpoint |
| - `weights/phase3/best.pth.tar`: best phase-3 detection/confidence checkpoint |
| - `weights/phase3/checkpoint.pth.tar`: final epoch-100 phase-3 resume checkpoint |
| - `config/trufor_ph2.yaml`: training configuration |
| - `config/trufor_ph3_gpu2.yaml`: phase-3 training configuration |
| - `logs/trufor_ph2_gpu1.log`: complete training log |
| - `logs/trufor_ph3_gpu2.log`: concise phase-3 training log |
| - `code/`: the locally patched training/device-placement files and launchers |
| - `SHA256SUMS`: checkpoint integrity hashes |
|
|
| ## Loading |
|
|
| These are native TruFor/PyTorch checkpoints, not Transformers checkpoints. |
| Use them with the TruFor training/inference code. Use |
| `weights/phase3/best.pth.tar` for complete localization, confidence, and image |
| detection inference by passing its path through the project's |
| `TEST.MODEL_FILE` configuration option. Use the top-level |
| `weights/best.pth.tar` as phase-2 initialization when retraining phase 3. |
|
|
| ## How to use |
|
|
| To use or modify this work locally, install Git LFS and run |
| `git clone https://huggingface.co/benjaik/trufor-ph2`. Use |
| `weights/phase3/best.pth.tar` for complete inference with the upstream TruFor |
| code by setting `TEST.MODEL_FILE` to its downloaded path. Use |
| `weights/best.pth.tar` to initialize another phase-3 run, and use the matching |
| `checkpoint.pth.tar` file when resuming training. The included configurations, |
| patched files, and training logs can be copied and adapted for a new dataset or |
| experiment, subject to the included TruFor and CMX license terms. |
|
|
| ## Local compatibility changes |
|
|
| The accompanying files document changes needed on the training server: |
|
|
| - consistent CUDA placement for model, inputs, labels, losses, and resumed |
| optimizer state; |
| - corrected eight malformed CASIA list entries; |
| - validation crops limited to 1024 pixels to fit an 11 GiB GPU; |
| - a dedicated CUDA-10.2-compatible Conda environment. |
|
|
| ## License and attribution |
|
|
| The upstream TruFor license permits informational and nonprofit use and imposes |
| additional restrictions. This repository does not relicense the original code |
| or weights. Review `LICENSE.txt`, `LICENSE_CMX.txt`, and the upstream repository |
| before use or redistribution. |
|
|
| TruFor paper: *TruFor: Leveraging All-Round Clues for Trustworthy Image Forgery |
| Detection and Localization*, CVPR 2023. |
|
|