Semantic Mapping
semantic mapping이 semantic segmentation, depth, localization, sensor fusion을 결합하여 Ultralytics YOLO26을 활용한 더 스마트한 로보틱스 내비게이션을 구현하는 방식을 알아봅니다.
시맨틱 매핑은 환경의 공간적 표현을 구축하고 도로, 벽, 출입구, 사람, 선반 또는 식생과 같은 의미 있는 클래스 라벨을 환경 내 위치에 연결하는 과정입니다. AI와 로보틱스에서 시맨틱 맵은 “무언가가 어디에 있는가?”와 “그것이 무엇인가?”라는 두 가지 질문에 답합니다. 장면을 점유 공간과 자유 공간으로만 표현하는 대신, 내비게이션, 계획, 상호작용 및 장면 이해를 지원하는 맥락 정보를 제공합니다.
시맨틱 매핑 작동 방식#
시맨틱 매핑 시스템은 일반적으로 인식, 기하학, 위치 추정 및 시간적 융합을 결합합니다. 먼저 시맨틱 세그멘테이션 모델이 모든 이미지 픽셀을 분류합니다. 예를 들어 “도로”로 라벨이 지정된 모든 픽셀은 도로 영역을 형성하고, “자동차”로 라벨이 지정된 픽셀은 차량 영역을 식별합니다. 로보틱스의 이미지 세그멘테이션에 대한 NVIDIA 소개에서는 이러한 픽셀 단위 라벨이 로봇 인식을 지원하는 방식을 설명합니다.
픽셀 라벨만으로는 2차원 카메라 이미지에 계속 묶여 있습니다. 시스템은 픽셀을 물리적 위치와 연결하기 위해 LiDAR, 스테레오 카메라 또는 깊이 추정을 통한 기하학 정보가 필요합니다. Open3D RGB-D 이미지 워크플로에서는 정합된 컬러 이미지와 깊이 이미지로 3D 포인트 클라우드를 생성하는 방법을 보여줍니다.
정확한 투영에는 카메라 내부 파라미터와 외부 파라미터도 필요합니다. OpenCV 카메라 캘리브레이션 문서에서는 이미지 픽셀과 3D 포인트를 연결하는 데 사용되는 파라미터를 설명하며, ROS CameraInfo 메시지 정의는 로봇 시스템에서 이러한 캘리브레이션 정보를 표준화합니다.
마지막으로 센서 융합은 시간에 따른 관측값을 결합합니다. 로봇 포즈와 좌표 변환은 라벨이 지정된 각 관측값을 공유 맵 프레임에 배치합니다. ROS tf2 좌표 변환은 이러한 관계를 유지하기 위한 일반적인 메커니즘을 제공합니다.
관련 개념 및 주요 차이점#
시맨틱 매핑은 여러 컴퓨터 비전 및 로보틱스 개념과 겹치지만, 각각 해결하는 문제는 다릅니다.
- **Visual SLAM**은 기하학적 맵을 구축하면서 카메라 또는 로봇의 위치를 추정합니다. 시맨틱 매핑은 이 기하 정보에 클래스 의미를 추가합니다. 따라서 시스템은 포즈 추정에 SLAM을 사용하고 라벨링에 시맨틱 인식을 사용할 수 있습니다.
- 점유 매핑은 셀이 비어 있는지, 점유되어 있는지 또는 미확인 상태인지를 나타냅니다. Nav2 매핑 및 위치 추정 가이드에서는 점유 그리드가 경로 계획을 지원하는 방식을 설명합니다. 시맨틱 맵은 벽과 사람을 구분하거나 주행 가능한 도로와 보도를 구분할 수도 있습니다.
- **인스턴스 세그멘테이션**은 서로 다른 두 대의 자동차와 같이 개별 객체를 구분합니다. 시맨틱 세그멘테이션은 두 자동차를 하나의 픽셀 클래스로 그룹화합니다. 객체의 동일성을 보존해야 하는지에 따라 시맨틱 맵은 두 표현 중 하나를 사용할 수 있습니다.
- 시맨틱 검색은 개념적 유사성에 따라 정보를 구성하는 반면, 로보틱스의 시맨틱 매핑은 의미를 물리적 위치와 연결합니다.
실제 적용 사례#
자율 내비게이션: 배송 로봇은 바닥을 주행 가능 영역으로, 벽과 연석을 장애물로, 사람을 동적 위험 요소로 라벨링할 수 있습니다. 이러한 라벨은 내비게이션 비용으로 변환할 수 있으므로 플래너는 눈에 보이는 모든 영역을 동일하게 처리하는 대신 안전한 표면을 선호합니다. Nav2 시맨틱 세그멘테이션 내비게이션 튜토리얼에서는 클래스 마스크와 정합된 포인트 클라우드가 로봇의 costmap을 업데이트하는 방법을 보여줍니다.
도시 주행: 자율주행 차량은 도로, 보도, 건물, 식생, 보행자 및 차량 예측 결과를 지속적인 월드 맵에 투영할 수 있습니다. 이를 통해 시스템은 차선 경계를 이해하고, 주행할 수 없는 영역을 인식하며, 취약한 도로 이용자가 나타날 수 있는 위치를 추론할 수 있습니다. 공식 Cityscapes 도시 장면 데이터셋은 이러한 유형의 장면 이해를 개발하기 위한 고밀도 라벨링 도로 이미지를 제공합니다.
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 Platform 어노테이션 도구를 사용하여 라벨링하고 관리할 수 있습니다.
실용적인 설계 고려 사항#
신뢰할 수 있는 시맨틱 맵을 구축하려면 일관된 클래스 정의, 정확한 센서 캘리브레이션, 동기화된 타임스탬프 및 대표성 있는 학습 데이터가 필요합니다. 포즈 드리프트로 인해 정확한 라벨이 잘못된 위치에 배치될 수 있으며, 세그멘테이션 오류로 인해 장애물이 주행 가능한 공간으로 표시될 수 있습니다. 또한 동적 객체에는 만료 또는 추적 규칙이 필요하므로 주차된 차량이나 보행자가 맵에 영구적으로 남지 않도록 해야 합니다.
팀은 인식 정확도와 공간적 일관성을 모두 검증하고, 까다로운 경계와 작은 구조물을 테스트하며, 가능한 경우 예측 신뢰도를 보존하고, 상충하는 관측값을 업데이트하는 방식을 정의해야 합니다. 안전이 중요한 내비게이션에서는 시맨틱 정보가 기하학적 장애물 감지 및 충돌 검사를 보완해야 하며, 이를 자동으로 대체해서는 안 됩니다.









