Semantic Mapping
Ultralytics YOLO26을 사용하여 더 스마트한 로봇 내비게이션을 위해 시맨틱 분할, 깊이, 지역화, 센서 융합이 시맨틱 매핑과 어떻게 결합되는지 알아보세요.
시맨틱 맵핑(Semantic mapping)은 환경의 공간적 표현을 구축하고 도로, 벽, 출입구, 사람, 선반, 식물과 같은 의미 있는 클래스 레이블을 그 안의 위치에 부여하는 과정입니다. AI와 로보틱스에서 시맨틱 맵은 "무엇인가 어디에 있는가?"와 "그것은 무엇인가?"라는 질문에 모두 답합니다. 장면을 점유 공간과 자유 공간으로만 나타내는 대신, 내비게이션, 계획, 상호작용 및 장면 이해를 지원하는 맥락 정보를 제공합니다.
시맨틱 맵핑의 작동 방식#
시맨틱 맵핑 시스템은 일반적으로 인지, 기하학, 지역화(localization), 시간적 융합(temporal fusion)을 결합합니다. 먼저 시맨틱 분할 모델이 모든 이미지 픽셀을 분류합니다. 예를 들어 "도로"로 레이블이 지정된 모든 픽셀은 도로 영역을 형성하고, "자동차"로 레이블이 지정된 픽셀은 차량 영역을 식별합니다. 로보틱스에서의 이미지 분할에 관한 NVIDIA 소개는 이러한 픽셀별 레이블이 로봇 인지를 어떻게 지원하는지 보여줍니다.
픽셀 레이블만으로는 2차원 카메라 이미지에 묶여 있습니다. 시스템은 픽셀을 물리적 위치와 연결하기 위해 LiDAR, 스테레오 카메라 또는 깊이 추정에서 얻은 기하학 정보가 필요합니다. Open3D RGB-D 이미지 워크플로는 레지스트레이션된 컬러 및 깊이 이미지가 어떻게 3D 포인트 클라우드를 생성할 수 있는지 보여줍니다.
정확한 투영은 카메라 내부 및 외부 파라미터에도 의존합니다. OpenCV 카메라 캘리브레이션 문서는 이미지 픽셀을 3D 포인트와 연관시키는 데 사용되는 파라미터를 설명하며, ROS CameraInfo 메시지 정의는 로봇 시스템에서 이 캘리브레이션 정보를 표준화합니다.
마지막으로, 센서 융합은 시간에 따른 관측값을 결합합니다. 로봇 포즈와 좌표 변환은 각 레이블이 지정된 관측값을 공유 맵 프레임에 배치합니다. ROS tf2 좌표 변환은 이러한 관계를 유지하기 위한 공통 메커니즘을 제공합니다.
관련 개념 및 주요 차이점#
시맨틱 맵핑은 여러 컴퓨터 비전 및 로보틱스 개념과 중첩되지만, 각각 다른 문제를 해결합니다.
- **비주얼 SLAM**은 기하학적 맵을 구축하는 동안 카메라나 로봇의 위치를 추정합니다. 시맨틱 맵핑은 해당 기하학에 클래스 의미를 추가합니다. 따라서 시스템은 포즈 추정을 위해 SLAM을 사용하고 레이블 지정을 위해 시맨틱 인지를 사용할 수 있습니다.
- **점유 맵핑(Occupancy mapping)**은 셀이 비어 있는지, 점유되어 있는지, 알 수 없는지 설명합니다. Nav2 맵핑 및 지역화 가이드는 점유 격자가 경로 계획을 어떻게 지원하는지 설명합니다. 시맨틱 맵은 추가로 벽을 사람과 구분하거나, 주행 가능한 도로를 보도와 구분할 수 있습니다.
- **인스턴스 분할**은 두 대의 서로 다른 자동차와 같은 개별 객체를 분리합니다. 시맨틱 분할은 두 자동차를 하나의 픽셀 클래스로 그룹화합니다. 시맨틱 맵은 객체 ID를 유지해야 하는지 여부에 따라 두 표현 중 하나를 사용할 수 있습니다.
- 시맨틱 검색은 개념적 유사성에 따라 정보를 구성하는 반면, 로보틱스에서의 시맨틱 맵핑은 의미를 물리적 위치와 연결합니다.
실제 애플리케이션 사례#
자율 내비게이션: 배송 로봇은 바닥을 주행 가능 영역으로, 벽과 연석을 장애물로, 사람을 동적 위험 요소로 레이블을 지정할 수 있습니다. 이러한 레이블은 내비게이션 비용으로 변환되어 플래너가 모든 가시 영역을 동일하게 취급하는 대신 안전한 표면을 선호하도록 할 수 있습니다. Nav2 시맨틱 분할 내비게이션 튜토리얼은 클래스 마스크와 레지스트레이션된 포인트 클라우드가 로봇의 코스트맵을 어떻게 업데이트할 수 있는지 보여줍니다.
도심 주행: 자율주행차는 도로, 보도, 건물, 식물, 보행자 및 차량 예측을 영구적인 월드 맵에 투영할 수 있습니다. 이는 시스템이 차선 경계를 이해하고, 주행 불가능한 구역을 인식하며, 취약한 도로 사용자가 나타날 수 있는 위치를 추론하는 데 도움이 됩니다. 공식 Cityscapes 어반 신(urban-scene) 데이터셋은 이러한 유형의 장면 이해를 개발하기 위한 밀도 있게 레이블이 지정된 거리 이미지를 제공합니다.
Ultralytics YOLO를 활용한 시맨틱 인지#
다음 Ultralytics 시맨틱 분할 워크플로는 YOLO26을 사용하여 고밀도 클래스 맵을 생성합니다. 해당 출력은 나중에 맵핑 파이프라인에 의해 2D 격자 또는 3D 월드 좌표계로 투영될 수 있습니다.
from ultralytics import YOLO
# Load a pretrained semantic segmentation model
model = YOLO("yolo26n-sem.pt")
# Predict a per-pixel class map
results = model("https://ultralytics.com/images/bus.jpg")
# Select the first result and inspect its map dimensions
result = results[0]
class_map = result.semantic_mask.data
print(class_map.shape)
result.save(filename="semantic_scene.jpg")semantic_mask에는 이미지 픽셀당 하나의 클래스 ID가 포함됩니다. 이는 시맨틱 인지 레이어를 제공하며, 영구적인 공간 맵을 구축하려면 여전히 깊이, 캘리브레이션, 지역화 및 시간적 융합이 필요합니다. 사용자 정의 픽셀 수준 데이터셋은 Ultralytics 플랫폼 어노테이션 도구를 사용하여 레이블을 지정하고 관리할 수 있습니다.
실용적인 설계 고려사항#
신뢰할 수 있는 시맨틱 맵을 구축하려면 일관된 클래스 정의, 정확한 센서 캘리브레이션, 동기화된 타임스탬프, 그리고 대표성 있는 학습 데이터가 필요합니다. 포즈 드리프트(pose drift)로 인해 올바른 레이블이 잘못된 위치에 배치될 수 있으며, 분할 오류로 인해 장애물이 주행 가능한 공간으로 표시될 수 있습니다. 또한 동적 객체는 주차된 차량이나 보행자가 맵에 영구적으로 박혀 있지 않도록 만료 또는 추적 규칙이 필요합니다.
팀은 인지 정확도와 공간 일관성을 모두 검증하고, 까다로운 경계와 작은 구조물을 테스트하며, 가능한 경우 예측 신뢰도를 유지하고, 상충되는 관측값이 어떻게 업데이트되는지 정의해야 합니다. 안전이 중요한 내비게이션의 경우, 시맨틱 정보는 기하학적 장애물 감지 및 충돌 검사를 자동으로 대체하는 것이 아니라 보완해야 합니다.






