kornia/kornia-rs

🦀 Low-level 3D Computer Vision library in Rust

What it solves

Kornia-rs는 원시 이미지 데이터와 머신러닝 모델 사이의 간극을 메워주는 고성능, 저수준 컴퓨터 비전 라이브러리를 제공합니다. Python의 host-to-device 복사 및 GIL 병목 현상으로 인한 오버헤드를 제거하여, CPU 또는 NVIDIA GPU에서 원활하게 실행될 수 있는 실시간 이미지 처리 파이프라인을 가능하게 합니다.

How it works

메모리 및 스레드 안전성을 위해 Rust로 구축된 이 라이브러리는 데이터가 위치한 곳에 따라 작업을 자동으로 분산하는 단일 API를 사용합니다. CPU 가속을 위해 SIMD (NEON/AVX2)를 활용하고, GPU 가속을 위해 커스텀 CUDA 커널을 사용합니다. ML 통합을 위해 DLPack 및 CUDA Array Interface를 사용하여 데이터 복사 없이 텐서를 PyTorch 및 TensorRT로 전달합니다. 특화된 Preprocessor는 크기 조정, 정규화 및 형식 변환(예: NV12 to CHW)과 같은 여러 단계를 하나의 CUDA 커널로 융합하여 추론 파이프라인의 효율성을 극대화합니다.

Who it’s for

실시간 컴퓨터 비전 애플리케이션을 구축하는 개발자, 빠른 카메라-to-모델 파이프라인이 필요한 로보틱스 엔지니어, 그리고 Python 바인딩과 함께 Rust 수준의 성능을 원하는 ML 연구원.

Highlights

  • Zero-copy interop: DLPack을 통한 PyTorch 및 TensorRT로의 직접 전달.
  • Unified API: 별도의 타입이 필요하지 않은 CPU 및 GPU 공통 연산자.
  • Real-time optimized: 카메라 프레임 전처리를 위한 융합된 CUDA 커널.
  • Broad format support: AVIF, OpenEXR, PNG-16을 포함한 다양한 이미지 형식에 대한 네이티브 지원.
  • Python bindings: PyO3를 통한 free-threaded Python (no GIL)의 완전한 지원.