kornia

GitHub
11.2k 1.2k 简单 3 次阅读 今天Apache-2.0其他开发框架图像
AI 解读 由 AI 自动生成,仅供参考

Kornia 是一个基于 PyTorch 的可微计算机视觉库,专注于图像处理和几何视觉算法。它为开发者提供了丰富的工具,用于实现图像变换、增强、特征匹配、分割等任务,并支持自动微分和 GPU 加速,方便集成到深度学习流程中。Kornia 解决了传统图像处理与现代 AI 模型之间难以无缝衔接的问题,尤其适合需要构建端到端视觉系统的开发者和研究人员。其内置多种预训练模型,如人脸检测、特征匹配和图像分割模型,降低了开发门槛。Kornia 技术亮点包括大量可微操作和对复杂数据增强的支持,适用于希望提升视觉算法性能的 AI 工程师和科研人员。

使用场景

某自动驾驶公司正在开发一套基于视觉的车道线检测系统,需要对摄像头采集的图像进行实时处理和分析,以识别道路边界并辅助车辆导航。

没有 kornia 时

  • 需要手动实现多种图像处理算法,如边缘检测、透视变换和颜色空间转换,开发周期长且容易出错
  • 数据增强依赖第三方库,与现有 PyTorch 流程不兼容,导致训练效率低下
  • 图像变换操作难以实现批量处理,影响模型推理速度
  • 缺乏统一的几何视觉工具集,代码重复度高,维护成本大

使用 kornia 后

  • 直接调用内置的 Canny 边缘检测和透视变换函数,快速实现图像预处理流程
  • 利用 Kornia 的数据增强模块,无缝集成到 PyTorch 训练流程中,提升数据多样性
  • 支持 GPU 加速的批量图像变换,显著提高推理速度
  • 统一的 API 设计减少代码冗余,提升开发效率和可维护性

kornia 通过提供一套完整、高效的视觉处理工具链,大幅提升了自动驾驶视觉系统的开发效率和性能表现。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

需要 NVIDIA GPU,显存 8GB+,CUDA 11.7+

内存

16GB+

依赖
notes建议使用 conda 或 pixi 管理环境,首次运行需下载约 5GB 模型文件
python3.8+
torch>=2.0
transformers>=4.30
accelerate
numpy
Pillow
scikit-learn
matplotlib
tqdm
pyyaml
opencv-python
kornia hero image

快速开始


英语 | 简体中文

文档立即尝试教程示例博客社区

PyPI版本 下载量 星标 Discord Twitter 许可证

Kornia 是一个可微分的计算机视觉库,提供丰富的可微图像处理和几何视觉算法。Kornia 构建在 PyTorch 之上,能够无缝集成到现有的 AI 工作流中,使您能够充分利用强大的 批量变换, 自动微分GPU 加速。无论您是在进行图像变换、数据增强,还是开发基于 AI 的图像处理应用,Kornia 都能为您提供实现创意所需的工具。

📢 公告: Kornia 正在向端到端视觉模型方向转型。我们正专注于整合最先进的视觉语言模型(VLM)和视觉语言代理(VLA),以提供全面的端到端视觉解决方案。

核心组件

  1. 可微分图像处理
    Kornia 提供了一整套图像处理算子,全部支持梯度计算,可直接集成到深度学习流水线中。
    • 滤波器: 高斯滤波、Sobel 滤波、中值滤波、方框模糊等。
    • 变换: 仿射变换、单应性变换、透视变换等。
    • 增强: 直方图均衡化、CLAHE、伽马校正等。
    • 边缘检测: Canny、拉普拉斯、Sobel 等。
    • … 更多内容请查看我们的 文档
  2. 高级数据增强
    使用 Kornia 内置的功能执行强大的数据增强操作,非常适合构建复杂的增强流水线来训练 AI 模型。
    • 增强流水线: AugmentationSequential、PatchSequential、VideoSequential 等。
    • 自动增强: AutoAugment、RandAugment、TrivialAugment。
  3. AI 模型
    利用 Kornia 生态系统中针对各类视觉任务优化的预训练 AI 模型。
    • 人脸检测: YuNet
    • 特征匹配: LoFTR、LightGlue
    • 特征描述符: DISK、DeDoDe、SOLD2
    • 分割: SAM
    • 分类: MobileViT、VisionTransformer。
