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 自动根据数据所在位置调度操作。它利用 SIMD (NEON/AVX2) 进行 CPU 加速,并使用自定义 CUDA 内核进行 GPU 加速。对于 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)。