Interactive Segmentation
인터랙티브 세그멘테이션은 사용자의 클릭, 박스, 낙서를 객체 마스크로 변환하고 수정 클릭을 통해 마스크를 정교화합니다. GrabCut부터 Meta의 SAM까지 다룹니다.
인터랙티브 세그멘테이션은 클릭, 바운딩 박스, 낙서와 같이 사용자가 제공하는 몇 가지 힌트로 객체의 픽셀 단위 마스크를 생성하고, 사용자가 수정 사항을 추가할 때마다 마스크를 정교화합니다. 긍정 클릭은 객체에 속하는 점을 표시하고 부정 클릭은 속하지 않는 점을 표시하므로, 각 반복 후 사용자는 남아 있는 가장 큰 오류를 가리키기만 하면 됩니다. 이 방식은 클래스에 종속되지 않습니다. 모델은 학습 중 한 번도 보지 못한 객체를 포함해 사용자가 지정한 모든 대상을 세그멘테이션하므로 데이터 어노테이션, 사진 편집, 의료 스캔의 구조 경계 지정에 표준 도구로 활용됩니다. 이는 사람 참여형 이미지 세그멘테이션 방식입니다.
클릭 반복 과정의 작동 방식#
모델은 지금까지의 모든 클릭과 함께 이미지를 입력받으며, 많은 모델은 이전 마스크도 입력받은 다음 새로운 마스크를 예측합니다. 마스크의 품질이 충분해질 때까지 이 과정을 반복합니다.
벤치마크는 다음과 같은 사용자를 시뮬레이션합니다. 새로 클릭할 때마다 가장 큰 오차 영역의 중심을 클릭하며, 점수는 정답과 교집합 대 합집합이 85% 또는 90%에 도달하는 데 필요한 클릭 수입니다. 이 점수는 GrabCut, Berkeley, DAVIS 등의 데이터셋에서 NoC@85 및 NoC@90으로 보고됩니다.
Ultralytics 패키지는 점 프롬프트를 사용해 Meta의 SAM 모델을 실행하며, 레이블 1은 긍정 클릭을, 0은 부정 클릭을 나타냅니다.
from ultralytics import SAM
# Meta's SAM 2.1 base model, run through the Ultralytics package
model = SAM("sam2.1_b.pt")
image = "https://ultralytics.com/images/bus.jpg"
# Round 1: a single positive click on the pedestrian's dark coat
results = model(image, points=[[[250, 620]]], labels=[[1]])
print(f"1 click: {int(results[0].masks.data.sum())} mask pixels")
# Round 2: add a positive click on the pedestrian's jeans and a negative click on the bus
results = model(image, points=[[[250, 620], [290, 760], [420, 560]]], labels=[[1, 1, 0]])
print(f"3 clicks: {int(results[0].masks.data.sum())} mask pixels")
results[0].save(filename="interactive_mask.jpg")클릭 한 번 후에는 마스크 픽셀 32,598개, 세 번 클릭한 후에는 33,120개가 출력됩니다. 따라서 코트를 한 번 클릭해도 보행자의 거의 전체가 선택되며, 추가 클릭을 통해 약 500픽셀만큼 마스크가 정교해집니다. Ultralytics Platform은 주석 편집기에서 같은 루프를 실행합니다. Smart 모드에서 현재 SAM 마스크 바깥을 클릭하면 해당 영역이 추가되고, 마스크 안을 클릭하면 영역이 제거됩니다. 완성된 마스크는 데이터 세트 작업에 맞춰 폴리곤, 경계 상자 또는 회전 경계 상자로 저장됩니다.
그래프 컷에서 프롬프트 기반 모델까지#
초기 도구는 경계를 직접 최적화했습니다. Intelligent Scissors(1995)는 그린 윤곽선을 뚜렷한 에지에 맞췄으며, 2004년 Microsoft Research가 발표하고 OpenCV에 포함한 GrabCut은 사용자가 그린 박스 안의 객체를 분할합니다. 이 방법은 전경과 배경의 색상 모델을 반복해서 피팅하고 그래프 컷을 계산합니다. 2016년 이후의 딥러닝 방법은 클릭을 이미지와 함께 추가 입력 채널로 인코딩하고 합성곱 신경망을 학습해 마스크를 생성하며, 이후 모델들은 마스크를 정교화하기 위해 이전 마스크도 입력으로 받습니다.
2023년에 출시된 Meta의 Segment Anything Model (SAM)은 상호작용을 거의 즉각적으로 수행할 수 있도록 작업을 분리했습니다. 대규모 비전 트랜스포머가 이미지를 한 번 인코딩하고, 경량 프롬프트 인코더와 마스크 디코더가 새로 클릭한 각 지점을 약 50밀리초 만에 마스크로 변환합니다. SAM은 자체 상호작용 루프를 통해 학습하기도 했습니다. SA-1B 데이터셋을 구축하는 동안 주석 작업자는 모델의 연속된 버전을 사용해 객체를 분할하도록 클릭했으며, 마스크당 평균 작업 시간은 34초에서 14초로 감소했습니다. SAM 2는 클릭을 비디오로 확장해 프레임 전반에 마스크를 전파하며, SAM 3는 프롬프트 기반 개념 분할을 추가해 짧은 텍스트 구문과 일치하는 모든 인스턴스를 찾습니다.
대화형 분할과 자동 분할 비교#
인스턴스 분할 모델은 사람의 입력 없이 학습된 고정 클래스 집합을 자동으로 분할하므로 모든 프레임을 처리해야 하는 프로덕션 파이프라인에 적합합니다. 대화형 분할은 자동화 대신 유연성을 제공하며, 이러한 모델의 학습 마스크를 만드는 데 자주 사용됩니다. 이 과정은 모델의 확신도가 가장 낮은 이미지를 주석 작업자에게 보내는 액티브 러닝 루프 안에서 진행되는 경우가 많습니다. 시각적 프롬프팅은 점, 박스 또는 예시 이미지로 비전 모델을 유도하는 더 넓은 개념이며, 대화형 분할은 이를 반복적으로 수행해 마스크를 생성하는 방식입니다.