查看我们支持的部分方法!(总计超过 500 种操作!)
类别 方法/模型
图像处理 - 颜色转换(RGB、灰度、HSV 等)
- 几何变换(仿射变换、单应性变换、缩放等)
- 滤波(高斯模糊、中值模糊等)
- 边缘检测(Sobel、Canny 等)
- 形态学操作(腐蚀、膨胀等)
增强 - 随机裁剪、随机擦除
- 随机几何变换(仿射变换、翻转、鱼眼、透视、薄板样条、弹性变形)
- 随机噪声(高斯噪声、中值噪声、运动模糊、方框噪声、雨雪噪声、椒盐噪声)
- 随机颜色抖动(对比度、亮度、CLAHE、直方图均衡化、伽马校正、色调调整、反转、JPEG 压缩、等离子效果、海报化、饱和度、锐化、太阳化)
- 随机 MixUp、CutMix、Mosaic、移植等。
特征检测 - 检测器(Harris、GFTT、Hessian、DoG、KeyNet、DISK 和 DeDoDe)
- 描述符(SIFT、HardNet、TFeat、HyNet、SOSNet 和 LAFDescriptor)
- 匹配(最近邻、双向最近邻、基于几何信息的匹配、AdaLAM LightGlue 和 LoFTR)
几何 - 相机模型与标定
- 立体视觉(极线几何、视差等)
- 单应性估计
- 由视差估计深度
- 3D 变换
深度学习层 - 自定义卷积层
- 用于视觉任务的循环层
- 损失函数(如 SSIM、PSNR 等)
- 视觉专用优化器
光度函数 - 光度损失函数
- 光度增强
滤波 - 双边滤波
- DexiNed
- Dissolving
- 引导模糊
- 拉普拉斯滤波
- 高斯滤波
- 非局部均值滤波
- Sobel 滤波
- 锐化掩膜
颜色 - 颜色空间转换
- 亮度/对比度调整
- 伽马校正
立体视觉 - 视差估计
- 深度估计
- 校正
图像配准 - 基于仿射和单应性的配准
- 使用特征匹配进行图像对齐
姿态估计 - 本质矩阵和基础矩阵估计
- PnP 问题求解器
- 姿态精炼
光流 - Farneback 光流
- 密集光流
- 稀疏光流
3D 视觉 - 深度估计
- 点云操作
图像去噪 - 高斯噪声去除
- 泊松噪声去除
边缘检测 - Sobel 算子
- Canny 边缘检测
变换 - 旋转
- 平移
- 缩放
- 剪切
损失函数 - SSIM(结构相似性指数)
- PSNR(峰值信噪比)
- Cauchy 损失
- Charbonnier 损失
- Depth Smooth 损失
- Dice 损失
- Hausdorff 损失
- Tversky 损失
- Welsch 损失
形态学操作 - 膨胀
- 腐蚀
- 开运算
- 闭运算

半精度支持

模块 float16 bfloat16 备注
kornia.color ⚠️ ⚠️ 大多数转换对两种格式都有效;基于FFT的操作可能会失败
kornia.filters ⚠️ ⚠️ 基础滤波器可用;基于FFT的操作在CUDA上可能会失败
kornia.enhance ⚠️ ⚠️ 直方图均衡、伽马校正和ZCA均可用(线性代数操作使用类型转换辅助函数)
kornia.morphology 纯卷积/池化操作;无数据类型限制
kornia.augmentation ⚠️ ⚠️ 大多数操作可用;对精度敏感的变换可能不准确
kornia.geometry.transform ⚠️ ⚠️ 通过类型转换辅助函数实现仿射变换、扭曲和缩放;薄板样条可能失败
kornia.geometry.camera ⚠️ ⚠️ 小孔成像模型及大多数相机操作可用;StereoCamera接受两种格式
kornia.geometry.calibration 明确只接受float32/float64(PnP求解器)
kornia.geometry.epipolar ⚠️ ⚠️ SVD/逆运算使用类型转换辅助函数;两种数据类型均可
kornia.geometry.homography ⚠️ ⚠️ 使用 _torch_svd_cast — 两种数据类型均可通过类型转换使用
kornia.geometry.liegroup ⚠️ ⚠️ 大多数操作通过类型转换辅助函数可用;部分线性代数路径可能失败
kornia.geometry.solvers ⚠️ ⚠️ 使用 _torch_solve_cast — 两种数据类型均可通过类型转换使用
kornia.geometry.subpix ⚠️ ⚠️ 软argmax可用;对精度敏感的运算可能不准确
kornia.losses ⚠️ ⚠️ 光度损失可用;基于线性代数的损失可能不可用
kornia.feature ⚠️ ⚠️ 检测器/描述符可用;匹配使用手动cdist回退
kornia.metrics ⚠️ ⚠️ 像素级指标可用;基于线性代数的指标可能不可用
kornia.models ⚠️ ⚠️ 基于卷积的模型可用;基于注意力的模型可能存在数据类型不匹配

