---
title: image-matching-modelsの紹介
tags: 
author: [Motoki Kimura](https://convert.docswell.com/user/motokimura)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/9E24YVNZJR.jpg?width=480
description: https://github.com/alexstoken/image-matching-models
published: June 12, 25
canonical: https://convert.docswell.com/s/motokimura/KN1YXP-image-matching-models
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/9E24YVNZJR.jpg)

image-matching-models
の紹介
2025.06.12
木村 元紀
GO株式会社
AI


# Page. 2

![Page Image](https://bcdn.docswell.com/page/D7YMG3PN7M.jpg)

image-matching-models (IMM) とは？
▪
github.com/alexstoken/image-matching-models
▪
▪
多様な画像マッチングモデルを統一的なAPIで利用可能
34種類のモデルをサポート（2025年6月時点）
▪ SIFT, SuperPoint, ALIKED
▪ SuperGlue, LightGlue
▪ LoFTR, Roma
▪ などなど
▪ Sparse, semi-dense, denseまで広くサポート
▪
▪
推論のみ（学習はサポート外）
BSD 3-Clause ライセンス
https://x.com/AlexStoken/status/1839323777186066441
AI
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VENWGV5VE8.jpg)

使い方
▪
▪
▪
▪
▪
READMEにしたがってpip install
モデルによっては追加の依存パッケージ（.[loftrs] など）を指定する必要がある
pip install .[all] で全部のモデルが使える状態になる
特に .[all] を指定した場合、10分程度かかることがあるので気長に待つ
torch &gt;= 2.2 を推奨
AI
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/Y79XW6YVJ3.jpg)

使い方
▪
▪
▪
get_matcher : モデル名を指定し、マッチングモデルを生成
matcher.load_image : 画像ファイル読み込み + リサイズ + 前処理（グレースケール
化や正規化など、モデル固有の前処理）。結果はtorch.Tensor。自分で書いてもOK
plot_matches : マッチング結果を可視化
AI
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/G782NZ647D.jpg)

使い方
▪ get_matcher で指定するモデル名
を変えるだけで、モデルを簡単に
変更できる
▪ 自分の用途に合っているモデルを
見つけるのに便利
AI
https://x.com/AlexStoken/status/1839323777186066441
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/L7L2PD9VJR.jpg)

使い方
▪
▪
マッチング結果（result）の内容
▪ all_kpts0/1 : img0/1から検出された全ての特徴点のxy座標
▪ all_desc0/1 : img0/1から検出された全ての特徴点の特徴量
▪ matched_kpts0/1 : マッチングしたimg0/1上の特徴点のxy座標
▪ H : マッチング結果にRANSACを適用して推定したホモグラフィ行列
▪ num_inliers : RANSACで最終的に推定に使われた特徴点の数
▪ inlier_kpts0/1 : RANSACで最終的に推定に使われたimg0/1上の特徴点のxy座標
plot_matches では、inlier_kpts（inliers）が緑、inlier_kptsに含まれないmatched_kpts
（つまり outliers）が青 で描画される
AI
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4EM84PZNEW.jpg)

利用可能なモデル
▪ README.md#model-details を参照
▪ matching.available_models で指定可能なモデル名の一覧を取得できる
▪ どのモデルにマッピングされているかは matching/__init__.py を参照
AI
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/PER5W16479.jpg)

Tips
▪
複数モデルのアンサンブル
▪ get_matcherにモデル名のリストを渡すと、全てのモデルの特徴点がconcatされ
て返ってくる
▪ 下記は、SuperPoint-LightGlueとALIKED-LightGlueを組み合わせた例
▪ p.6（SuperPont-LightGlueのみの場合）と比べて特徴点の個数が増えている
AI
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/P7XKPYMZEX.jpg)

Tips
▪
RANSACのパラメータ調整
▪ get_matcherでRANSACのパラメータを設定できる
▪ ちなみにRANSACはOpenCVのﬁndHomographyが使われている
https://github.com/alexstoken/image-matching-models/blob/28168d251ca462
53a52d306161e7a13bb0456cfc/matching/im_models/base_matcher.py#L80-L9
5
AI
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/37K5D3GVED.jpg)

Tips
▪ 1枚の画像に対して特徴点の検出・記述を行うこともできる
AI
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LJ3KRG5QJ5.jpg)

IMMはどうやって作られているのか？
▪
▪
▪
▪
▪
third_party ディレクトリ下に、各モデルの
公式実装がsubmoduleとして登録されている
（右図）
IMMは、これらを統一的なAPIで推論するた
めのwrapperという位置付け
モデルごとのwrappingは im_models 以下に
実装されている
なお、学習済みモデルも公式実装のものをそ
のまま利用している
IMMはBSD 3-Clauseライセンスだが、モデ
ルによっては制限の厳しいライセンスを採用
しているもの（SuperPointなど）があるた
め、公式実装のライセンスを確認すること！
AI
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/8JD3Y1DWEG.jpg)

その他の注意点
1.
大体のモデルはCPU・GPUどちらでも動くが、一部のモデルはどちらかでしか動かない
（README.md#model-details）
2.
モデル固有のパラメータを変更したい場合、IMMのソースをいじる必要がある
https://github.com/alexstoken/image-matching-models/blob/28168d251ca46253a52d3
06161e7a13bb0456cfc/matching/im_models/lightglue.py#L62-L66
AI
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VEP46QXXJ8.jpg)

まとめ
▪
▪
▪
▪
▪
▪
▪
image-matching-models (IMM) は、多様な画像マッチングモデルを統一的なAPIで推
論できるツール
Sparse, semi-dense, dense まで多様なモデルをカバー
各モデルをパッと試して用途に合っていそうなモデルを選定するのに便利。複数モデル
のアンサンブルも簡単
IMMは各モデルの公式実装をsubmoduleとして利用している。IMMはそれらの実装と
学習済みモデルを統一的なAPIとして扱うためのwrapper
IMMはBSD 3-Clauseライセンスだが、モデルによっては商用利用不可など制限の厳し
いライセンスを採用しているものもあるため、モデルの公式実装のライセンスを必ず確
認すること！
興味のある方は公式のColab notebookを試してみてください
https://colab.research.google.com/github/alexstoken/image-matching-models/b
lob/main/demo.ipynb
AI
13


