Visual Prompting
포인트와 박스로 AI 모델을 안내하는 비주얼 프롬프팅을 살펴봅니다. Ultralytics YOLO와 SAM이 정밀한 세그멘테이션과 더 빠른 데이터 어노테이션을 지원하는 방법을 알아봅니다.
비주얼 프롬프팅은 사용자가 포인트, 바운딩 박스 또는 낙서와 같은 공간적 또는 시각적 단서를 제공하여 AI 모델이 이미지 내 특정 객체나 영역에 집중하도록 유도하는 컴퓨터 비전 분야의 새로운 기법입니다. 주로 텍스트 설명에 의존하는 기존의 프롬프트 엔지니어링과 달리, 비주얼 프롬프팅을 사용하면 인공지능 (AI) 시스템과 더욱 정밀하고 직관적으로 상호작용할 수 있습니다. 이 방법은 최신 파운데이션 모델의 기능을 활용하여 대규모 재학습이나 많은 라벨링 데이터셋 없이도 세그멘테이션 및 탐지와 같은 작업을 수행합니다. 중요한 대상을 효과적으로 "가리킴"으로써 사용자는 범용 모델을 새로운 작업에 즉시 적용할 수 있으며, 인간의 의도와 기계의 인식 사이의 간극을 좁힐 수 있습니다.
비주얼 프롬프팅의 메커니즘#
비주얼 프롬프팅은 핵심적으로 공간 정보를 모델의 처리 파이프라인에 직접 주입하는 방식으로 작동합니다. 사용자가 객체를 클릭하거나 박스를 그리면 이러한 입력은 좌표 기반 임베딩으로 변환되고, 신경망은 이를 이미지 특징과 통합합니다. 이 과정은 세그먼트 애니씽 모델 (SAM)과 같은 인터랙티브 아키텍처의 핵심으로, 모델은 기하학적 프롬프트를 기반으로 마스크를 예측합니다.
비주얼 프롬프팅의 유연성 덕분에 다양한 상호작용 유형을 사용할 수 있습니다:
- 포인트 프롬프트: 사용자가 특정 픽셀을 클릭하여 관심 객체를 나타냅니다. 그러면 모델은 이 선택 영역을 객체의 전체 경계로 확장합니다.
- 박스 프롬프트: 바운딩 박스를 그리면 대략적인 위치 정보가 제공되며, 모델은 해당 영역 안에 포함된 모든 대상을 세그먼트하거나 분류합니다.
- 낙서 프롬프트: 객체 위에 자유롭게 그린 선은 객체가 겹치거나 유사한 텍스처를 가진 복잡한 장면을 구분하는 데 도움이 됩니다.
CVPR 2024에서 발표된 최신 연구는 비주얼 프롬프팅이 데이터 어노테이션에 필요한 시간을 크게 줄이는 방법을 보여줍니다. 인간 어노테이터는 다각형을 수동으로 추적하는 대신 간단한 클릭만으로 실시간으로 모델의 예측을 수정할 수 있습니다.
비주얼 프롬프팅과 텍스트 프롬프팅 비교#
두 기법 모두 모델의 동작을 유도하는 것을 목표로 하지만, 비주얼 프롬프팅과 텍스트 기반 방법을 구분하는 것이 중요합니다. 텍스트-이미지 생성이나 제로샷 탐지는 자연어 처리 (NLP)를 사용하여 의미적 설명(예: "빨간 자동차를 찾아")을 해석합니다. 그러나 언어는 정확한 공간적 위치나 추상적인 형태를 설명하기에 모호하거나 충분하지 않을 수 있습니다.
비주얼 프롬프팅은 지시를 픽셀 공간 자체에 기반하게 함으로써 이러한 모호성을 해결합니다. 예를 들어 의료 이미지 분석에서는 영상의학 전문의가 의심스러운 결절을 텍스트로 정확한 좌표와 불규칙한 형태까지 설명하려고 하는 것보다 해당 결절을 클릭하는 편이 훨씬 정확합니다. 가장 강력한 워크플로는 두 접근 방식을 결합하는 경우가 많습니다. 즉, 의미적 필터링에는 텍스트를 사용하고 공간적 정밀도에는 비주얼 프롬프트를 사용하는 방식이며, 이를 멀티모달 학습이라고 합니다.
실제 적용 사례#
비주얼 프롬프팅의 뛰어난 적응성으로 인해 다양한 산업 분야에서 빠르게 도입되고 있습니다:
- 인터랙티브 의료 진단: 의사들은 MRI 스캔에서 종양이나 장기를 분리하기 위해 비주얼 프롬프팅 도구를 사용합니다. 관심 영역을 클릭하기만 하면 즉시 3D 체적 측정값을 생성할 수 있어 정밀한 종양 탐지와 수술 계획 수립에 도움이 됩니다.
- 스마트 사진 편집: Adobe Photoshop과 같은 소비자용 소프트웨어나 모바일 앱에서 비주얼 프롬프팅은 "매직 셀렉트" 도구를 구동합니다. 사용자는 사람이나 객체를 탭하여 배경을 제거하거나 특정 필터를 적용할 수 있으며, 수동 마스킹 기술 없이도 기반 인스턴스 세그멘테이션 기술을 활용할 수 있습니다.
- 로봇 조작: 로보틱스에서의 AI에서는 시각적 인터페이스를 통해 로봇에게 특정 물품을 집도록 지시할 수 있습니다. 작업자가 로봇의 카메라 피드에서 객체를 클릭하면 시각적 프롬프트가 제공되고, 로봇은 이를 파지 좌표로 변환하여 창고에서 인간 참여형 자동화를 지원합니다.
Ultralytics를 활용한 구현#
Ultralytics 생태계는 특히 FastSAM 및 SAM과 같은 모델을 통해 비주얼 프롬프팅 워크플로를 지원합니다. 이러한 모델을 사용하면 개발자가 포인트 또는 박스 좌표를 프로그래밍 방식으로 전달하여 세그멘테이션 마스크를 가져올 수 있습니다.
다음 예제에서는 ultralytics 패키지를 사용하여 이미지에 포인트 프롬프트를 적용하고, 특정 좌표에 위치한 객체를 세그먼트하도록 모델에 지시하는 방법을 보여줍니다.
from ultralytics import SAM
# Load the Segment Anything Model (SAM)
model = SAM("sam2.1_b.pt")
# Apply a visual point prompt to the image
# The 'points' argument accepts [x, y] coordinates
# labels: 1 indicates a foreground point (include), 0 indicates background
results = model("https://ultralytics.com/images/bus.jpg", points=[[300, 350]], labels=[1])
# Display the segmented result
results[0].show()모델 민첩성 향상#
비주얼 프롬프팅은 모델이 더 이상 고정된 "블랙박스"가 아니라 상호작용형 도구가 되는 "프롬프트 가능한" 컴퓨터 비전으로의 전환을 의미합니다. 이러한 기능은 액티브 러닝 루프에 필수적이며, 모델은 사용자의 피드백을 반영하여 빠르게 개선될 수 있습니다.
이러한 기능을 프로덕션에 통합하려는 개발자를 위해 Ultralytics 플랫폼은 동적 입력을 처리할 수 있는 모델을 관리하고 배포하는 도구를 제공합니다. 연구가 진전됨에 따라 비주얼 프롬프트와 대규모 언어 모델 (LLMs)의 통합이 더욱 긴밀해질 것으로 예상되며, 이를 통해 현재 텍스트를 처리하는 것만큼 유창하게 시각적 입력을 추론할 수 있는 시스템이 구현될 것입니다.