✅ 支持   ⚠️ 部分支持   ❌ 不支持

测试结果(提交 6131e98, 2026-03-21):

运行 通过 失败 跳过 通过率
CPU float32 (基准) 7647 3 3269 99.9%
CUDA float32 (基准) 7634 3 3280 99.9%
CPU float16 6866 747 3306 90.1%
CPU bfloat16 6838 812 3269 89.3%
CUDA float16 (KORNIA_TEST_IN_SUBPROCESS=1) 6727 643 3556 91.3%
CUDA bfloat16 (KORNIA_TEST_IN_SUBPROCESS=1) 6695 713 3518 90.4%

详情请参阅完整精度指南

赞助

Kornia是一个由志愿者开发和维护的开源项目。无论您是将其用于研究还是商业用途,都欢迎考虑赞助或与我们合作。您的支持将有助于确保Kornia的成长和持续创新。立即联系我们,共同塑造这一激动人心项目的未来!

安装

PyPI python pytorch

通过pip安装

pip install kornia
其他安装选项

从源码以可编辑模式安装

pip install -e .

使用Pixi进行开发(推荐)

在开发过程中,Kornia使用Pixi来实现快速的Python包管理和环境管理。该项目包含一个pixi.toml配置文件,用于实现可重复的依赖管理。

# 安装pixi(如果尚未安装)
curl -fsSL https://pixi.sh/install.sh | bash

# 安装依赖并设置开发环境
pixi install

# 运行测试
pixi run test

# 对于CUDA开发
pixi run -e cuda install
pixi run -e cuda test-cuda

这将设置一个包含所有依赖的完整开发环境。更多关于依赖管理和可用任务的详细信息,请参阅CONTRIBUTING.md

从Github URL安装(最新版本)

pip install git+https://github.com/kornia/kornia

快速开始

Kornia不仅仅是一个计算机视觉库——它是您轻松进入计算机视觉和人工智能领域的门户。

开始使用Kornia进行图像变换和增强!
import numpy as np
import kornia_rs as kr

from kornia.augmentation import AugmentationSequential, RandomAffine, RandomBrightness
from kornia.filters import StableDiffusionDissolving

# 加载并准备您的图像
img: np.ndarray = kr.read_image_any("img.jpeg")
img = kr.resize(img, (256, 256), interpolation="bilinear")

# 或者,使用PIL加载图像
# img = Image.open("img.jpeg").resize((256, 256))
# img = np.array(img)

img = np.stack([img] * 2)  # 批量处理图像

# 定义增强流水线
augmentation_pipeline = AugmentationSequential(
    RandomAffine((-45., 45.), p=1.),
    RandomBrightness((0.,1.), p=1.)
)

# 利用StableDiffusion模型
dslv_op = StableDiffusionDissolving()

img = augmentation_pipeline(img)
dslv_op(img, step_number=500)

dslv_op.save("Kornia-enhanced.jpg")
了解Kornia ONNX模型与ONNXSequential!
import numpy as np
from kornia.onnx import ONNXSequential
# 将HuggingFace仓库中的ONNX模型和您自己的本地模型串联起来
onnx_seq = ONNXSequential(
    "hf://operators/kornia.geometry.transform.flips.Hflip",
    "hf://models/kornia.models.detection.rtdetr_r18vd_640x640",  # 或者您可以使用“YOUR_OWN_MODEL.onnx”
)
# 准备一些输入数据
input_data = np.random.randn(1, 3, 384, 512).astype(np.float32)
# 进行推理
outputs = onnx_seq(input_data)
# 打印模型输出
print(outputs)

# 导出一个新的ONNX模型,将所有三个模型串联起来!
onnx_seq.export("chained_model.onnx")

多框架支持

现在您可以将Kornia与TensorFlowJAXNumPy一起使用。更多详情请参阅多框架支持

import kornia
tf_kornia = kornia.to_tensorflow()

提供支持

欢迎贡献者

