Kornia 0.9: дифференцируемое компьютерное зрение для PyTorch
Kornia — открытая библиотека дифференцируемого компьютерного зрения для PyTorch с 1200+ операторами, GPU-ускорением и поддержкой torch.compile.
Kornia 0.9: эталонная реализация дифференцируемого компьютерного зрения для PyTorch
Kornia — дифференцируемая (differentiable) библиотека компьютерного зрения, которая предоставляет богатый набор алгоритмов обработки изображений и геометрического зрения. Построенная поверх PyTorch, она органично встраивается в существующие AI-пайплайны, а в эталонных бенчмарках версии 0.9.0 на RTX 4090 (batch 32) многие фильтры, варпы и метрики изображений работают в 10–70 раз быстрее, чем аналогичный CPU-код на OpenCV или scikit-image. Это делает Kornia одним из ключевых инструментов для любого, кто строит системы Spatial AI на базе PyTorch.
Что нового в версии 0.9.0
Релиз v0.9.0 принёс поддержку fp16 и bf16 в варпах и геометрических операциях, 16-кратное ускорение Gaussian blur на CPU Apple Silicon и 2000-кратное ускорение CLAHE на MPS. Помимо этого, в 10 раз снизилось количество host-синхронизаций в аугментациях, а морфологические операции стали в 4 раза быстрее.
Среди новых возможностей:
- Мультиспектральный
RandomGrayscaleдля N-канальных изображений и новыйPatchMix-аугментатор. ColorJitterс детерминированным порядком операций и поддержкойfullgraphрежима.
pip install kornia
# или последняя версия с GitHub:
pip install git+https://github.com/kornia/kornia
1200+ операторов: чем Kornia отличается от torchvision
Kornia не конкурирует с torchvision напрямую — она закрывает принципиально другие задачи.
| Возможность | Kornia | torchvision |
|---|---|---|
| Камерные модели и эпиполярная геометрия | ✅ | ❌ |
| Батчевые параметры на операцию (разные sigma/angle на каждый элемент) | ✅ | ❌ |
| RANSAC на GPU (однородная/фундаментальная/существенная матрицы) | ✅ | ❌ |
| LoFTR, LightGlue, DeDoDe, XFeat | ✅ | ❌ |
| Группы Ли (So3, Se3) с градиентами | ✅ | ❌ |
| Базовые аугментации (resize, flip, crop, jitter) | ✅ | ✅ |
| torch.compile поддержка | ✅ (частично) | ✅ |
Kornia становится эталонной реализацией и исполняемой спецификацией для дифференцируемого компьютерного зрения в экосистеме PyTorch.
Ключевые модули
graph TD
K[Kornia] --> F[kornia.filters\nГаусс, Собель, Медиана]
K --> G[kornia.geometry\\nАффин, Гомография, PnP]
K --> A[kornia.augmentation\nAugmentationSequential]
K --> FE[kornia.feature\nSIFT, LoFTR, LightGlue]
K --> C[kornia.color\\nRGB, HSV, Lab, Bayer]
K --> M[kornia.morphology\nЭрозия, Дилатация]
K --> L[kornia.losses\\nSSIM, PSNR, Dice]
Геометрия и 3D
Kornia покрывает весь стек геометрических задач: от базовых аффинных преобразований до батчевых минимальных решателей. Функция find_fundamental(x1, x2, method="7POINT") принимает батч из 7 точечных пар (B, 7, 2) и возвращает все вещественные решения в тензоре (B, 3, 3, 3). Поддерживаются 8-точечный метод, 5-точечный существенной матрицы (find_essential), DLT-гомография и PnP (solve_pnp_dlt).
Локальные признаки на GPU
Библиотека включает готовые модели: Kornia активно интегрирует лёгкие AI-модели прямо в экосистему. Доступны SIFT и HardNet, DISK, ALIKED, XFeat, DeDoDe, LoFTR и LightGlue — с mutual-nearest-neighbour и ratio-test матчерами.
Аугментации с аннотациями
AugmentationSequential применяет одно сэмплированное преобразование одновременно к изображениям, маскам, боксам и ключевым точкам, а затем может его инвертировать — незаменимо для задач детекции и сегментации.
from kornia.augmentation import AugmentationSequential, RandomAffine, RandomBrightness
pipeline = AugmentationSequential(\n RandomAffine(degrees=30, p=0.5),
RandomBrightness(brightness=(0.8, 1.2), p=0.5),
data_keys=["input", "mask", "bbox", "keypoints"]
)
out = pipeline(image, mask, bbox, keypoints)
Производительность и экспорт
В бенчмарках версии 0.9.0 на RTX 4090 при batch size 32 многие фильтры и операции сопоставления признаков работают в 10–70 раз быстрее, чем CPU-реализации OpenCV, а torch.compile доводит часть из них до 100-кратного ускорения.
На операциях, где Kornia пересекается с torchvision на одном GPU, eager-режим Kornia медленнее; скомпилированная Kornia обгоняет torchvision по hue, color jitter и Gaussian blur, но уступает на flip, crop и brightness.
Более 1000 операторов экспортируются в ONNX, что позволяет деплоить модели на production-инференс без изменения кода.
Значение для отрасли
Kornia распространяется под лицензией Apache 2.0, что делает её свободной для коммерческого использования. Библиотека преодолела отметку в 2 миллиона загрузок в месяц, что свидетельствует о широком принятии в исследовательском и промышленном сообществах.
С вектором на становление «исполняемой спецификации» PyTorch-экосистемы для дифференцируемого CV, Kornia занимает нишу между низкоуровневым OpenCV и высокоуровневыми фреймворками вроде Detectron2 — обеспечивая математически строгие, батчевые, GPU-ускоренные примитивы с полной поддержкой autograd.