Visual Prompting
시각 프롬프팅은 단어 대신 클릭, 박스, 마스크 또는 예시 이미지를 사용해 비전 모델에 찾을 대상을 알려줍니다. SAM과 오픈셋 검출기가 이를 활용하는 방법을 설명합니다.
시각 프롬프팅은 단어로 대상을 설명하는 대신 클릭, 박스, 낙서, 마스크 또는 예시로 이미지 자체에 표시하여 컴퓨터 비전 모델에 무엇을 분할하거나 탐지할지 지정하는 방법입니다. Meta의 Segment Anything Model (SAM)과 같은 프롬프트 기반 파운데이션 모델은 각 표시를 임베딩으로 변환하고 재학습 없이 지정된 객체의 마스크를 예측합니다. 시각 프롬프트는 특정 인스턴스를 가리키거나 찾고자 하는 대상의 예시를 보여줍니다. 따라서 특정 결함이나 익숙하지 않은 부품처럼 텍스트 프롬프트로 이름을 지정하기 어려운 대상을 찾는 데 유용합니다. 이름은 비슷하지만 시각 프롬프트 튜닝은 이미지를 표시하는 작업자 없이 파인튜닝 중에 추가 입력 토큰을 학습하는 프롬프트 튜닝 방법입니다.
시각 프롬프팅의 작동 방식#
2023년 Meta가 1,100만 개 이미지의 마스크 11억 개를 포함하는 SA-1B 데이터셋과 함께 출시한 SAM은 작업을 세 부분으로 나눕니다. 대형 이미지 인코더인 비전 트랜스포머는 이미지마다 한 번 실행되고, 경량 프롬프트 인코더는 점과 박스를 위치 임베딩으로 변환하며, 마스크 디코더는 둘을 결합해 웹 브라우저에서 약 50밀리초 만에 마스크를 예측하므로 새 클릭을 할 때마다 결과가 대화형으로 업데이트됩니다. 한 번의 클릭은 셔츠를 가리키는지 셔츠를 입은 사람을 가리키는지 불분명할 수 있으므로, SAM은 각 품질 점수와 함께 마스크 후보 세 개를 반환할 수 있습니다. Meta의 SAM 2(2024)는 이전 프레임의 정보를 기억하면서 클릭한 객체를 이후 프레임으로 추적하도록 비디오 프롬프트를 확장했습니다. SAM 2.1은 Ultralytics 패키지에서 실행되며, 클릭은 전경을 나타내는 레이블 1 또는 배경을 나타내는 레이블 0이 지정된 점으로 표현됩니다:
from ultralytics import SAM
# Meta의 SAM 2.1 기본 모델을 불러옵니다
model = SAM("sam2.1_b.pt")
# 어두운 코트를 입은 남자에게 전경 클릭 1회(레이블 1)를 적용합니다
results = model("https://ultralytics.com/images/bus.jpg", points=[280, 600], labels=[1])
result = results[0]
# 클릭한 객체에 대해 예측된 마스크와 함께 이미지를 저장합니다
result.save(filename="sam_point_prompt.jpg")저장된 이미지에는 SAM 2.1이 단일 클릭으로 예측한 마스크가 표시됩니다. 대화형 분할은 마스크가 정확해질 때까지 이 단계를 반복합니다. Ultralytics Platform의 스마트 어노테이션 모드도 같은 방식으로 작동합니다. 클릭할 때마다 SAM 점 프롬프트가 추가되며, 현재 마스크 바깥을 클릭하면 해당 영역이 추가되고 안쪽을 클릭하면 제거됩니다. 결과는 데이터셋의 작업 유형에 따라 폴리곤, 박스 또는 회전 박스로 저장됩니다.
시각 프롬프트의 유형#
- 점과 박스: 전경 및 배경 클릭으로 영역을 선택하거나 제외하고, 객체 주위에 대략적인 박스를 그리면 클릭만 사용하는 것보다 모호성이 줄어듭니다. 또한 탐지기의 박스를 사용해 분할 모델에 자동으로 프롬프트를 제공할 수 있습니다.
- 마스크와 낙서: 이전 단계에서 만든 대략적인 마스크나 객체 위에 그린 획을 사용해 클릭만으로는 정확하지 않은 예측을 다듬습니다.
- 예시 박스: 예시 하나를 둘러싼 박스를 지정하면 모델이 그와 같은 모든 객체를 찾으므로, 한 종류의 나사를 모두 세려면 예시 박스 하나면 됩니다. T-Rex2와 YOLOE 같은 오픈셋 감지기와 Meta의 SAM 3(2025)는 이러한 예시 프롬프트를 지원합니다.
- 인컨텍스트 예시: 마스크나 에지 맵 등 원하는 출력이 함께 제공된 예시 이미지는 작업 자체를 정의하며, 모델은 유추를 통해 새 이미지의 출력을 완성합니다.
- 비전-언어 모델을 위한 표시: Set-of-Mark 프롬프팅은 이미지 영역 위에 번호가 매겨진 표시를 그려 모델이 답변에서 "영역 3"을 참조하도록 하며, 시각적 그라운딩을 개선합니다.










