Official implementation.
https://github.com/zhilin007/FFA-Net
- python3
- PyTorch>=1.0
- NVIDIA GPU+CUDA
- numpy
- matplotlib
- tensorboardX(optional)
Dataset website:RESIDE ; Paper arXiv version:[RESIDE: A Benchmark for Single Image Dehazing]
FILE STRUCTURE
FFA-Net
|-- README.md
|-- net
|-- data
|-- white_data
|-- train
|-- hazy
|-- *.jpg
|-- clear
|-- *.jpg
|-- val
|-- hazy
|-- *.jpg
|-- clear
|-- *.jpg
|-- test
|-- hazy
|-- *.jpg
|-- clear
|-- *.jpg
|-- RESIDE
|-- ITS
|-- hazy
|-- *.png
|-- clear
|-- *.png
|-- OTS
|-- hazy
|-- *.jpg
|-- clear
|-- *.jpg
|-- SOTS
|-- indoor
|-- hazy
|-- *.png
|-- clear
|-- *.png
|-- outdoor
|-- hazy
|-- *.jpg
|-- clear
|-- *.png
Methods | Indoor(PSNR/SSIM) | Outdoor(PSNR/SSIM) |
---|---|---|
DCP | 16.62/0.8179 | 19.13/0.8148 |
AOD-Net | 19.06/0.8504 | 20.29/0.8765 |
DehazeNet | 21.14/0.8472 | 22.46/0.8514 |
GFN | 22.30/0.8800 | 21.55/0.8444 |
GCANet | 30.23/0.9800 | -/- |
FFANet | 36.39/0.9886 | 33.57/0.9840 |
Remove annotation from main.py if you want to use tensorboard
or view intermediate predictions
If you have more computing resources, expanding bs
, crop_size
, gps
, blocks
will lead to better results
train network on white data
dataset
python main.py --net='ffa' --crop --crop_size=540 --blocks=19 --gps=3 --bs=1 --lr=0.0001 --trainset='drug_train' --testset='drug_test' --steps=5000 --eval_step=1000 --device='cuda'
train network on ITS
dataset
python main.py --net='ffa' --crop --crop_size=240 --blocks=19 --gps=3 --bs=2 --lr=0.0001 --trainset='its_train' --testset='its_test' --steps=500000 --eval_step=5000
train network on OTS
dataset
python main.py --net='ffa' --crop --crop_size=240 --blocks=19 --gps=3 --bs=2 --lr=0.0001 --trainset='ots_train' --testset='ots_test' --steps=1000000 --eval_step=5000
Trained_models are available at baidudrive: https://pan.baidu.com/s/1-pgSXN6-NXLzmTp21L_qIg with code: 4gat
or google drive: https://drive.google.com/drive/folders/19_lSUPrpLDZl9AyewhHBsHidZEpTMIV5?usp=sharing
Put models in the net/trained_models/
folder.
Put your images in net/test_imgs/
test on white data
dataset
python test.py --task='drug' --test_imgs='test_imgs'
test on OTS
or ITS
dataset
python test.py --task='its or ots' --test_imgs='test_imgs'