pip install -r requirements.txt
Download underwater image datasets from UIEB and EUVP. Follow the data organization from below and config in dataset_path_config.py
├── dataset_name
├── train
├── images
├── im1.jpg
├── im2.jpg
└── ...
├── labels
├── im1.jpg
├── im2.jpg
└── ...
├── val
├── images
├── im1.jpg
├── im2.jpg
└── ...
├── labels
├── im1.jpg
├── im2.jpg
└── ...
cd adv_train
python train_ADMNNet.py --dataset_name UIEB --name not_adv --results_dir ../results_models/UWIE/ --train_batch_size 6
To conduct adversarial attacks, use the following instructions.
cd adv_eval
python adv_ADMNNet.py --dataset_name UIEB --model_path ../results_models/UWIE/ADMNNetnot_adv_100/UIEB/models/last_ADMNNet_UIEB.pth --results_dir ../results_UWIE_adv_eval/UWIE/ --train_batch_size 6
To evaluate the robustness of defended models, use the following instructions.
# finetune
cd adv_train
python train_ADMNNet.py --finetune \
--adv_train --name adv_f \
--num_epochs 20 \
--dataset_name UIEB --results_dir ../results_models/UWIE \
--train_batch_size 6
# training from scratch
python train_ADMNNet.py
--adv_train --name adv_s \
--num_epochs 100 \
--dataset_name UIEB --results_dir ../results_models/UWIE \
--train_batch_size 6