Francois Rozet Piqa Versions Save

PyTorch Image Quality Assessement package

v1.3.0

1 year ago

πŸ’₯ Breaking news

PIQA 1.3.0 drops its custom complex module in favor of torch.complex, which is stable since PyTorch 1.12. Accordingly, the support for torch <= 1.11 has been dropped.

✨ What's new

  • New FrΓ©chet Inception Distance (FID) metric (8950f5e79ada4cb17688b05ec058a63c5acd4531)
  • All metrics now support PyTorch's tracing (d233ef892d3c33cda3dc1ccc374a7cdfce4199d5)
  • The documentation has been refreshed and moved to Read the Docs (d233ef892d3c33cda3dc1ccc374a7cdfce4199d5, d670de1e63eb036447d525bf2d5cc6a094a645ce)
  • New contributing guidelines (7ebd950f98c869842bc4bb3c1a1fd1030b387179)

πŸ› Bug fixes

  • Fix NaNs in LPIPS (#33) by @ilpoli

Full Changelog: https://github.com/francois-rozet/piqa/compare/v1.2.2...v1.3.0

v1.2.2

2 years ago

πŸ“ Documentation

The documentation has been refactored and is now generated using Sphinx and Furo. Check it out at francois-rozet.github.io/piqa/.

⚑️ Improvements

  • Replace torch.linalg.norm by l2_norm (48ec8c41f6207e02a317a9d30e504c0d19cd071d)
  • New function to disable debugging (ffc07e0e901ff2775c76becf618e9eba931fea55)

πŸ› Bug fixes

  • Fix RuntimeError while using conv1d for 2 or 3-d convolutions with PyTorch 1.11 (7a56439ca5b67df145650fa6688b8eb237a09ba6)

v1.1.7

2 years ago

⬆️ Dependencies

PIQA 1.1.7 requires the torch.fft module released with PyTorch 1.8.0.

✨ Metrics

  • VSI Visual Saliency-based Index (0125e904ff74c1339798a8b46b003d27184ff199)
  • FSIM Feature Similarity (0125e904ff74c1339798a8b46b003d27184ff199)

⚑️ Improvements

  • Make padding optional in SSIM (76415a95212c203225cd4eb9fbc8e437e38ebcd2)
  • Make downsampling optional in FSIM, GMSD, HaarPSI, MDSI and VSI (9fedf9f11b1e0a0a499ccc54fac933c22f0c86e3)

πŸ› Bug fixes

  • Fix JITting for utils.complex submodule (d098f4d00f183050267d6a55dcaf455e08d41405)

v1.1.3

3 years ago

🚸 Type assertions

Object-oriented components (PSNR, SSIM, ...) now use type assertions to raise meaningful error messages. See the "Assert" section in the README for more information.

♻️ Refactor

In this release, the API has been heavily redesigned and simplified.

  • The "user-friendly" functionals to compute the metrics were dropped in favor of object-oriented metrics (5994e349d4c140877e560b18c2a51307e61575fc)
  • Importing piqa now directly gives access to the object-oriented metrics (5994e349d4c140877e560b18c2a51307e61575fc)
v1.1.0 v1.1.3
>>> from piqa import ssim
>>> criterion = ssim.SSIM()
>>> criterion(x, y)
tensor(...)
>>> import piqa
>>> criterion = piqa.SSIM()
>>> criterion(x, y)
tensor(...)
  • The piqa.utils module was divided in three sub-modules (5994e349d4c140877e560b18c2a51307e61575fc)
    1. piqa.utils.functional regroups the convolution and kernel helpers
    2. piqa.utils.complex is an API to manipulate "factice" complex tensors
    3. piqa.utils.color handles the color-space conversions
  • JITing is now an option which can be enabled/disabled (f46707040e98236f12ebf6df7eb93fc54b4bf380)
  • Custom normalization functionals (tensor_norm & normalize_tensor) were dropped in favor of torch.linalg.norm (f7440076a27f8415dca1f067e3c6b49cd8924c2e)

v1.1.0

3 years ago

PIQA now has an official logo and a banner πŸŽ‰

⚑️ Improvements

  • Update core components to support PyTorch JIT (c8ac2c3c40c293a4e3a1aef52a3de1fcd47928fd)
  • Optimize Gaussian blur with separable convolutions (c8ac2c3c40c293a4e3a1aef52a3de1fcd47928fd)
  • Simplify some components (ba0733516d3542d8cebbdf8ecfb178ce440127bd, 0b5a85ed5fbf193b2c3fbcf7a295d88614d86585, 785b449c745a78842dbf9da22cb03654ab034c75)

πŸ› Bug fixes

  • Fix MDSI automatic differentiation (f73b13c73fdd01caf319f5042acfcfb9aa36c0fa, c6d924d68af9d914d3a3cd26bbbd114496ad402c)

πŸ“ Documentation

  • Add table of available metrics in README
  • Refresh the full documentation (types, shapes, etc.)
  • Add mathematical definitions in docstrings

⬆️ Dependencies

PIQA 1.1.0 requires PyTorch 1.7.0 or above.

v1.0.7

3 years ago

✨ Metrics

  • MS-GMSD Multi-Scale Gradient Magnitude Similarity Deviation (2364fbc25389076a813d884709350cf5a1c221d3)
  • HaarPSI Haar Perceptual Similarity Index (3227b269a4de91619c9c83a3d8a1d20334ac6d39)

⚑️ Improvements

  • Buffer convolution kernels in object-oriented metrics (e6179aeaa4d5a917079dbd9b008151b087007145)

πŸ› Bug Fixes

  • Fix inaccurate lpips.LPIPS results (43ae9d763bb073f6c127950d9c42da3b57de4378)
  • Fix RuntimeError in mdsi.mdsi on CUDA (0e890000c3cdf8da7a892ff962bc9f00097c0bdc)

v1.0.5

3 years ago

πŸš‘ Critical fixes

  • Pin correct dependencies (3860c5c445d79f71b8af1ad93869673aef4afec9)
  • Fix FileNotFoundError when loading lpips.LPIPS weights (200460a180b7eb416544a3e33d1d756993ab5213)
  • Fix dimension mismatch in tv.tv (fe983b6a2b23b8b63db3469cf9d2002821a70934)

βœ… Unit tests

Examples were added in the docstrings for a better user experience. They also acts as unit tests thanks to the doctest and unittest libraries.

v1.0.0

3 years ago

πŸ“¦ Package

  • The package is renamed to PyTorch Image Quality Assessment (PIQA)
  • PIQA is deployed on PyPi

✨ Metrics

  • GMSD Gradient Magnitude Similarity Deviation (8c1e1dcb9e330a564e3ef750b44394dfbbd3c6f0)
  • MDSI Mean Deviation Similarity Index (e79b340d9c4a57e6a66cd2e3b6b2e63d5ab3d974)

⚑️ Improvements

  • Use cascading named arguments (**kwargs) to simplify function signatures (3d1fd4c1acbc91acec0f65c4107adbb0f8b41f5a)
  • Replace duplicated reduction if elif else statement by a function (c9719b2f284f67fe73f33f7e4be4d543371347c3)
  • ...

πŸ“ Documentation

  • Update code style to be compliant with the Google Python Style
  • Update docstrings for consistency with PyTorch docs

v0.0.2-beta

3 years ago

First release of the Simple PyTorch Image Quality (SPIQ) package πŸŽ‰

✨ Metrics

  • PSNR Peak Signal-to-Noise Ratio (d79e5f32981350475c6446fcba9610fd631ecc07)
  • SSIM Structural Similarity (c1addd271684dbd98af339a4e020932fb92e6026)
  • MS-SSIM Multi-Scale Structural Similarity (be1821f23c0c81a6ee937dff125c5025042313f7)
  • TV Total Variation (2be72f6bd848eada823ae6f210fea1f06967111d)
  • LPIPS Learned Perceptual Image Patch Similarity (6a1703171fe8c296c597c937bc4e986a971ff6df)

πŸ“ Documentation

  • Installation instructions and snippet for getting started in README
  • Documentation fully contained in the components' docstrings
  • Documentation website generated automatically from the docstrings using pdoc

πŸ“„ License

This package is under the MIT License.