Compute frecet wavelet distances
Project description
Lokesh Veeramacheneni1, Moritz Wolter1, Hilde Kuehne1,2, and Juergen Gall1
[Archive] [Project Page]
Keywords: Frechet Distance, Wavelet Packet Transform, Frechet Inception Distance, Diffusion, GAN, ImageNet, Image generation metrics.
Abstract: Modern metrics for generative learning like Fréchet Inception Distance (FID) demonstrate impressive performance. However, they suffer from various shortcomings, like a bias towards specific generators and datasets. To address this problem, we propose the Fréchet Wavelet Distance (FWD) as a domain-agnostic metric based on Wavelet Packet Transform (\(W_p\)). FWD provides a sight across a broad spectrum of frequencies in images with a high resolution, along with preserving both spatial and textural aspects. Specifically, we use \(W_p\) to project generated and dataset images to packet coefficient space. Further, we compute Fréchet distance with the resultant coefficients to evaluate the quality of a generator. This metric is general-purpose and dataset-domain agnostic, as it does not rely on any pre-trained network while being more interpretable because of frequency band transparency. We conclude with an extensive evaluation of a wide variety of generators across various datasets that the proposed FWD is able to generalize and improve robustness to domain shift and various corruptions compared to other metrics.
Installation
Clone the repository using
git clone git@github.com:Uni-Bonn-Attention-Research/frechet_wavelet_distance.git
cd ./frechet_wavelet_distance
pip install .
Requirements
All the requirements are specified in requirements.txt file.
Usage
python -m fwd <path to dataset> <path to generated images>
Here are the other arguments and defaults used.
python -m fwd --help
usage: fwd.py [-h] [--batch-size BATCH_SIZE] [--num-processes NUM_PROCESSES] [--save-packets] [--wavelet WAVELET] [--max_level MAX_LEVEL] [--log_scale] path path
positional arguments:
path Path to the generated images or path to .npz statistics file.
options:
-h, --help show this help message and exit
--batch-size Batch size for wavelet packet transform. (default: 128)
--num-processes Number of multiprocess. (default: None)
--save-packets Save the packets as npz file. (default: False)
--wavelet Choice of wavelet. (default: sym5)
--max_level wavelet decomposition level (default: 4)
--log_scale Use log scaling for wavelets. (default: False)
We conduct all the experiments with Haar wavelet with transformation/decomposition level of 4 for 256x256 image. In future, we plan to release the jax-version of this code.
Citation
If you use this work, please cite using following bibtex entry
@misc{veeramacheneni2024fwd,
title={Fr\'echet Wavelet Distance: A Domain-Agnostic Metric for Image Generation},
author={Lokesh Veeramacheneni and Moritz Wolter and Hildegard Kuehne and Juergen Gall},
year={2024},
eprint={2312.15289},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2312.15289},
}
Acknowledgments
The code is built with inspiration from Pytorch-FID. We use PyTorch Wavelet Toolbox for Wavelet Packet Transform implementation. We recommend to have a look at these repositories.
Testing
The tests folder contains tests to conduct independent verification of FWD. Github workflow executes all these tests. To run tests on your local system install nox, as well as this package via pip install ., and run
nox -s test
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pytorchfwd-0.0.2.tar.gz
.
File metadata
- Download URL: pytorchfwd-0.0.2.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24adad89f8b824c324c622d971a1fb9afd5031e7fd772103ae588f5cd0947850 |
|
MD5 | 76fae6e7174c4d0851a4d07280f1506e |
|
BLAKE2b-256 | a4f0328f6d004011f9bcc3de6bbeca03befe37480459709d267ab7055a08862d |
File details
Details for the file pytorchfwd-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: pytorchfwd-0.0.2-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0476eeab642fc79d432a67df738ea22eedc9f242c0ca5f3b6afa317223323228 |
|
MD5 | 691182a32f057fe75ae013d3b219d346 |
|
BLAKE2b-256 | a4ac07f1c604fde57df3534479fea1c1e7eddba86e28ffc7b25bd37afb4b095a |