features_sift — MATCHREG featmatch op

• 데이터 종류: image2d → table

• 호출: import fullseye as fs; fs.ledger.features_sift(image, n_octaves=None, n_scales=3, sigma=1.6, contrast_threshold=0.04, edge_threshold=10.0, max_features=2000, double_image=True)(구현을 직접 호출하려면 import featmatch; featmatch.features_sift(image, n_octaves=None, n_scales=3, sigma=1.6, contrast_threshold=0.04, edge_threshold=10.0, max_features=2000, double_image=True), 원장에서 가져오려면 opsmatchreg.get("features_sift"))

• GPU: 없음(CPU 참조 구현만)

사용법

SIFT 특징점과 128차원 기술자(DoG 극값, Lowe 2004). → table(kind="features").

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

DoG(ガウスの差)のスケール空間で 3×3×3 の極値を探し、2 次の当てはめで副画素・副スケールへ詰め、低コントラスト(|D| * n_scales < contrast_threshold、画像は [0, 1] の尺度)と稜線(ヘッセ行列の固有値比が edge_threshold 超)を捨てる。向きは勾配の 36 ビンの山(最大の 0.8 倍以上の山ごとに 1 点、同じ位置に複数の向きが出る)、記述子は 4×4 のマス × 8 方向。

座標の約束: xy は原画像の (x, y) 画素(画素の中心が整数)。double_image=True の拡大は標本点 i/2 の双線形なので、拡大後の座標の半分がちょうど原画像の座標になる(OpenCV の拡大は画素中心の扱いが違い、点が約 0.25 px ずれる —— 位置を直接比べるときの注意)。

実測(256×256 の synthetic_scene、tests/test_featmatch.py が固定): 90 度回転の対でホモグラフィの 4 隅誤差 < 0.5 px、0.5 倍の縮小で < 1.5 px、OpenCV の SIFT(5.0)と同じ対で 4 隅誤差が同じ桁。

限界: 記述子の組み立てはキーポイントごとの Python ループ(2000 点で数秒)。アフィン不変ではない(強い遠近では壊れる。features_accuracy_table で条件ごとに測れる)。

Args:

image: 2-D の濃淡画像(値の尺度は [0, 1] を想定。コントラストのしきい値がこの尺度)。

n_octaves: オクターブ数。None なら log2(min(H, W)) - 3(最低 1)。

n_scales: 1 オクターブあたりの尺度の数(Lowe の s、既定 3)。

sigma: 土台の σ(既定 1.6)。原画像は σ=0.5 のぼけを持つと仮定する。

contrast_threshold: 低コントラストを捨てるしきい値(既定 0.04)。

edge_threshold: 稜線を捨てる固有値比 r(既定 10)。

max_features: 応答の強い順に残す上限。

double_image: 最初に 2 倍へ拡大するか(既定 True、小さな特徴が拾える)。

Returns:

dict(kind="features", detector="sift")。xy (N,2) / scale (N,) [px] /

angle (N,) [度] / response (N,) / octave (N,) / descriptors (N,128) float32 /

descriptor_kind="float" / image_shape。

Raises:

ValueError: 2-D でない / 16 px 未満 / 非有限 / 定数画像 / 引数が値域外。

자세한 사용 가이드

• matching_registration 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_part_locate_features — py -3.11 examples/poc_part_locate_features.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

features_match · ransac_homography · ransac_fundamental · registration_to_flow2d

같은 카테고리(featmatch)

features_orb · features_match · ransac_homography · ransac_fundamental · features_accuracy_table


*Provenance: featmatch.py — MATCHREG 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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