Give AlbumentationsX a star on GitHub — it powers this leaderboard

Star on GitHub

kornia

Open Source Differentiable Computer Vision Library for PyTorch

Rank: #2356Downloads: 2,695,675 (30 days)

Description

<div align="center"> <p align="center"> <img width="55%" src="https://github.com/kornia/data/raw/main/kornia_banner_pixie.png" /> </p>

English | 简体中文

<!-- prettier-ignore -->

<a href="https://kornia.readthedocs.io">Docs</a><a href="https://colab.sandbox.google.com/github/kornia/tutorials/blob/master/nbs/hello_world_tutorial.ipynb">Try it Now</a><a href="https://kornia.github.io/tutorials/">Tutorials</a><a href="https://github.com/kornia/kornia-examples">Examples</a><a href="https://kornia.github.io//kornia-blog">Blog</a><a href="https://discord.gg/HfnywwpBnD">Community</a>

PyPI version Downloads star Discord Twitter License

</p> </div>

Kornia is a differentiable computer vision library that provides a rich set of differentiable image processing and geometric vision algorithms. Built on top of PyTorch, Kornia integrates seamlessly into existing AI workflows, allowing you to leverage powerful batch transformations, auto-differentiation and GPU acceleration. Whether you’re working on image transformations, augmentations, or AI-driven image processing, Kornia equips you with the tools you need to bring your ideas to life.

Key Components

  1. Differentiable Image Processing<br> Kornia provides a comprehensive suite of image processing operators, all differentiable and ready to integrate into deep learning pipelines.
    • Filters: Gaussian, Sobel, Median, Box Blur, etc.
    • Transformations: Affine, Homography, Perspective, etc.
    • Enhancements: Histogram Equalization, CLAHE, Gamma Correction, etc.
    • Edge Detection: Canny, Laplacian, Sobel, etc.
    • ... check our docs for more.
  2. Advanced Augmentations<br> Perform powerful data augmentation with Kornia’s built-in functions, ideal for training AI models with complex augmentation pipelines.
    • Augmentation Pipeline: AugmentationSequential, PatchSequential, VideoSequential, etc.
    • Automatic Augmentation: AutoAugment, RandAugment, TrivialAugment.
  3. AI Models<br> Leverage pre-trained AI models optimized for a variety of vision tasks, all within the Kornia ecosystem.
    • Face Detection: YuNet
    • Feature Matching: LoFTR, LightGlue
    • Feature Descriptor: DISK, DeDoDe, SOLD2
    • Segmentation: SAM
    • Classification: MobileViT, VisionTransformer.
<details> <summary>See here for some of the methods that we support! (>500 ops in total !)</summary>
CategoryMethods/Models
Image Processing- Color conversions (RGB, Grayscale, HSV, etc.)<br>- Geometric transformations (Affine, Homography, Resizing, etc.)<br>- Filtering (Gaussian blur, Median blur, etc.)<br>- Edge detection (Sobel, Canny, etc.)<br>- Morphological operations (Erosion, Dilation, etc.)
Augmentation- Random cropping, Erasing<br> - Random geometric transformations (Affine, flipping, Fish Eye, Perspecive, Thin plate spline, Elastic)<br>- Random noises (Gaussian, Median, Motion, Box, Rain, Snow, Salt and Pepper)<br>- Random color jittering (Contrast, Brightness, CLAHE, Equalize, Gamma, Hue, Invert, JPEG, Plasma, Posterize, Saturation, Sharpness, Solarize)<br> - Random MixUp, CutMix, Mosaic, Transplantation, etc.
Feature Detection- Detector (Harris, GFTT, Hessian, DoG, KeyNet, DISK and DeDoDe)<br> - Descriptor (SIFT, HardNet, TFeat, HyNet, SOSNet, and LAFDescriptor)<br>- Matching (nearest neighbor, mutual nearest neighbor, geometrically aware matching, AdaLAM LightGlue, and LoFTR)
Geometry- Camera models and calibration<br>- Stereo vision (epipolar geometry, disparity, etc.)<br>- Homography estimation<br>- Depth estimation from disparity<br>- 3D transformations
Deep Learning Layers- Custom convolution layers<br>- Recurrent layers for vision tasks<br>- Loss functions (e.g., SSIM, PSNR, etc.)<br>- Vision-specific optimizers
Photometric Functions- Photometric loss functions<br>- Photometric augmentations
Filtering- Bilateral filtering<br>- DexiNed<br>- Dissolving<br>- Guided Blur<br>- Laplacian<br>- Gaussian<br>- Non-local means<br>- Sobel<br>- Unsharp masking
Color- Color space conversions<br>- Brightness/contrast adjustment<br>- Gamma correction
Stereo Vision- Disparity estimation<br>- Depth estimation<br>- Rectification
Image Registration- Affine and homography-based registration<br>- Image alignment using feature matching
Pose Estimation- Essential and Fundamental matrix estimation<br>- PnP problem solvers<br>- Pose refinement
Optical Flow- Farneback optical flow<br>- Dense optical flow<br>- Sparse optical flow
3D Vision- Depth estimation<br>- Point cloud operations<br>- Nerf<br>
Image Denoising- Gaussian noise removal<br>- Poisson noise removal
Edge Detection- Sobel operator<br>- Canny edge detection
Transformations- Rotation<br>- Translation<br>- Scaling<br>- Shearing
Loss Functions- SSIM (Structural Similarity Index Measure)<br>- PSNR (Peak Signal-to-Noise Ratio)<br>- Cauchy<br>- Charbonnier<br>- Depth Smooth<br>- Dice<br>- Hausdorff<br>- Tversky<br>- Welsch<br>
Morphological Operations- Dilation<br>- Erosion<br>- Opening<br>- Closing
</details>

Sponsorship

Kornia is an open-source project that is developed and maintained by volunteers. Whether you're using it for research or commercial purposes, consider sponsoring or collaborating with us. Your support will help ensure Kornia's growth and ongoing innovation. Reach out to us today and be a part of shaping the future of this exciting initiative!

<a href="https://opencollective.com/kornia/donate" target="_blank"> <img src="https://opencollective.com/webpack/donate/button@2x.png?color=blue" width=300 /> </a>

Installation

PyPI python pytorch

From pip

pip install kornia
<details> <summary>Other installation options</summary>

From source with editable mode

pip install -e .

For development with UV (Recommended)

For development, Kornia uses uv for fast Python package management and virtual environment creation. The project includes a uv.lock file for reproducible dependency management.

./setup_dev_env.sh

This will set up a complete development environment with all dependencies using the lock file for reproducibility. For more details on dependency management and lock file usage, see CONTRIBUTING.md.

From Github url (latest version)

pip install git+https://github.com/kornia/kornia
</details>

Quick Start

Kornia is not just another computer vision library — it's your gateway to effortless Computer Vision and AI.

<details> <summary>Get started with Kornia image transformation and augmentation!</summary>
import numpy as np
import kornia_rs as kr

from kornia.augmentation import AugmentationSequential, RandomAffine, RandomBrightness
from kornia.filters import StableDiffusionDissolving

# Load and prepare your image
img: np.ndarray = kr.read_image_any("img.jpeg")
img = kr.resize(img, (256, 256), interpolation="bilinear")

# alternatively, load image with PIL
# img = Image.open("img.jpeg").resize((256, 256))
# img = np.array(img)

img = np.stack([img] * 2)  # batch images

# Define an augmentation pipeline
augmentation_pipeline = Augm