英語 | 簡體中文
文件 • 立即嘗試 • 教學課程 • 範例 • 部落格 • 社區
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 授權發布的。有關詳細信息,請參閱許可證文件。