plane_segmentation — 3D segment op

• 데이터 종류: points → labels

• 호출: import fullseye as fs; fs.ledger.plane_segmentation(points, thresh: 'float', min_inliers: 'int', max_planes: 'int' = 5, iters: 'int' = 300, seed: 'int' = 0) -> 'np.ndarray'(구현을 직접 호출하려면 import segment3d; segment3d.plane_segmentation(points, thresh: 'float', min_inliers: 'int', max_planes: 'int' = 5, iters: 'int' = 300, seed: 'int' = 0) -> 'np.ndarray', 원장에서 가져오려면 ops3d.get("plane_segmentation"))

사용법

반복 RANSAC 으로 최대 max_planes 장의 평면을 차례로 추출(잔여 점 -1).

남은 점 집합에 ransac_fit.ransac_plane 을 적용하고, 그 최대 consensus 평면의 inlier 수가 min_inliers 이상이면 새 라벨을 부여해 제거 → 나머지로 재검출, 을 반복한다. 여러 바닥/벽/계단 모양의 면을 한 번에 분리한다(단일 평면 적합인 pcseg 와의 차이). inlier 가 min_inliers 에 못 미치게 된 시점에 정지하고, 이후의 점은 잔차 -1(구나 복잡한 물체는 여기에 남는다).

Args:

points: (N,3) 점군.

thresh: 점-평면 거리의 inlier 임계값(거리, > 0 필요).

min_inliers: 평면으로 채택하는 최소 inlier 수(>= 3 필요).

max_planes: 추출하는 평면의 최대 장수(>= 1 필요).

iters: 각 RANSAC 반복 수.

seed: 난수 시드(결정론적. 각 평면에서 seed+평면 index 를 사용).

Returns:

labels: (N,) int. 검출 순(=consensus 가 큰 순에 가까움)으로 0,1,2,... 를 평면에 부여,

어느 평면에도 속하지 않는 잔차 점은 -1. 빈 입력은 shape (0,).

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

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

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

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

• object_segmentation — py -3.11 examples_3d/object_segmentation.py

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

fuse_to_voxel · vol_region_props

같은 카테고리(segment)

region_growing · euclidean_cluster · vol_watershed


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

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