공간 매핑 모범 사례
Last updated: August 13, 2026
독립 실행형 ZEDfu 애플리케이션을 통해서도 사용할 수 있는 ZED SDK의 공간 매핑 모듈은 장면이나 객체를 3D 스캔할 수 있도록 합니다. 여러 시점에서 시간에 따라 이미지, 깊이 및 위치 추적 데이터를 통합하여 컬러 3D 모델(메시 또는 융합 포인트 클라우드)을 생성합니다.
모듈에 대한 전체 설명은 공간 매핑 문서를 참조하고, ZEDfu 도구에 대해서는 ZEDfu 문서를 참조하세요.
지원되는 카메라
공간 매핑을 사용하려면 ZED 2/2i, ZED 미니, ZED X, ZED X 미니 및 ZED X Nano와 같이 관성 센서(IMU)가 장착된 스테레오 카메라가 필요합니다.
다음 카메라는 지원되지 않습니다:
- 내장 IMU가 없는 기존 ZED(생산 중단됨);
- 단안 카메라인 ZED X One GS/4K/S 카메라. 단, Dual ZED X One 가상 스테레오 카메라 설정은 지원됩니다. ZEDfu에서는 로컬 스트리밍 입력을 사용하여 해당 데이터를 수신하세요.
스캔 시 권장 사항
- 천천히 부드럽게 움직이세요. 빠른 움직임은 모션 블러를 유발하며, 흐릿한 이미지는 위치 추적과 재구성된 3D 형상의 품질을 모두 저하시킵니다.
- 장면의 조명이 충분한지 확인하세요. 어두운 영역은 깊이 노이즈를 증가시키고 모델에 아티팩트와 잘못된 표면을 유발할 수 있습니다.
- 텍스처가 있는 장면을 선호하세요. 텍스처가 없고 균일한 표면(맨 벽, 유리 등)은 스테레오 매칭과 추적에 필요한 시각 정보를 거의 제공하지 않습니다. 신경 깊이 모드 덕분에 실내 스캔은 이제 이전 SDK 버전보다 훨씬 향상되었지만, 풍부한 텍스처는 여전히 결과를 개선합니다.
- 반사성 및 투명한 물체를 피하세요. 거울, 유리 및 반짝이는 표면은 유효하지 않은 깊이 측정값을 생성합니다.
- 표면과 적절한 거리를 유지하세요. 카메라 모델의 최소 깊이 범위보다 가까이 다가가지 말고, 거리가 멀어질수록 깊이 정확도가 감소한다는 점을 기억하세요. 이러한 이유로 매핑 범위는 20 m로 제한됩니다.
- 루프를 닫으세요. 방이나 물체를 스캔할 때 이전에 스캔한 영역을 다시 방문하도록 하세요. 이렇게 하면 위치 추적이 지도를 개선하는 데 도움이 됩니다. Area Memory를 활성화하면 SDK가 이전에 매핑된 영역을 인식하고 추적 일관성을 개선할 수 있습니다. VSLAM 매핑 튜토리얼을 참조하세요.
- 추적 상태를 확인하세요. ZEDfu에서 위치 추적 상태가
SEARCHING으로 전환되면, SDK가 위치를 다시 파악하고 지도 생성을 계속할 수 있도록 카메라를 이미 매핑된 영역 쪽으로 되돌리세요.
적절한 설정 선택
- 깊이 모드: ZEDfu에서는
NEURAL LIGHT(최고의 실시간 성능),NEURAL(품질과 성능 간의 적절한 균형),NEURAL PLUS(최고 품질, SVO 파일의 오프라인 처리에 권장) 중에서 선택할 수 있습니다. - 맵 유형: 스캔 후 필터링하고 텍스처를 적용할 수 있는 밀폐형 삼각형 세트를 생성하려면
MESH를 선택하고, 색상이 있는 융합 포인트 클라우드를 생성하려면POINT CLOUD를 선택합니다. 포인트 클라우드 형식은 각 포인트에 색상 정보가 첨부되므로 더 많은 메모리를 사용합니다. - 매핑 해상도: 해상도는 1cm에서 12cm 사이로 설정할 수 있습니다. 해상도가 높을수록 더 세밀한 맵을 생성하지만 더 많은 메모리와 처리 성능이 필요하고 맵 업데이트가 느려집니다. 애플리케이션에 맞는 가장 낮은 해상도를 사용하십시오. API는
HIGH(2cm, 소규모 영역),MEDIUM(5cm, 균형 잡힌 설정),LOW(8cm, 대규모 영역 또는 충돌 메시) 프리셋을 제공합니다. - 매핑 범위: 맵에 통합되는 깊이 데이터의 범위는 2m에서 20m 사이로 설정할 수 있습니다. 범위를 늘리면 정확도가 떨어지는 대신 대규모 공간을 빠르게 캡처할 수 있으며, 범위를 줄이면 성능이 향상됩니다. API는
NEAR(3.5m),MEDIUM(5m),FAR(10m) 프리셋을 제공합니다. - 메시 필터링: 캡처 후 필터링은 기하학적 특징을 유지하면서 폴리곤 수를 줄입니다.
LOW는 구멍을 메우고 이상치를 제거하며,MEDIUM과HIGH는 메시 데시메이션도 수행합니다. 다양한 프리셋을 시도하여 애플리케이션에 가장 적합한 설정을 찾으십시오. - 메시 텍스처링: 스캔하기 전에 텍스처 옵션을 활성화하면 왼쪽 카메라 이미지의 일부를 기록하고 이를 메시 표면에 투영합니다. 이렇게 하면 모델의 시각적 품질이 향상되지만 더 많은 처리 성능과 메모리가 필요합니다. 텍스처링은 메시에서만 사용할 수 있습니다.
실시간 스캔 또는 오프라인 처리
ZEDfu를 포함한 공간 매핑 모듈은 세 가지 유형의 입력을 지원합니다:
- 라이브 카메라: 연결된 ZED 스테레오 카메라에서 실시간으로 캡처된 데이터;
- 로컬 스트리밍: ZED 로컬 스트리밍 서버를 통해 원격 카메라에서 수신한 데이터;
- SVO 파일: 카메라로 녹화한 후 나중에 처리한 데이터. 녹화 및 오프라인 처리에 대해 자세히 알아보기.
ZEDfu에서 SVO 파일을 처리할 때는 OFFLINE 모드를 활성화하는 것이 좋습니다. 전체 SVO 파일이 맵 생성 시작 전에 전처리되므로 처리 시간이 더 오래 걸리는 대신 더 높은 품질의 맵이 생성됩니다. NEURAL PLUS 깊이 모드와 함께 사용하면 최상의 3D 재구성 품질을 제공하는 워크플로입니다.
참고: ZEDfu는 생성된 맵을 사용자의 홈 디렉터리에 있는 ZED/Meshes 폴더에 저장합니다. 생성된 맵의 전체 경로는 생성이 완료되면 상태 표시줄에 표시됩니다.
애플리케이션에서 공간 매핑 API 사용하기
ZEDfu에서 사용할 수 있는 모든 기능은 ZED SDK를 통해 자체 애플리케이션에 통합할 수 있습니다. 일반적인 워크플로는 다음과 같습니다:
- 카메라를 열고
enablePositionalTracking()을 사용하여 위치 추적을 활성화합니다; SpatialMappingParameters(해상도, 범위, 맵 유형, 텍스처)를 구성하여enableSpatialMapping()으로 모듈을 활성화합니다;- 루프에서
grab()을 호출합니다. 모듈은 백그라운드에서 이미지, 깊이 및 포즈를 수집합니다; extractWholeSpatialMap()을 사용하여 맵을 한 번 검색하거나, 비동기requestSpatialMapAsync()/getSpatialMapRequestStatusAsync()/retrieveSpatialMapAsync()함수를 사용하여 지속적으로 검색합니다;- 선택적으로
Mesh::filter()및Mesh::applyTexture()를 사용하여 메시를 개선한 다음save("mesh.obj")로 저장합니다; getSpatialMappingState()로 모듈을 모니터링합니다.FPS_TOO_LOW는 시스템이 일관된 매핑에 필요한 프레임 속도에 도달할 수 없음을 나타내며,NOT_ENOUGH_MEMORY는 메모리 제한에 도달했음을 나타냅니다. 두 경우 모두 모듈은 새 데이터 통합을 중지하지만 3D 모델은 계속 추출할 수 있습니다.
공간 맵을 요청하고 검색하는 작업은 리소스를 많이 사용하므로 성능을 향상하려면 새 공간 맵을 너무 자주 요청하지 마세요.
자세한 내용은 다음을 참조하세요: