Visual Prompting
포인트와 박스를 사용하여 AI 모델을 안내하는 시각적 프롬프팅을 탐색합니다. Ultralytics YOLO와 SAM이 정밀한 세그멘테이션과 빠른 데이터 주석 작업을 어떻게 지원하는지 배웁니다.
시각적 프롬프팅(Visual prompting)은 사용자가 점, 바운딩 박스, 또는 낙서 같은 공간적 또는 시각적 단서를 제공하여 이미지 내 특정 객체나 영역에 대한 AI 모델의 초점을 유도하는 컴퓨터 비전의 새로운 기법입니다. 텍스트 설명에 주로 의존하는 전통적인 프롬프트 엔지니어링과 달리, 시각적 프롬프팅은 인공지능(AI) 시스템과의 더욱 정밀하고 직관적인 상호작용을 가능하게 합니다. 이 방법은 광범위한 재학습이나 대규모 레이블링된 데이터셋 없이도 세분화 및 감지와 같은 작업을 수행할 수 있도록 현대 파운데이션 모델의 기능을 활용합니다. 사용자는 중요한 부분에 효과적으로 "포인팅"함으로써 범용 모델을 즉각적으로 새로운 작업에 적응시켜 인간의 의도와 기계 인식 사이의 간극을 좁힐 수 있습니다.
Visual Prompting의 메커니즘#
핵심적으로, 시각적 프롬프팅은 모델의 처리 파이프라인에 공간 정보를 직접 주입하는 방식으로 작동합니다. 사용자가 객체를 클릭하거나 박스를 그리면, 이러한 입력은 신경망이 이미지 특징과 결합하는 좌표 기반 임베딩으로 변환됩니다. 이 프로세스는 모델이 기하학적 프롬프트를 기반으로 마스크를 예측하는 Segment Anything Model (SAM)과 같은 대화형 아키텍처의 핵심입니다.
Visual prompting의 유연성 덕분에 다음과 같은 다양한 상호작용 유형이 가능합니다:
- Point Prompts: 사용자가 관심 있는 객체를 나타내기 위해 특정 픽셀을 클릭합니다. 그러면 모델이 이 선택 영역을 전체 객체 경계까지 확장합니다.
- 박스 프롬프트: 바운딩 박스를 그리면 대략적인 위치 파악이 제공되며, 모델이 해당 영역 내에 포함된 모든 것을 세분화하거나 분류하도록 신호를 보냅니다.
- Scribble Prompts: 객체 위에 자유롭게 그린 선은 객체가 겹치거나 비슷한 텍스처를 가진 복잡한 장면을 명확하게 구분하는 데 도움을 줍니다.
CVPR 2024에서 발표된 최근 연구에 따르면, 인간 주석자가 수동으로 폴리곤을 추적하는 대신 간단한 클릭으로 실시간으로 모델 예측을 수정할 수 있으므로, 시각적 프롬프팅이 데이터 어노테이션에 필요한 시간을 크게 줄여준다는 점이 강조됩니다.
Visual Prompting vs. Text Prompting#
두 기법 모두 모델의 동작을 유도하는 것을 목표로 하지만, 시각적 프롬프팅을 텍스트 기반 방법과 구별하는 것이 중요합니다. 텍스트 기반 이미지 생성 또는 제로샷 감지는 자연어 처리(NLP)에 의존하여 의미론적 설명(예: "빨간색 자동차 찾기")을 해석합니다. 그러나 언어는 정확한 공간 위치나 추상적인 형태를 설명하는 데 모호하거나 불충분할 수 있습니다.
시각적 프롬프팅은 픽셀 공간 자체에 지시사항을 기반으로 함으로써 이러한 모호성을 해결합니다. 예를 들어, 의료 이미지 분석에서는 방사선 전문의가 텍스트를 통해 정확한 좌표와 불규칙한 형태를 설명하려고 시도하는 것보다 의심스러운 결절을 클릭하는 것이 훨씬 더 정확합니다. 종종 가장 강력한 워크플로우는 텍스트를 의미론적 필터링에 사용하고 시각적 프롬프트를 공간적 정밀성에 사용하는 두 가지 접근 방식을 결합하며, 이는 멀티모달 학습으로 알려진 개념입니다.
실제 애플리케이션 사례#
Visual prompting의 적응성 덕분에 다양한 산업 분야에서 빠르게 도입되고 있습니다:
- 대화형 의료 진단: 의사는 시각적 프롬프팅 도구를 사용하여 MRI 스캔에서 종양이나 장기를 분리합니다. 관심 영역을 클릭하기만 하면 즉시 3차원 체적 측정값을 생성할 수 있으며, 이는 정확한 종양 감지 및 수술 계획에 도움이 됩니다.
- 스마트 사진 편집: 어도비 포토샵(Adobe Photoshop)이나 모바일 앱 같은 소비자 소프트웨어에서 시각적 프롬프팅은 "매직 셀렉트" 도구의 기능을 구동합니다. 사용자는 수동 마스킹 기술 없이도 기본 인스턴스 세분화 기술을 활용하여 사람이나 객체를 탭하여 배경을 제거하거나 대상 필터를 적용할 수 있습니다.
- 로봇 조작: 로봇 공학의 AI에서 로봇은 시각적 인터페이스를 통해 특정 아이템을 집어 들도록 지시받을 수 있습니다. 운영자가 로봇의 카메라 피드에서 객체를 클릭하면 로봇이 이를 잡기 좌표로 변환하는 시각적 프롬프트를 제공하여 창고에서의 인간 참여형(human-in-the-loop) 자동화를 용이하게 합니다.
Ultralytics를 활용한 구현#
Ultralytics 생태계는 FastSAM 및 SAM과 같은 모델을 통해 visual prompting 워크플로우를 지원합니다. 개발자는 이러한 모델을 사용하여 포인트나 박스 좌표를 프로그래밍 방식으로 전달함으로써 세그멘테이션 마스크를 가져올 수 있습니다.
다음 예제는 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 Platform은 동적 입력을 처리할 수 있는 모델을 배포하고 데이터셋을 관리할 수 있는 도구를 제공합니다. 연구가 진행됨에 따라 시각적 프롬프트와 대형 언어 모델(LLM) 간의 훨씬 더 긴밀한 통합을 볼 수 있을 것으로 기대하며, 이를 통해 현재 텍스트를 처리하는 것과 동일한 유창성으로 시각적 입력을 추론할 수 있는 시스템이 가능해질 것입니다.






