deepinv.transform#

This module contains different transforms which can be used for data augmentation or together with the equivariant losses. Please refer to the user guide for more information.

Base class#

User Guide: refer to Transforms for more information.

deepinv.transform.Transform

Base class for image transforms.

Simple transforms#

deepinv.transform.Rotate

2D Rotations.

deepinv.transform.Shift

Fast integer 2D translations.

deepinv.transform.Scale

2D Scaling.

deepinv.transform.Reflect

Reflect (flip) in random multiple axes.

deepinv.transform.Identity

Identity transform i.e. trivial group.

Advanced transforms#

deepinv.transform.Homography

Random projective transformations (homographies).

deepinv.transform.projective.Euclidean

Random Euclidean image transformations using projective transformation framework.

deepinv.transform.projective.Similarity

Random 2D similarity image transformations using projective transformation framework.

deepinv.transform.projective.Affine

Random affine image transformations using projective transformation framework.

deepinv.transform.projective.PanTiltRotate

Random 3D camera rotation image transformations using projective transformation framework.

deepinv.transform.CPABDiffeomorphism

Continuous Piecewise-Affine-based Diffeomorphism.

Video transforms#

While all geometric transforms accept video input, the following transforms work specifically in the time dimension. These can be easily compounded with geometric transformations using the * operation.

deepinv.transform.ShiftTime

Shift a video in time with reflective padding.

Non-geometric transforms#

Non-geometric transforms are often used for data augmentation. Note that not all of these are necessarily invertible or form groups.

deepinv.transform.RandomNoise

Random noise transform.

deepinv.transform.RandomPhaseError

Random phase error transform.