Kornia is a differentiable computer vision library for PyTorch.
It consists of a set of routines and differentiable modules to solve generic computer vision problems. At its core, the package uses PyTorch as its main backend both for efficiency and to take advantage of the reverse-mode auto-differentiation to define and compute the gradient of complex functions.
Inspired by existing packages, this library is composed by a subset of packages containing operators that can be inserted within neural networks to train models to perform image transformations, epipolar geometry, depth estimation, and low-level image processing such as filtering and edge detection that operate directly on tensors.
At a granular level, Kornia is a library that consists of the following components:
a Differentiable Computer Vision library, with strong GPU support
a module to perform data augmentation in the GPU
a set of routines to perform color space conversions
a compilation of user contrib and experimental operators
a module to perform normalization and intensity transformation
a module to perform feature detection
a module to perform image filtering and edge detection
a geometric computer vision library to perform image transformations, 3D linear algebra and conversions using different camera models
a stack of loss functions to solve different vision tasks
a module to perform morphological operations
image to tensor utilities and metrics for vision problems