Instance Segmentation
인스턴스 세그멘테이션이 픽셀 수준의 객체 검출을 가능하게 하는 방법을 알아봅니다. Ultralytics YOLO26을 사용하여 고속 실시간 마스크 생성 등을 수행하는 방법을 살펴봅니다.
인스턴스 세그멘테이션은 컴퓨터 비전 (CV) 분야의 정교한 기술로, 이미지 내 각 관심 객체를 픽셀 수준에서 식별하고 윤곽을 구분합니다. 표준 객체 탐지가 직사각형 바운딩 박스를 사용해 항목의 위치를 파악하는 반면, 인스턴스 세그멘테이션은 탐지된 각 객체에 대해 정밀한 마스크를 생성하여 분석을 한 단계 더 발전시킵니다. 이 기능을 통해 인공지능 (AI) 모델은 같은 클래스에 속한 개별 객체를 구분할 수 있습니다. 예를 들어 서로 겹쳐 있는 두 사람을 분리할 수 있어, 단순한 분류 방법보다 시각적 장면을 더욱 풍부하고 상세하게 이해할 수 있습니다.
세그멘테이션 유형 구분#
인스턴스 세그멘테이션의 유용성을 충분히 이해하려면 관련된 다른 이미지 처리 작업과의 차이를 구분하는 것이 도움이 됩니다. 각 방법은 애플리케이션 요구 사항에 따라 서로 다른 세분화 수준을 제공합니다.
- 시맨틱 세그멘테이션: 이 접근 방식은 이미지의 모든 픽셀을 "도로", "하늘", "자동차"와 같은 카테고리로 분류합니다. 그러나 같은 카테고리에 속한 서로 다른 객체는 구분하지 않습니다. 자동차 세 대가 나란히 주차되어 있다면 시맨틱 세그멘테이션은 이를 하나의 "자동차" 영역으로 간주합니다.
- 인스턴스 세그멘테이션: 이 방법은 각 객체를 고유한 개체로 처리합니다. 개별 인스턴스를 탐지하고 각 인스턴스의 픽셀에 고유한 라벨을 할당합니다. 주차된 자동차의 예에서는 인스턴스 세그멘테이션이 세 개의 서로 다른 마스크를 생성하여 "자동차 A", "자동차 B", "자동차 C"를 각각 식별합니다.
- 파놉틱 세그멘테이션: 시맨틱 세그멘테이션의 배경 라벨링과 인스턴스 세그멘테이션의 개수 파악이 가능한 객체 식별을 결합한 하이브리드 접근 방식입니다.
픽셀 수준 분석의 작동 원리#
최신 인스턴스 세그멘테이션 모델은 일반적으로 고급 딥러닝 (DL) 아키텍처, 특히 합성곱 신경망 (CNNs)에 의존합니다. 이러한 네트워크는 이미지에서 특징을 추출하여 객체의 클래스와 공간적 윤곽을 모두 예측합니다. 과거에는 Mask R-CNN과 같은 2단계 아키텍처가 표준이었으며, 먼저 관심 영역을 제안한 다음 이를 마스크로 정제했습니다.
그러나 최근의 발전으로 YOLO26과 같은 단일 단계 디텍터가 등장했으며, 이 디텍터는 탐지와 세그멘테이션을 동시에 수행합니다. 이 "엔드 투 엔드" 접근 방식은 실시간 추론 속도를 크게 향상시켜, 일반 소비자용 하드웨어에서 라이브 비디오 스트림에 고정밀 세그멘테이션을 적용할 수 있게 합니다.
실제 적용 사례#
인스턴스 세그멘테이션이 제공하는 정밀한 경계는 의사 결정을 위해 객체의 정확한 형태와 위치를 이해해야 하는 산업에서 매우 중요합니다.
- 헬스케어 분야의 AI: 의료 진단에서는 종양이나 병변의 정확한 크기와 형태를 식별하는 것이 매우 중요합니다. 인스턴스 세그멘테이션을 사용하면 모델이 MRI 스캔에서 이상 부위를 높은 정밀도로 윤곽화할 수 있어, 영상의학 전문의의 치료 계획 수립과 질병 진행 모니터링을 지원합니다.
- 자율주행 차량: 자율주행 자동차는 복잡한 환경을 주행하기 위해 세그멘테이션에 의존합니다. Cityscapes와 같은 데이터셋을 활용하면 차량이 주행 가능한 표면을 식별하고, 차선 표시를 인식하며, 혼잡한 횡단보도에서 개별 보행자를 구분하여 안전을 확보할 수 있습니다.
- 농업 분야의 AI: 정밀 농업에서는 작물의 상태를 모니터링하기 위해 세그멘테이션을 사용합니다. 비전 시스템을 탑재한 로봇은 자동 수확을 위해 개별 과일을 식별하거나 표적 제초제 살포를 위해 특정 잡초를 탐지하여 화학물질 사용량을 줄이고 수확량을 최적화할 수 있습니다.
Python으로 세그멘테이션 구현하기#
개발자는 ultralytics 라이브러리를 사용하여 인스턴스 세그멘테이션을 쉽게 구현할 수 있습니다. 다음 예제에서는 사전 학습된 YOLO26 모델을 로드하고 이미지에 대한 세그멘테이션 마스크를 생성하는 방법을 보여 줍니다.
from ultralytics import YOLO
# Load a pre-trained YOLO26 instance segmentation model
# The 'n' suffix denotes the nano version, optimized for speed
model = YOLO("yolo26n-seg.pt")
# Run inference on an image
# This predicts classes, bounding boxes, and masks
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
# Displays the image with overlaid segmentation masks
results[0].show()과제 및 모델 학습#
인스턴스 세그멘테이션은 강력하지만 단순한 바운딩 박스 탐지보다 계산 집약적입니다. 픽셀 단위로 정확한 마스크를 생성하려면 상당한 GPU 리소스와 정밀한 데이터 어노테이션이 필요합니다. 이러한 작업을 위한 데이터 어노테이션에는 모든 객체 주위에 촘촘한 폴리곤을 그리는 과정이 포함되므로 시간이 오래 걸릴 수 있습니다.
이 프로세스를 간소화하기 위해 팀에서는 데이터셋 관리, 자동 어노테이션, 클라우드 기반 학습 기능을 제공하는 Ultralytics Platform과 같은 도구를 자주 사용합니다. 이를 통해 개발자는 특정 산업 부품이나 생물학적 표본과 같은 사용자 지정 데이터로 모델을 파인튜닝하고, ONNX 또는 TensorRT와 같은 최적화된 형식을 사용하여 엣지 AI 디바이스에 모델을 효율적으로 배포할 수 있습니다.









