Kornia オープンソースの微分可能コンピュータビジョンライブラリ、Pytorch ベース、GitHub 3000 スター

Kornia オープンソースの微分可能コンピュータビジョンライブラリ、Pytorch ベース、GitHub 3000 スター

OpenCV の創設者 Gary Bradski 氏らが最近、Kornia のレビューを公開しました。 Kornia は、微分可能な基本的なコンピューター ビジョン演算子と微分可能なデータ拡張を実装する、PyTorch に基づく微分可能なコンピューター ビジョン ライブラリです。このプロジェクトは Github で 3,000 個のスターを獲得しました。

ディープラーニングでも従来の視覚処理ソリューションでも、最も一般的に使用される画像処理ライブラリは OpenCV と PIL です。ただし、OpenCV と PIL は微分可能ではないため、これらのプロセスは画像の前処理としてのみ使用でき、勾配の変化を観察してこれらの演算子を最適化することはできません (勾配ベースの最適化)。こうしてコルニアが誕生したのです。

  • 論文リンク: https://arxiv.org/pdf/2009.10521.pdf
  • プロジェクトリンク: https://github.com/kornia/kornia
  • ドキュメントリンク: https://kornia.readthedocs.io/en/latest/index.html

Kornia は、PyTorch をベースにした微分可能なコンピューター ビジョンのオープン ソース ライブラリで、Github で 3000 個のスターを獲得しています。従来の視覚処理とディープラーニングのニーズをバランスさせるために、Kornia は次のことを達成しました。

  1. 微分可能な基本的なコンピューター ビジョン演算子。
  2. 微分可能なデータ拡張。

Kornia は PyTorch をベースとしているため、次の機能も備えています。

  1. 微分可能性。すべての演算子の勾配は、PyTorch の AutoGrad によって計算され、PyTorch のオプティマイザー (Adam など) を使用して最適化されます。
  2. GPU/TPU アクセラレーション。 Kornia は、CPU に加えて、GPU や TPU でも操作を実行できます。
  3. バッチデータ処理。大量のデータを同時に処理して運用効率を向上します。

1. Kornia 微分可能コンピュータビジョン

色変換、低レベルの画像処理、画像の幾何学的変換、特徴検出など、さまざまなコンピューター ビジョン分野の問題を解決するために、Kornia は次の図に示すモジュールを設計しました。

Kornia は OpenCV の機能を PyTorch で再実装するだけでなく、従来のビジョンにおける微分不可能な操作の一部を微分可能にしていることにも注目に値します。たとえば、切り抜き操作は、透視変換とアフィン変換によって実装されます。

微分可能性に基づいて、Kornia の従来の視覚的手法も勾配降下法によって最適化できます。たとえば、勾配降下法は画像の深度推定 (Depth Estimation) を実装するために使用されます。

詳細なコードについては、https://github.com/kornia/kornia-examples/blob/master/depth_estimation.ipynb を参照してください。

または、勾配降下法を使用して画像の登録を実現します。

詳細なコードについては、https://github.com/kornia/kornia-examples/blob/master/homography.ipynb を参照してください。

2. Kornia 微分可能データ拡張

ディープラーニングで最も一般的に使用される最適化手法は勾配ベースの最適化ですが、一般的に使用されるデータ拡張ライブラリ (TorchVision、Albumentations など) は微分可能ではありません。ディープラーニングとの統合を強化するために、Kornia は TorchVision API を参考にして、微分化可能なデータ拡張 (DDA) を実装しました。現在、開発チームは、下図に示すように、より差別化可能な 2D 画像と 3D ボリューム データの拡張も開発し続けています (RGB 3D ボリュームは珍しく、その実装はコミュニティによって推進されます)。

Kornia は PyTorch をベースに開発されているため、畳み込み層やプーリング層を使用するのと同じように、データ拡張のロジックが PyTorch ネットワークに自然に統合されます。同様に、Kornia 拡張モジュールを任意に定義、保存、ロードし、任意のデバイス (CPU/GPU/TPU) で計算できます。特にトレーニング中、CPU がすでに過負荷になっている場合、Kornia はトレーニング速度と GPU 使用率を大幅に向上させます。

同時に、Kornia のデータ拡張手法も勾配によって簡単に最適化できます。次の例は、ColorJitter を使用して画像と拡張パラメータを更新する方法を示しています。ここでは、nn.Parameter を通じて 3 つの微分可能なパラメータ (明度、彩度、コントラスト) を定義し、torch.tensor を通じて微分不可能なパラメータ (色相) を定義します。結果から、大きな学習率 (学習率 = 1e + 5) によって更新された画像と、3 つの微分可能なパラメータの変化を確認できます。

3. 追記

近年、微分可能データ拡張やコンピューター ビジョンがコミュニティでますます注目を集めています。 Faster AutoAugment などの最近の研究は、Kornia の微分可能性に基づいた自動データ拡張戦略の最適化手法です。開発チームは、自分たちの研究がより多くの潜在的なプロジェクトに応用されることを期待していると述べた。将来的には、データ拡張操作や勾配推定方法をさらに追加し、JIT のサポートを強化する予定です。

<<:  RFID技術によるスマート製造

>>:  6つの新しいことに焦点を当て、新境地を開拓し、プロジェクトは変革を促進するための王様です。2020年中国(太原)人工知能会議が開催されました

ブログ    
ブログ    

推薦する

Keras よりも優れた機械学習「モデル パッケージ」: コード 0 個でモデルの作成を開始

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

上海交通大学卒業生によるソロ作品! 50年間のゼロ進歩アルゴリズム問題が解決された

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

AIの未来: 汎用人工知能

人工知能を真に理解するために、研究者は、環境に対する人間のような理解を再現できる基礎的な AGI 技...

...

OpenAI は PyTorch、TensorFlow を全面的に採用していますが、なぜそれほど優れていないのでしょうか?

TensorFlow と PyTorch フレームワーク間の戦いは長い間続いています。最近のニュー...

...

...

【専門家がここにいるエピソード3】大量ログ分析とインテリジェントな運用・保守

1. AIOpsとインテリジェントログセンター1.1 AIOps の 5 つのレベルインテリジェント...

ディープフェイクは今回、顔を変えるだけでなく、街そのものを変えてしまった。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

DeepMindの創設者はチューリングテストを覆したい!外国人男性がAIを使って90日間で3万ドルを稼いだ

チューリングテストは時代遅れですか? DeepMind の創設者 Mustafa Suleyman ...

...

TorchCVは、北京大学の学生が開発したPyTorchベースのCVモデルフレームワークです。

機械学習によってもたらされたあらゆる破壊的技術の中でも、コンピュータービジョンの分野は業界関係者と学...

AI モデルの 3 種類のバイアスとその修正方法

自動化された意思決定ツールは組織内でますます一般的になりつつあります。しかし、顔認識システムからオン...

2020年に人工知能を始める正しい方法、トップ10のテクノロジートレンド予測が発表されました

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...