graph op• 데이터 종류: image2d → table
• 호출: import fullseye as fs; fs.ledger.alpha_expansion(image, means: 'Optional[Sequence[float]]' = None, *, lam: 'float' = 1.0, pairwise: 'str' = 'potts', truncation: 'float' = 2.0, connectivity: 'int' = 4, max_cycles: 'int' = 10, init=None) -> 'Dict[str, object]'(구현을 직접 호출하려면 import seggraph; seggraph.alpha_expansion(image, means: 'Optional[Sequence[float]]' = None, *, lam: 'float' = 1.0, pairwise: 'str' = 'potts', truncation: 'float' = 2.0, connectivity: 'int' = 4, max_cycles: 'int' = 10, init=None) -> 'Dict[str, object]', 원장에서 가져오려면 opssegmentation.get("alpha_expansion"))
다중 레이블 α-expansion(Boykov–Veksler–Zabih 2001): E(f) = Σ (I_p − μ_(f_p))² + λ Σ w_pq V(f_p, f_q), V는 거리 함수(metric)(alpha_expansion).
means = 각 라벨의 평균 μ_1..μ_L(L ≥ 2. 생략하면 화소 값의 1/6·1/2·5/6 분위의 3 라벨). V는 "potts"([α ≠ β], c = 1) 또는 "truncated_linear" (min(|α − β|, T), T ≥ 1이면 계량, c = min(L − 1, T)). 1바퀴 = α = 1..L의 expansion을 차례로. 각 이동은 2값 graph cut으로엄밀히 풀고, 에너지가 엄밀히 내려갈 때만 받아들인다. 1바퀴에서 1번도 받아들이지 않으면 멈춘다(논문과 같음).
반환: labels(1..L), energy, energies(수락의 열, 단조 감소), move_minima(각 이동의 2값 문제의 최소, 현재 값 이하 = 게이트), c, bound_factor = 2c(Theorem 6.1: E(f̂) ≤ 2c E(f*)).
• graph_hierarchy_and_thresholds — 그래프·계층·임계값 정리로 만드는 분할 — 무엇이 엄밀하고 어디서 분할이 무너지는가
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_graph_hierarchy_segmentation — py -3.11 examples/poc_graph_hierarchy_segmentation.py
table 를 입력으로 받는 것)graph)graph_cut_binary · statistical_region_merging · max_tree · area_opening_attr · quasi_flat_zones · alpha_tree · hierarchical_watershed · ultrametric_contour_map
*Provenance: seggraph.py — SEGMENTATION 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.