你是否对计算机视觉、人工智能和开源开发充满热情?加入我们,共同塑造 Kornia 的未来吧!我们正在积极寻找贡献者,帮助扩展和增强我们的库,使其功能更强大、更易用、更具通用性。无论你是经验丰富的开发者还是刚刚入门的新手,我们的社区都欢迎你的加入。

易于使用的 AI 模型

我们很高兴宣布一项最新进展:一项旨在将轻量级 AI 模型无缝集成到 Kornia 中的新计划。我们的目标是让任何模型都能像 StableDiffusion 等大型模型一样流畅运行,并从多方面提供良好支持。

优先方向:VLM/VLA 模型

我们的首要任务是集成 视觉语言模型(VLM)视觉语言代理(VLA),以实现端到端的视觉解决方案。我们诚挚地邀请各位贡献者协助我们:

  • VLM/VLA 集成(优先):实现并集成最先进的视觉语言模型和视觉语言代理。这包括 Qwen2.5-VL、SAM-3 以及其他前沿的 VLM/VLA 架构。如果你正在研究 VLM/VLA 模型,Kornia 将是你推广自己成果的理想平台!
  • 扩展模型选择:将优秀的模型引入我们的库中。作为研究人员,Kornia 是展示你工作的绝佳场所!
  • 模型优化:致力于在保持精度和性能的同时,降低模型的计算开销。你可以从提供 ONNX 支持开始!
  • 模型文档:编写详细的指南和示例,帮助用户在项目中充分利用这些模型。

文档与教程优化

Kornia 的核心在于其丰富的经典计算机视觉算子集合,为图像处理、特征提取和几何变换提供了强大的工具。我们持续寻找贡献者,帮助我们改进文档并为用户提供优质的教程。

引用

如果你在研究相关文档中使用了 Kornia,建议引用我们的论文。更多信息请参阅 CITATION

@inproceedings{eriba2019kornia,
  author    = {E. Riba, D. Mishkin, D. Ponsa, E. Rublee and G. Bradski},
  title     = {Kornia: an Open Source Differentiable Computer Vision Library for PyTorch},
  booktitle = {Winter Conference on Applications of Computer Vision},
  year      = {2020},
  url       = {https://arxiv.org/pdf/1910.02190.pdf}
}

如何贡献

我们非常感谢每一位贡献者的付出。如果你计划提交 bug 修复,请直接操作,无需额外讨论。若要贡献新功能、实用工具或扩展,请先创建议题并与我们讨论后再进行开发。请务必阅读 CONTRIBUTING 文档。参与本开源项目需遵守 Code of Conduct

AI 政策

Kornia 接受由 AI 辅助编写的代码,但严格禁止以代理人身份提交完全由 AI 生成的内容。所有贡献者必须对每一行代码承担 唯一责任。请在提交 Pull Request 之前仔细阅读我们的 AI Policy。主要要求如下:

  • 验证证明:PR 必须包含本地测试日志,以证明代码已成功执行。
  • 事前讨论:所有 PR 在实施前都必须在 Discord 或通过 GitHub 议题进行讨论。
  • 基于现有库:实现必须基于现有的库参考(如 PyTorch、OpenCV 等)。
  • 利用现有工具:应优先使用现有的 kornia 工具,而非重复造轮子。
  • 解释说明:你必须能够解释自己提交的任何代码。

自动化 AI 审查工具(例如 GitHub Copilot)将根据这些政策检查 PR。完整详情请参阅 AI_POLICY.md

社区

  • Discord:加入我们的工作空间,与核心贡献者保持联系,获取行业最新动态,并成为社区的一员。点击加入
  • GitHub Issues:用于报告 bug、提出功能请求、解决安装问题、RFC、分享想法等。立即打开
  • 论坛:讨论实现细节、研究成果等。GitHub 论坛

contrib.rocks 制作。

许可证

Kornia 采用 Apache 2.0 许可证发布。更多信息请参阅 LICENSE 文件。

版本历史

v0.8.22025/11/08
v0.8.12025/05/08
v0.8.02025/01/11
v0.7.42024/11/05
v0.7.32024/06/28
v0.7.22024/03/14
v0.7.12023/12/27
v0.7.02023/08/02
v0.6.122023/04/20
v0.6.112023/03/28
v0.6.102023/02/17
v0.6.92022/12/21
v0.6.82022/10/13
v0.6.72022/08/30
v0.6.62022/07/16
v0.6.52022/05/17
v0.6.42022/03/21
v0.6.32022/01/31
v0.6.22021/12/03
v0.6.12021/10/22

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架