zea.models.lpips

LPIPS model for perceptual similarity.

To try this model, simply load one of the available presets:

>>> from zea.models.lpips import LPIPS

>>> model = LPIPS.from_preset("lpips")

Important

This is a zea implementation of the model. For the original code, see here.

Reference

R. Zhang, P. Isola, A. A. Efros, E. Shechtman, and O. Wang, “The Unreasonable Effectiveness of Deep Features as a Perceptual Metric,” in IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pp. 586–595, 2018. doi.org/10.1109/CVPR.2018.00068

See also

A tutorial notebook where this model is used: LPIPS: perceptual similarity for ultrasound images.

Functions

linear_model()

Get the linear head model for LPIPS.

perceptual_model()

Get the VGG16 model for perceptual loss.

Classes

LPIPS(*args, **kwargs)

Learned Perceptual Image Patch Similarity (LPIPS) metric.

class zea.models.lpips.LPIPS(*args, **kwargs)[source]

Bases: BaseModel

Learned Perceptual Image Patch Similarity (LPIPS) metric.

Initialize the LPIPS model.

Exported weights using:

https://github.com/moono/lpips-tf2.x/blob/master/example_export_script/convert_to_tensorflow.py

Parameters:
  • net_type (str, optional) – Type of network to use. Defaults to “vgg”.

  • disable_checks (bool, optional) – Disable input checks. This is useful to allow tensorflow graph mode. Defaults to False.

call(inputs)[source]

Compute the LPIPS metric.

Parameters:

inputs (list) – List of two input images of shape [B, H, W, C] or [H, W, C]. Images should be in the range [-1, 1].

Returns:

LPIPS distance between the two images

of shape [B, ] or scalar if no batch dimension.

Return type:

Tensor

custom_load_weights(preset, **kwargs)[source]

Load the weights for the VGG and linear models.

static preprocess_input(image)[source]

Preprocess the input images

Parameters:

image (Tensor) – Input image tensor of shape [H, W, C] with optional batch dimension and values in the range [-1, 1].

Returns:

Preprocessed image tensor of shape [B, H, W, C]

and standardized values for VGG model.

Return type:

Tensor

zea.models.lpips.linear_model()[source]

Get the linear head model for LPIPS.

zea.models.lpips.perceptual_model()[source]

Get the VGG16 model for perceptual loss.