英语 | 简体中文
文档 • 立即尝试 • 教程 • 示例 • 博客 • 社区
Kornia是一个可微分计算机视觉库,提供了一组丰富的可微分图像处理和几何视觉算法。 Kornia 构建于 PyTorch 之上,可无缝集成到现有的 AI 工作流程中,让您能够利用强大的批量转换、自动微分和 GPU 加速。无论您从事图像转换、增强还是人工智能驱动的图像处理,Kornia 都能为您提供将想法变为现实所需的工具。
类别 | 方法/模型 |
---|---|
图像处理 | - 颜色转换(RGB、灰度、HSV 等) - 几何变换(仿射、单应性、调整大小等) - 过滤(高斯模糊、中值模糊等) - 边缘检测(Sobel、Canny 等) - 形态学运算(腐蚀、膨胀等) |
增强 | - 随机裁剪、擦除 - 随机几何变换(仿射、翻转、鱼眼、透视、薄板样条、弹性) - 随机噪声(高斯噪声、中值噪声、运动噪声、盒子噪声、雨噪声、雪噪声、盐噪声和胡椒噪声) - 随机颜色抖动(对比度、亮度、CLAHE、均衡、伽玛、色调、反转、JPEG、等离子、色调分离、饱和度、清晰度、曝光) - 随机混音、剪切混音、马赛克、移植等 |
特征检测 | - 探测器(Harris、GFTT、Hessian、DoG、KeyNet、DISK 和 DeDoDe) - 描述符(SIFT、HardNet、TFeat、HyNet、SOSNet 和 LAFDescriptor) - 匹配(最近邻、相互最近邻、几何感知匹配、AdaLAM LightGlue 和 LoFTR) |
几何学 | - 相机型号和校准 - 立体视觉(对极几何、视差等) - 单应性估计 - 根据视差进行深度估计 - 3D 变换 |
深度学习层 | - 自定义卷积层 - 视觉任务的循环层 - 损失函数(例如,SSIM、PSNR等) - 特定于视觉的优化器 |
光度测量功能 | - 光度损失函数 - 光度增强 |
过滤 | - 双边过滤 - 德克西内德 - 溶解 - 引导模糊 - 拉普拉斯算子 - 高斯 - 非本地手段 ——索贝尔 - 遮蔽不锐利 |
颜色 | - 色彩空间转换 - 亮度/对比度调整 - 伽马校正 |
立体视觉 | - 视差估计 - 深度估计 - 整改 |
图像配准 | - 基于仿射和单应性的配准 - 使用特征匹配进行图像对齐 |
姿势估计 | - 基本矩阵估计 - PnP 问题解决者 - 姿势细化 |
光流 | - Farneback光流 - 密集光流 - 稀疏光流 |
3D视觉 | - 深度估计 - 点云操作 - 削弱 |
图像去噪 | - 高斯噪声去除 - 泊松噪声消除 |
边缘检测 | - 索贝尔算子 - Canny边缘检测 |
转换 | - 旋转 - 翻译 - 缩放 - 剪切 |
损失函数 | - SSIM(结构相似性指数测量) - PSNR(峰值信噪比) ——柯西 - 沙博尼耶 - 深度平滑 - 骰子 ——豪斯多夫 ——特沃斯基 - 威尔士人 |
形态运算 | - 扩张 - 侵蚀 - 开幕 - 结束 |
Kornia 是一个由志愿者开发和维护的开源项目。无论您是将其用于研究还是商业目的,请考虑赞助我们或与我们合作。您的支持将有助于确保 Kornia 的成长和持续创新。今天就联系我们,参与塑造这一激动人心的计划的未来!
pip install kornia
pip install -e .
pip install git+https://github.com/kornia/kornia
Kornia 不仅仅是另一个计算机视觉库,它还是您轻松通向计算机视觉和人工智能的门户。
import numpy as np
import kornia_rs as kr
from kornia . augmentation import AugmentationSequential , RandomAffine , RandomBrightness
from kornia . filters import StableDiffusionDissolving
# Load and prepare your image
img : np . ndarray = kr . read_image_any ( "img.jpeg" )
img = kr . resize ( img , ( 256 , 256 ), interpolation = "bilinear" )
# alternatively, load image with PIL
# img = Image.open("img.jpeg").resize((256, 256))
# img = np.array(img)
img = np . stack ([ img ] * 2 ) # batch images
# Define an augmentation pipeline
augmentation_pipeline = AugmentationSequential (
RandomAffine (( - 45. , 45. ), p = 1. ),
RandomBrightness (( 0. , 1. ), p = 1. )
)
# Leveraging StableDiffusion models
dslv_op = StableDiffusionDissolving ()
img = augmentation_pipeline ( img )
dslv_op ( img , step_number = 500 )
dslv_op . save ( "Kornia-enhanced.jpg" )
import numpy as np
from kornia . onnx import ONNXSequential
# Chain ONNX models from HuggingFace repo and your own local model together
onnx_seq = ONNXSequential (
"hf://operators/kornia.geometry.transform.flips.Hflip" ,
"hf://models/kornia.models.detection.rtdetr_r18vd_640x640" , # Or you may use "YOUR_OWN_MODEL.onnx"
)
# Prepare some input data
input_data = np . random . randn ( 1 , 3 , 384 , 512 ). astype ( np . float32 )
# Perform inference
outputs = onnx_seq ( input_data )
# Print the model outputs
print ( outputs )
# Export a new ONNX model that chains up all three models together!
onnx_seq . export ( "chained_model.onnx" )
您现在可以将 Kornia 与 TensorFlow、JAX 和 NumPy 结合使用。有关更多详细信息,请参阅多框架支持。
import kornia
tf_kornia = kornia . to_tensorflow ()
供电
您对计算机视觉、人工智能和开源开发充满热情吗?与我们一起塑造 Kornia 的未来!我们正在积极寻求贡献者来帮助扩展和增强我们的库,使其更加强大、易于访问和多功能。无论您是经验丰富的开发人员还是刚刚起步的开发人员,我们的社区中都有适合您的位置。
我们很高兴地宣布我们的最新进展:一项旨在将轻量级 AI 模型无缝集成到 Kornia 中的新举措。我们的目标是让任何模型都像 StableDiffusion 等大型模型一样流畅地运行,从多个角度为它们提供良好的支持。我们已经包含了一系列轻量级 AI 模型,例如 YuNet(人脸检测)、Loftr(特征匹配)和 SAM(分割)。现在,我们正在寻找贡献者来帮助我们:
Kornia 的基础在于其广泛的经典计算机视觉算子集合,为图像处理、特征提取和几何变换提供了强大的工具。我们不断寻求贡献者来帮助我们改进文档并向用户提供精彩的教程。
如果您在研究相关文档中使用 kornia,建议您引用该论文。请参阅引文中的更多内容。
@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 }
}
我们感谢所有的贡献。如果您计划回馈错误修复,请这样做,无需任何进一步的讨论。如果您计划贡献新功能、实用功能或扩展,请首先提出问题并与我们讨论该功能。请考虑阅读贡献笔记。参与此开源项目须遵守行为准则。
用 contrib.rocks 制作。
Kornia 是根据 Apache 2.0 许可证发布的。有关详细信息,请参阅许可证文件。