Kornia — это библиотека для компьютерного зрения, написанная на PyTorch. Kornia выступает аналогом стандартной библиотеки для задач компьютерного зрения OpenCV. В отличие от традиционных фреймворков для CV задач, Kornia поддерживает вычисления на GPU. Это позволяет внедрять библиотеку в пайплайн обучения нейросети.
Библиотека состоит из набора рутин и дифференцируемых модулей, которые позволяют решать базовые проблемы из компьютерного зрения. В своей основе библиотека использует PyTorch в качестве бэкенда. Это поддерживает эффективность вычислений и позволяет использовать автоматическое дифференцирование, чтобы считать градиенты сложных функций.
Если сравнивать Kornia с схожими фреймворками, только в Kornia и tensorflow.image большинство функционала реализовано с поддержкой GPU с разделением данных на батчи, автоматической дифференциацией и возможностью распределенных вычислений.
Обзор структуры Kornia
Библиотека берет за основу OpenCV. Она состоит из сабсета пакетов, которые содержат операторы. Операторы, в свою очередь, могут быть внедрены внутрь нейросети. Это позволит широкомасштабно трансформировать изображения, оценивать эпиполярную геометрию и глубину. Кроме того, библиотека позволяет низкоуровнево обрабатывать изображения: совершать фильтрацию или распознавать границы. Все операции происходят напрямую с тензорами.
Kornia состоит из следующих компонентов:
- kornia.color: набор функций для цветокоррекции;
- kornia.contrib: экспериментальный функционал;
- kornia.feature: модуль для распознавания признаков;
- kornia.filters: модуль для фильтрации изображения и распознавания границ;
- kornia.geometry: библиотека для геометрических преобразований изображений;
- kornia.losses: набор функций потерь, который покрывают ряд задач компьютерного зрения;
- kornia.utils: функции для преобразования изображения в тензор и набор метрик для проблем компьютерного зрения
Библиотеку разработали, чтобы помочь пользователям PyTorch, которые занимаются CV задачами. Kornia основывается на готовых опенсорсных решениях, как PIL, skimage, torchvision, tf.image, и вдохновляется OpenCV.