Similarity

class deepinv.transform.projective.Similarity(n_trans: int = 1, theta_max: float = 180.0, theta_z_max: float = 180.0, zoom_factor_min: float = 0.5, shift_max: float = 1.0, skew_max: float = 50.0, x_stretch_factor_min: float = 0.5, y_stretch_factor_min: float = 0.5, padding: str = 'reflection', interpolation: str = 'bilinear', device: str = 'cpu')[source]

Bases: Homography

Random 2D similarity image transformations using projective transformation framework.

Special case of homography which corresponds to the actions of the similarity subgroup S(2). Similarity transformations include translations, rotations, reflections and uniform scale. These transformations are parametrised using geometric parameters in the pinhole camera model. See deepinv.transform.Homography for more details.

Generates n_trans random transformations concatenated along the batch dimension.


Example:

Apply a random similarity transformation:

>>> from deepinv.transform.projective import Similarity
>>> x = torch.randn(1, 3, 16, 16) # Random 16x16 image
>>> transform = Similarity(n_trans = 1)
>>> x_T = transform(x)
Parameters:
  • theta_z_max (float) – Maximum 2D z-rotation angle in degrees, defaults to 180.

  • zoom_factor_min (float) – Minimum zoom factor (up to 1), defaults to 0.5.

  • shift_max (float) – Maximum shift percentage, where 1 is full shift, defaults to 1.

  • padding (str) – kornia padding mode, defaults to “reflection”

  • interpolation (str) – kornia or PIL interpolation mode, defaults to “bilinear”

  • device (str) – torch device, defaults to “cpu”.

  • n_trans – number of transformed versions generated per input image, defaults to 1.

  • rng (torch.Generator) – random number generator, if None, use torch.Generator(), defaults to None

Examples using Similarity:

Image transformations for Equivariant Imaging

Image transformations for Equivariant Imaging