Yarroudh/segment-lidar
Python package for segmenting LiDAR data using Segment-Anything Model (SAM) from Meta AI.
해결하는 문제
항공 LiDAR 포인트 클라우드는 밀도가 높고 비정형 데이터이므로 건물, 나무, 차량과 같은 개별 객체를 자동으로 분리하기 어렵습니다. 수동 주석 작업은 시간이 많이 걸리고 오류가 발생하기 쉽습니다. 이 패키지는 3D 포인트 클라우드를 2D 이미지로 변환하고, Meta의 강력한 SAM 3 세그멘테이션 모델을 실행한 다음, 감지된 객체 마스크를 원래 포인트에 매핑하여 각 포인트에 인스턴스 ID를 할당함으로써 이 작업을 자동화합니다.
작동 방식
이 패키지는 탑다운 뷰 또는 사용자 정의 핀홀 카메라를 사용하여 포인트 클라우드를 2D 이미지로 투영합니다. 그런 다음 해당 이미지에서 SAM 3를 실행하여 객체를 찾습니다. 사용자는 모델이 모든 마스크를 자동으로 감지하게 하거나, 텍스트 프롬프트(예: "building") 및/또는 박스 프롬프트(긍정 및 부정 예시)를 사용하여 가이드할 수 있습니다. 세그멘테이션 후 이미지의 라벨이 포인트 클라우드로 전송되어 각 포인트에 인스턴스 ID가 할당됩니다. 넓은 영역의 경우, 먼저 지면 필터링을 적용하여 지면 포인트를 제거할 수 있으며, 이전에 저장된 라벨 래스터를 재사용하여 모델을 다시 실행하지 않을 수도 있습니다.
대상 사용자
각 포인트를 수동으로 라벨링하지 않고 객체 인스턴스를 추출해야 하는 항공 LiDAR 데이터를 다루는 연구원, 측량사 및 개발자. 도시 매핑, 임업 및 3D 도시 모델링에 특히 유용합니다. 사용자는 Python 3.10 이상, CUDA GPU(SAM 3 추론에 권장), 그리고 Hugging Face를 통한 Meta의 게이트된 SAM 3 모델에 대한 액세스 권한(토큰 필요)이 있어야 합니다.
주요 특징
- 3D 포인트 클라우드에 맞게 조정된 최첨단 세그멘테이션 모델인 Meta의 SAM 3 사용.
- 자동 마스크 생성, 텍스트 프롬프트 및 박스 프롬프트 지원.
- 포인트 클라우드를 탑뷰 또는 사용자 정의 핀홀 카메라 이미지로 투영.
- 추론을 다시 실행하지 않고 저장된 라벨 래스터를 새로운 포인트 클라우드에 적용 가능.
- 선택적 지면 필터링 (CSF) 및 인스턴스 ID가 포함된 LAS/LAZ 출력.
- GPU를 사용한 쉬운 배포를 위한 Docker 지원 포함.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트