Kornia
🐍 Geometric Computer Vision Library for Spatial AI
Install / Use
/learn @kornia/KorniaREADME
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>
</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.
📢 Announcement: Kornia is shifting towards end-to-end vision models. We are focusing on integrating state-of-the-art Vision Language Models (VLM) and Vision Language Agents (VLA) to provide comprehensive end-to-end vision solutions.
Key Components
- 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.
- 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.
- 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.
| Category | Methods/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> | | 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>Half-Precision Support
| Module | float16 | bfloat16 | Notes |
|--------|:-------:|:--------:|-------|
| kornia.color | ⚠️ | ⚠️ | Most conversions work for both; FFT-based ops may fail |
| kornia.filters | ⚠️ | ⚠️ | Basic filters work; FFT-based ops may fail on CUDA |
| kornia.enhance | ⚠️ | ⚠️ | Histogram eq / gamma / ZCA work (linalg ops use cast helpers) |
| kornia.morphology | ✅ | ✅ | Pure conv/pool ops; no dtype restrictions |
| kornia.augmentation | ⚠️ | ⚠️ | Most ops work; precision-sensitive transforms may be inaccurate |
| kornia.geometry.transform | ⚠️ | ⚠️ | Affine/warp/resize work via cast helpers; thin-plate spline may fail |
| kornia.geometry.camera | ⚠️ | ⚠️ | Pinhole model and most camera ops work; StereoCamera accepts both |
| kornia.geometry.calibration | ❌ | ❌ | Explicitly accepts float32/float64 only (PnP solver) |
| kornia.geometry.epipolar | ⚠️ | ⚠️ | SVD/inverse use cast helpers; both dtypes work |
| kornia.geometry.homography | ⚠️ | ⚠️ | Uses _torch_svd_cast — both dtypes work via casting |
| kornia.geometry.liegroup | ⚠️ | ⚠️ | Most ops work via cast helpers; some linalg paths may fail |
| kornia.geometry.solvers | ⚠️ | ⚠️ | Uses _torch_solve_cast — both dtypes work via casting |
| kornia.geometry.subpix | ⚠️ | ⚠️ | Soft-argmax works; precision-sensitive ops may be inaccurate |
| kornia.losses | ⚠️ | ⚠️ | Photometric losses work; linalg-based losses may not |
| kornia.feature | ⚠️ | ⚠️ | Detectors/descriptors work; matching uses manual cdist fallback |
| kornia.metrics | ⚠️ | ⚠️ | Pixel-level metrics work; linalg-based metrics may not |
| kornia.models | ⚠️ | ⚠️ | Conv-based models work; attention-based models may have dtype mismatches |
✅ Supported ⚠️ Partial ❌ Not supported
Test results (commit 6131e98, 2026-03-21):
| Run | Passed | Failed | Skipped | Pass% | |-----|-------:|-------:|--------:|------:| | CPU float32 (baseline) | 7647 | 3 | 3269 | 99.9% | | CUDA float32 (baseline) | 7634 | 3 | 3280 | 99.9% | | CPU float16 | 6866 | 747 | 3306 | 90.1% | | CPU bfloat16 | 6838 | 812 | 3269 | **
