Interactive Segmentation
인터랙티브 세그멘테이션이 휴먼 인 더 루프 프롬프트를 사용하여 객체를 분리하는 방법을 알아봅니다. Ultralytics YOLO26 및 Ultralytics Platform을 작업에 사용하는 방법을 살펴봅니다.
인터랙티브 세그멘테이션은 인간 사용자가 클릭, 바운딩 박스 또는 텍스트 프롬프트와 같은 연속적이거나 단일 입력을 제공하여 이미지 내 특정 객체를 분리하도록 AI 모델을 안내하는 컴퓨터 비전의 고도로 협업적인 접근 방식입니다. 완전 자동화된 방법과 달리, 이 휴먼 인 더 루프 기법을 사용하면 사용자가 세그멘테이션해야 할 대상을 정확히 지정할 수 있으므로, 모호한 시각 데이터, 겹쳐 있는 객체 또는 이전에 보지 못한 클래스를 다룰 때 특히 유용합니다. 지난 몇 년 동안 기반 모델이 도입되면서 이 프로세스의 속도와 정확도가 크게 향상되었으며, 데이터 어노테이션과 정밀 이미징에 필수적인 도구로 자리 잡았습니다.
인터랙티브 세그멘테이션 작동 방식#
이 워크플로의 핵심은 프롬프트 기반 개념 세그멘테이션에 있으며, 여기서 모델은 사용자의 안내를 해석하여 픽셀 단위로 정확한 마스크를 생성합니다. 사용자는 선택하려는 전경 객체에 "positive" 클릭을 하고, 제외하려는 배경 영역에 "negative" 클릭을 할 수 있습니다. Segment Anything Model (SAM)과 그 후속 모델인 Meta SAM 3 같은 고급 모델은 다양한 제스처 유형 [1], 바운딩 박스, 심지어 텍스트 설명까지 입력받아 시각적 검색을 정교화합니다. 모델은 이러한 프롬프트를 기반으로 최적의 경계를 계산하며, 사용자는 원하는 정확도에 도달할 때까지 추가 클릭으로 마스크를 반복적으로 보정할 수 있습니다.
실제 적용 사례#
인터랙티브 세그멘테이션은 인간의 전문성과 AI의 효율성을 결합하여 다양한 산업의 워크플로를 혁신하고 있습니다.
- 의료 이미징: 헬스케어에서의 AI 분야에서 의사와 영상의학 전문의는 인터랙티브 도구를 사용하여 MRI 및 CT 스캔에서 종양, 병변 또는 특정 장기를 분리합니다. 의료 이미지의 공간 모델링에 관한 연구 [2]는 인터랙티브 클릭을 통해 의료 전문가가 AI 예측을 신속하게 수정할 수 있으며, 환자 진단에 필요한 엄격한 정밀도를 확보할 수 있음을 보여줍니다.
- 지리공간 및 위성 매핑: 도시 계획가와 환경 과학자는 인터랙티브 모델을 사용하여 GIS 특징 추출을 가속화합니다 [3]. 복잡한 해안선, 농업 경계 또는 새로운 인프라를 수동으로 추적하는 대신, 분석가는 몇 번의 전략적인 클릭만으로 정확한 지리적 폴리곤을 즉시 생성할 수 있습니다.
- 산업 결함 탐지: 제조 분야의 AI를 활용하면 품질 관리 엔지니어가 인터랙티브 프롬프트를 사용하여 생산 라인의 미세한 결함을 강조하고, 전체 모델을 재학습하지 않고도 새로운 유형의 결함에 맞게 시스템을 동적으로 조정할 수 있습니다.
인터랙티브 세그멘테이션과 인스턴스 세그멘테이션 비교#
두 개념 모두 픽셀 수준에서 객체를 분리하지만, 운영 목적은 서로 다릅니다. 인스턴스 세그멘테이션은 일반적으로 완전 자동화된 프로세스로, Ultralytics YOLO26과 같은 모델이 사용자 개입 없이 사전 정의된 클래스(예: "자동차", "사람", "개")를 감지하고 윤곽을 표시합니다. 이 작동 방식에 대한 자세한 내용은 인스턴스 세그멘테이션 가이드에서 확인할 수 있습니다.
반대로 인터랙티브 세그멘테이션은 사전 정의된 클래스에 엄격하게 의존하지 않습니다. 클래스에 구애받지 않는 방식이므로 사용자가 가리키는 대상을 무엇이든 세그멘테이션할 수 있으며, 새로운 객체를 신속하게 어노테이션하고 Ultralytics Platform과 같은 도구를 사용하여 커스텀 데이터셋에 추가해야 하는 액티브 러닝 파이프라인에 적합합니다.
Ultralytics를 사용한 예제#
PyTorch와 ultralytics Python 패키지를 사용하면 자체 프로젝트에 인터랙티브 세그멘테이션을 쉽게 구현할 수 있습니다. 이 예제에서는 바운딩 박스 프롬프트를 제공하여 특정 객체를 세그멘테이션하기 위해 FastSAM을 사용합니다.
from ultralytics import FastSAM
# Load a pretrained FastSAM model
model = FastSAM("FastSAM-s.pt")
# Perform interactive segmentation using a bounding box prompt [x1, y1, x2, y2]
results = model("path/to/image.jpg", bboxes=[100, 100, 300, 300])
# Display the segmented result on screen
results[0].show()이 코드 조각은 간단한 공간 프롬프트가 모델을 직접 안내하여 관심 영역을 분리하는 방식을 보여주며, 최소한의 코드로 복잡한 이미지 세그멘테이션 작업을 간소화합니다.









