ransac_homography — MATCHREG featmatch op

• Data kinds: table → table

• Call: import fullseye as fs; fs.ledger.ransac_homography(matches, thresh=2.0, confidence=0.999, max_iters=5000, score='msac', local_optimization=True, min_inliers=8, seed=0, model='projective') (to call the implementation directly, import featmatch; featmatch.ransac_homography(matches, thresh=2.0, confidence=0.999, max_iters=5000, score='msac', local_optimization=True, min_inliers=8, seed=0, model='projective'); from the registry, opsmatchreg.get("ransac_homography"))

• GPU: none (CPU reference implementation only)

Usage

Robustly estimates a homography (pts1 → pts2, homogeneous (x, y)) from matched pairs. → table (kind="homography").

> The detailed description below is the original text — the summary and the headings are translated.

4 点の最小標本を引き、前向きの転送誤差 |H p1 - p2| で採点する。既定の採点は MSAC (打ち切り二乗 min(r², thresh²) の和、Torr & Zisserman 2000)で、内れ値の数だけ数える素の RANSAC(score="ransac")より閾値の近くの点の扱いが滑らか。必要な試行回数は内れ値の割合から都度見積もり(confidence)、良い仮説が出るたびに内れ値で当てはめ直す(local_optimization、LO-RANSAC)。行列の当てはめは正規化 DLT(twoview._homography_dlt、Hartley の正規化)を再利用し、退化した標本(3 点が一直線)は捨てる。

★既存の mosaic.proj_match_points_ransac は (row, col) の点・正規化なしの DLT・固定回数で、これは (x, y)・正規化 DLT・適応回数・MSAC・LO。座標の順が逆なので混ぜないこと。

★自由度の少ない模型(model="translation" 1 点 / "similarity" 2 点 / "affine" 3 点)を選べる。返りはどれも 3×3。正しい組が狭い帯にしか無い(貼り合わせの重なりが細い)とき、8 自由度の射影はその帯の組には合うのに帯の外へ大きく外挿を外す(examples/poc_part_locate_features.py の 5 節: 重なり 80 px・正しい組 9 で、射影は原点の並進を 15 px 外し、相似は 0.1 px 以内)。

Args:

matches: features_match の表。

thresh: 内れ値の転送誤差の上限 [px]。

confidence: 外れ値を含まない標本を少なくとも 1 回引く確率(< 1)。

max_iters: 試行回数の上限。

score: "msac" / "ransac"。

local_optimization: 内れ値で当てはめ直すか。

min_inliers: これ未満の内れ値しか集まらなければ失敗(ValueError)。

seed: 標本の乱数の種(同じ種で同じ結果)。

model: "projective"(既定、8 自由度)/ "affine" / "similarity" / "translation"。

Returns:

dict(kind="homography")。H (3,3)(H[2,2] = 1)/ model / inliers (M,) bool /

n_inliers / inlier_ratio / rms_px(内れ値の転送誤差の rms)/ iterations /

score / thresh / image_shape1 / image_shape2。

Raises:

ValueError: 表の種類が違う / 模型の最小標本より少ない / 非有限 / 引数が値域外 / 内れ値が min_inliers 未満

(「いちばんましな H」を成功として返さない)。

Detailed usage guide

• matching_registration family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_part_locate_features — py -3.11 examples/poc_part_locate_features.py

Ops the type connects to (they accept table as input)

features_match · ransac_fundamental · registration_to_flow2d

Same category (featmatch)

features_sift · features_orb · features_match · ransac_fundamental · features_accuracy_table


*Provenance: featmatch.py — MATCHREG operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.