Repolode
cvg

cvg/FlexGlue

疎なキーポイント、密なグリッド、またはキーポイントなしで2枚の画像間の対応点を見つけ、似ている画像ペアを判定する機能を備えた特徴マッチャー。

スター
243
フォーク
13
未解決の Issue
1
最終コミット
3 日前

これは何?

FlexGlueは、画像マッチングや3D再構成などのコンピュータビジョンパイプライン向けのPython製特徴マッチャーです。DINOv3-ConvNeXtバックボーンで各画像をストライド8の特徴マップに変換し、Transformerで両方のマップを精緻化したうえで、相関によって一方の画像の各クエリ点に対応するもう一方の画像上の点を特定します。ユーザーが指定したキーポイント(サンプルではLightGlueのALIKED検出器を使用)、サンプリングした点の密なグリッド、またはキーポイントなしでマッチングできます。

マッチングに加えて、FlexGlueは共視可能性スコア、つまり2枚の画像が同じ場所を写している確率を予測します。これにより、建物のファサードが繰り返し現れる画像ペアなど、見た目が似ているだけのペアを除外できます。また、早期終了を使えば、除外対象のペアに対する計算の大部分を省けます。マッチャーはバッチ実行でき、torch.compileでコンパイルできるほか、torch.hub経由で読み込んだり、ONNXにエクスポートしてPyTorchなしでONNX Runtimeから実行したりできます。

このプロジェクトにはデモ用ノートブックと事前学習済み重みが用意されており、RoMa v2によるサブピクセル精緻化もオプションで利用できます。コードはMITライセンスですが、DINOv3バックボーンの重みは別のライセンスのもとで配布され、使用に制限があります。

主な機能

  • 01ユーザー指定のキーポイント、サンプリングした点の密なグリッド、またはキーポイントのない画像をマッチングします。
  • 02共視可能性スコアを予測し、ファサードが繰り返し現れる場合など、見た目が似ている画像ペアを除外します。
  • 03サイズの異なる画像ペアをまとめてバッチ推論できます。
  • 04RoMa v2 refinerによるサブピクセル精緻化をオプションで利用できます。
  • 05ONNXにエクスポートし、PyTorchなしでONNX Runtimeから実行できます。

ユースケース

  • Structure-from-Motionや再構成パイプライン向けに、写真間の対応点を求める。
  • 幾何検証や位置推定の前に、繰り返し構造を含む画像ペアを除外する。
  • ONNXエクスポートを使って、C++環境やPython以外の環境で特徴マッチングを実行する。
  • 任意のキーポイント検出器に対応するマッチャーをベンチマークまたは比較する。

クイックスタート

  1. 1

    リポジトリをクローンして、そのディレクトリに移動します

    git clone https://github.com/cvg/FlexGlue.git && cd FlexGlue
  2. 2

    pipでFlexGlueを編集可能モードでインストールします

    python -m pip install -e .
  3. 3

    キーポイント検出器を使う場合は、LightGlueの最新コミットをインストールします(任意)

    python -m pip install git+https://github.com/cvg/LightGlue.git
  4. 4

    Colabまたはローカル環境でデモノートブックを実行します

使う前に知っておきたいこと

  • マッチャーのサンプルにはCUDA GPUが必要です。
  • 最高の精度を得るには、より高い解像度と、処理コストが増える任意のRoMa v2リファイナーが必要です。
  • このプロジェクトは最近公開された研究成果のため、APIが変更される可能性があります。

収録されている特集

トピック

よくある質問

FlexGlue とは?
疎なキーポイント、密なグリッド、またはキーポイントなしで2枚の画像間の対応点を見つけ、似ている画像ペアを判定する機能を備えた特徴マッチャー。 FlexGlueは、画像マッチングや3D再構成などのコンピュータビジョンパイプライン向けのPython製特徴マッチャーです。DINOv3-ConvNeXtバックボーンで各画像をストライド8の特徴マップに変換し、Transformerで両方のマップを精緻化したうえで、相関によって一方の画像の各クエリ点に対応するもう一方の画像上の点を特定します。ユーザーが指定したキーポイント(サンプルではLightGlueのALIKED検出器を使用)、サンプリングした点の密なグリッド、またはキーポイントなしでマッチングできます。
FlexGlue は無料で使えますか?ライセンスは?
FlexGlue は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
FlexGlue は今もメンテナンスされていますか?
活発にメンテナンス中。FlexGlue の最終コミットは 2026年11月3日 です。
FlexGlue は何に使えますか?
Structure-from-Motionや再構成パイプライン向けに、写真間の対応点を求める。 幾何検証や位置推定の前に、繰り返し構造を含む画像ペアを除外する。 ONNXエクスポートを使って、C++環境やPython以外の環境で特徴マッチングを実行する。 任意のキーポイント検出器に対応するマッチャーをベンチマークまたは比較する。
FlexGlue のインストール方法は?
リポジトリをクローンして、そのディレクトリに移動します: git clone https://github.com/cvg/FlexGlue.git && cd FlexGlue pipでFlexGlueを編集可能モードでインストールします: python -m pip install -e . キーポイント検出器を使う場合は、LightGlueの最新コミットをインストールします(任意): python -m pip install git+https://github.com/cvg/LightGlue.git Colabまたはローカル環境でデモノートブックを実行します
FlexGlue はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/cvg/FlexGlue

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト