kornia/kornia-rs

🦀 Low-level 3D Computer Vision library in Rust

What it solves

Kornia-rs は、生の画像データと機械学習モデルの間のギャップを埋める、高性能で低レベルなコンピュータビジョンライブラリを提供します。Python におけるホストからデバイスへのコピーや GIL のボトルネックを排除し、CPU または NVIDIA GPU のいずれでもシームレスに実行できるリアルタイム画像処理パイプラインを可能にします。

How it works

メモリとスレッドの安全性のために Rust で構築されたこのライブラリは、データの所在に基づいて操作を自動的にディスパッチする単一の API を使用します。CPU 加速には SIMD (NEON/AVX2) を、GPU 加速にはカスタム CUDA カーネルを使用します。ML 統合のために、DLPack と CUDA Array Interface を使用して、データをコピーすることなく PyTorch や TensorRT にテンソルを引き渡します。特化型の Preprocessor は、リサイズ、正規化、および形式変換(例:NV12 から CHW)などの複数のステップを単一の CUDA カーネルに融合させ、推論パイプラインの効率を最大化します。

Who it’s for

リアルタイムのコンピュータビジョンアプリケーションを構築している開発者、高速なカメラからモデルへのパイプラインを必要とするロボット工学エンジニア、および 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) の完全サポート。