英語 | 简体中文
ドキュメント • 今すぐ試してみる • チュートリアル • 例 • ブログ • コミュニティ
Kornia は、微分可能な画像処理および幾何学的ビジョン アルゴリズムの豊富なセットを提供する微分可能なコンピューター ビジョン ライブラリです。 PyTorch 上に構築された Kornia は、既存の AI ワークフローにシームレスに統合され、強力なバッチ変換、自動微分、GPU アクセラレーションを活用できるようになります。画像の変換、拡張、または AI 主導の画像処理に取り組んでいる場合でも、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 問題解決ツール - ポーズの微調整 |
オプティカル フロー | - ファーンバックオプティカルフロー - 緻密なオプティカルフロー - まばらなオプティカル フロー |
3Dビジョン | - 深さの推定 - 点群操作 - ナーフ |
画像のノイズ除去 | - ガウスノイズ除去 - ポアソンノイズの除去 |
エッジ検出 | - ソーベルオペレーター - キャニーエッジ検出 |
変換 | - 回転 - 翻訳 - スケーリング - 剪断 |
損失関数 | - SSIM (構造類似性指数測定) - PSNR (ピーク信号対雑音比) - コーシー - シャルボニエ - デプススムーズ - サイコロ - ハウスドルフ - トベルスキー - ウェルシュ |
形態学的操作 | - 拡張 - 侵食 - オープニング - 閉会 |
Kornia は、ボランティアによって開発および保守されているオープンソース プロジェクトです。研究目的で使用する場合でも、商業目的で使用する場合でも、私たちの後援や協力を検討してください。あなたのサポートは、Kornia の成長と継続的なイノベーションを確実にするのに役立ちます。今すぐ私たちに連絡して、このエキサイティングな取り組みの未来を形作ることに参加してください!
pip install kornia
pip install -e .
pip install git+https://github.com/kornia/kornia
Kornia は単なるコンピューター ビジョン ライブラリではなく、簡単なコンピューター ビジョンと AI へのゲートウェイです。
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 ()
搭載
コンピューター ビジョン、AI、オープンソース開発に情熱を持っていますか?私たちと一緒にコルニアの未来を形作っていきましょう!私たちは、ライブラリをさらに強力で、アクセスしやすく、多用途なものにするために、ライブラリの拡張と強化に協力してくれる寄稿者を積極的に探しています。あなたが経験豊富な開発者でも、初心者でも、私たちのコミュニティにはあなたの居場所があります。
私たちは最新の進歩、つまり軽量 AI モデルを Kornia にシームレスに統合するように設計された新しい取り組みを発表できることを嬉しく思います。私たちは、あらゆるモデルを StableDiffusion などの大きなモデルと同じくらいスムーズに実行し、さまざまな観点から適切にサポートすることを目指しています。 YuNet (顔検出)、Loftr (特徴マッチング)、SAM (セグメンテーション) などの軽量 AI モデルのセレクションがすでに組み込まれています。現在、私たちを助けてくれるコントリビューターを募集しています。
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 ライセンスに基づいてリリースされています。詳細については、LICENSE ファイルを参照してください。