Semantic Segmentation
시맨틱 분할은 모든 픽셀에 클래스를 지정하고 하나의 조밀한 클래스 맵을 반환합니다. 모델 작동 방식, 인스턴스 분할과의 차이 및 코드를 살펴봅니다.
시맨틱 분할은 이미지의 모든 픽셀에 클래스 레이블을 지정하는 컴퓨터 비전 작업입니다. 출력은 입력과 높이 및 너비가 같은 조밀한 클래스 맵으로, 각 값은 도로, 인도, 건물, 하늘, 사람과 같은 클래스 ID입니다. 이미지 분류가 이미지당 레이블 하나를 지정하고 객체 탐지가 객체마다 박스를 그리는 것과 달리, 시맨틱 분할은 셀 수 있는 객체가 없는 풀과 하늘 같은 형태가 일정하지 않은 배경 영역을 포함해 장면 전체를 영역별로 설명합니다.
시맨틱 세그멘테이션의 작동 방식#
시맨틱 분할 모델은 픽셀 단위 분류기입니다. 합성곱 신경망(CNN) 또는 비전 Transformer는 클래스마다 점수 맵 하나를 출력하며, 보통 해상도가 낮은 상태로 출력합니다. 점수 맵을 이미지 크기로 업샘플링한 뒤 각 픽셀에 가장 높은 점수의 클래스를 할당합니다. 학습 시에는 레이블이 지정된 마스크를 사용해 모든 픽셀의 예측값을 교차 엔트로피로 비교하며, 보통 255인 무시 값으로 표시된 픽셀은 손실 계산에서 제외합니다.
핵심적인 어려움은 영역을 식별하려면 넓은 수용 영역과 강한 다운샘플링이 필요하지만, 경계를 정확히 그리려면 세밀한 공간 정보가 필요하다는 점입니다. 완전 합성곱 네트워크(FCN)는 2014년 분류 네트워크를 조밀한 예측기로 처음 전환했습니다. 이후 U-Net과 같은 인코더-디코더 구조는 스킵 연결을 통해 인코더의 고해상도 특징을 디코더에 전달해 경계를 복원했고, DeepLab은 팽창(아트러스) 합성곱을 사용해 특징 맵을 축소하지 않고 문맥 정보를 넓혔습니다. 실시간 모델은 다음과 같이 거친 문맥 정보와 세밀한 정보를 결합합니다:
-sem 접미사로 표시되는 Ultralytics YOLO26 시맨틱 분할 모델은 이 방식을 따릅니다. 이미 문맥 정보가 융합된 1/8 크기 넥 특징에서 픽셀을 분류한 다음 로짓을 8배 업샘플링해 입력 크기로 맞춥니다. 모델은 19개 Cityscapes 클래스 또는 150개 ADE20K 클래스로 사전 학습되며, 마스크 이미지 또는 학습 중 마스크로 변환되는 YOLO 폴리곤 레이블을 사용해 학습합니다.
from ultralytics import YOLO
# Load a YOLO26 semantic segmentation model trained on the 19 Cityscapes classes
model = YOLO("yolo26n-sem.pt")
# Predict one class ID for every pixel of a street image
results = model("https://ultralytics.com/images/bus.jpg")
class_map = results[0].semantic_mask.data
# Measure how much of the image each class covers
ids, counts = class_map.unique(return_counts=True)
for class_id, count in zip(ids.tolist(), counts.tolist()):
print(f"{results[0].names[class_id]}: {count / class_map.numel():.1%}")출력에는 이미지에 나타난 각 클래스와 이미지에서 차지하는 비율이 나열됩니다. 사진 속 모든 사람은 하나의 사람 비율에 포함됩니다. 클래스 맵은 픽셀마다 클래스를 저장할 뿐, 각 픽셀이 어떤 객체에 속하는지는 저장하지 않기 때문입니다.
시맨틱 분할, 인스턴스 분할, 파노픽 분할 비교#
시맨틱 분할은 세 가지 이미지 분할 작업 중 하나입니다:
- 인스턴스 분할: 셀 수 있는 객체마다 고유한 마스크와 ID를 지정하므로, 자동차 세 대는 자동차 1, 자동차 2, 자동차 3으로 구분하며 배경 픽셀에는 레이블을 지정하지 않습니다.
- 파노픽 분할: 시맨틱 분할처럼 모든 픽셀에 클래스를 지정하고, 셀 수 있는 객체의 픽셀에는 인스턴스 ID를 추가합니다.
시맨틱 분할은 주행 가능한 도로 영역이나 토지 피복처럼 객체 수보다 영역이 중요한 장면에 적합합니다.
시맨틱 세그멘테이션과 인스턴스 세그멘테이션 중 선택하는 데 도움이 필요하면 시맨틱 세그멘테이션과 인스턴스 세그멘테이션 비교 가이드를 참조하세요. Ultralytics Academy 강의 시맨틱 세그멘테이션: 모든 픽셀에 레이블 지정하기에서는 해당 작업을 위한 데이터 레이블링과 모델 학습 과정을 안내합니다.
실제 적용 사례#
- 자율주행차: 자율주행 시스템은 카메라 프레임을 도로, 인도, 차선 표시, 차량, 보행자로 분할해 주행 가능 공간과 장애물을 파악합니다.
- 의료 영상: 모델은 CT 및 MRI 스캔에서 장기, 종양, 병변의 윤곽을 표시해 의료진이 부피를 측정하고 치료를 계획할 수 있도록 합니다. U-Net은 원래 생물의학 이미지용으로 설계되었습니다.
- 위성 영상 분석: 토지 피복 지도는 모든 픽셀을 물, 숲, 농경지 또는 시가지로 분류해 삼림 벌채와 도시 성장을 추적합니다.
- 농업: 농장 로봇과 드론은 픽셀을 작물, 잡초, 토양으로 분류해 살포기가 잡초에만 약제를 살포하도록 합니다.
벤치마크 및 지표#
모델은 평균 합집합 대비 교집합(IoU), 즉 mIoU로 평가합니다. 클래스별로 예측 픽셀과 실제 픽셀의 중첩 정도를 계산한 뒤 평균을 내므로, 기둥이나 교통 표지판처럼 드문 클래스도 도로와 하늘만큼 중요하게 반영됩니다. ADE20K는 일반적인 장면 파싱을 위해 실내외 클래스 150개를 포함하며, 가장 잘 알려진 주행 벤치마크인 Cityscapes는 50개 도시의 거리 이미지 5,000개와 세밀한 픽셀 단위 레이블을 포함하고, 평가 클래스 19개에 대한 mIoU로 순위를 매깁니다.










