Visual Prompting
포인트와 박스를 사용하여 AI 모델을 안내하는 시각적 프롬프팅을 탐색합니다. Ultralytics YOLO와 SAM이 정밀한 세그멘테이션과 빠른 데이터 주석 작업을 어떻게 지원하는지 배웁니다.
Visual prompting은 사용자가 점, BBox 또는 스크리블(scribbles)과 같은 공간적 또는 시각적 단서를 제공하여 AI 모델의 초점을 이미지 내 특정 객체나 영역으로 유도하는 컴퓨터 비전의 최신 기법입니다. 주로 텍스트 설명에 의존하는 기존의 prompt engineering과 달리, visual prompting은 Artificial Intelligence (AI) 시스템과 더 정밀하고 직관적으로 상호작용할 수 있게 해줍니다. 이 방법은 최신 foundation models의 기능을 활용하여 광범위한 재학습이나 대규모 라벨링 데이터셋 없이도 세그멘테이션 및 디텍션과 같은 작업을 수행합니다. 사용자는 중요한 부분에 효과적으로 "포인팅"함으로써 범용 모델을 새로운 작업에 즉각적으로 적응시켜 인간의 의도와 기계 인식 사이의 간극을 메울 수 있습니다.
Link to this sectionVisual Prompting의 메커니즘#
본질적으로 visual prompting은 공간 정보를 모델의 처리 파이프라인에 직접 주입하는 방식으로 작동합니다. 사용자가 객체를 클릭하거나 박스를 그리면, 이러한 입력값은 신경망이 이미지 특징과 통합하는 좌표 기반 임베딩으로 변환됩니다. 이 프로세스는 모델이 기하학적 프롬프트에 기반하여 마스크를 예측하는 Segment Anything Model (SAM)과 같은 대화형 아키텍처의 핵심입니다.
Visual prompting의 유연성 덕분에 다음과 같은 다양한 상호작용 유형이 가능합니다:
- Point Prompts: 사용자가 관심 있는 객체를 나타내기 위해 특정 픽셀을 클릭합니다. 그러면 모델이 이 선택 영역을 전체 객체 경계까지 확장합니다.
- Box Prompts: bounding box를 그리면 대략적인 위치 정보가 제공되며, 모델은 해당 영역 내에 포함된 모든 항목을 세그멘테이션하거나 분류하게 됩니다.
- Scribble Prompts: 객체 위에 자유롭게 그린 선은 객체가 겹치거나 비슷한 텍스처를 가진 복잡한 장면을 명확하게 구분하는 데 도움을 줍니다.
CVPR 2024에서 발표된 최근 연구에 따르면, visual prompting은 data annotation에 필요한 시간을 크게 단축합니다. 인간 주석가는 폴리곤을 수동으로 그리는 대신 간단한 클릭만으로 실시간으로 모델의 예측 결과를 수정할 수 있기 때문입니다.
Link to this sectionVisual Prompting vs. Text Prompting#
두 기법 모두 모델의 동작을 유도한다는 점은 같지만, visual prompting과 텍스트 기반 방법을 구분하는 것이 중요합니다. Text-to-image 생성이나 제로샷 디텍션은 의미론적 설명(예: "빨간 차 찾기")을 해석하기 위해 natural language processing (NLP)에 의존합니다. 그러나 언어는 정확한 공간 위치나 추상적인 모양을 설명하는 데 모호하거나 불충분할 수 있습니다.
Visual prompting은 픽셀 공간 자체에 명령을 고정함으로써 이러한 모호함을 해결합니다. 예를 들어, medical image analysis 분야에서 영상 의학 전문의가 의심스러운 결절을 설명하기 위해 텍스트로 정확한 좌표와 불규칙한 모양을 서술하려 애쓰는 것보다, 직접 클릭하는 것이 훨씬 더 정확합니다. 종종 가장 강력한 워크플로우는 두 가지 접근 방식을 결합하는 것인데, 텍스트로는 의미론적 필터링을 수행하고 visual prompt로는 공간적 정밀도를 높이는 것으로, 이를 multi-modal learning이라고 합니다.
Link to this section실제 애플리케이션 사례#
Visual prompting의 적응성 덕분에 다양한 산업 분야에서 빠르게 도입되고 있습니다:
- 대화형 의료 진단: 의사들은 MRI 스캔에서 종양이나 장기를 분리하기 위해 visual prompting 도구를 사용합니다. 관심 영역을 클릭하기만 하면 즉시 3D 부피 측정을 생성할 수 있어 정밀한 tumor detection 및 수술 계획에 도움이 됩니다.
- 스마트 사진 편집: Adobe Photoshop과 같은 소비자용 소프트웨어나 모바일 앱에서 visual prompting은 "매직 선택" 도구의 기반이 됩니다. 사용자는 사람이나 객체를 탭하여 배경을 제거하거나 타겟팅된 필터를 적용할 수 있으며, 수동 마스킹 기술 없이도 기본 instance segmentation 기술을 활용할 수 있습니다.
- 로봇 조작: AI in Robotics에서 로봇은 시각적 인터페이스를 통해 특정 항목을 집도록 지시받을 수 있습니다. 작업자가 로봇 카메라 피드에 있는 객체를 클릭하여 visual prompt를 제공하면 로봇은 이를 파지 좌표로 변환하여 창고 내 human-in-the-loop 자동화를 촉진합니다.
Link to this sectionUltralytics를 활용한 구현#
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()Link to this section모델 민첩성 향상#
Visual prompting은 모델이 더 이상 정적인 "블랙 박스"가 아니라 대화형 도구가 되는 "프롬프트 가능한(promptable)" 컴퓨터 비전으로의 전환을 의미합니다. 이 기능은 모델이 사용자 피드백을 통합하여 빠르게 개선되는 active learning 루프에 필수적입니다.
이러한 기능을 프로덕션에 통합하려는 개발자를 위해 Ultralytics Platform은 데이터셋을 관리하고 동적 입력을 처리할 수 있는 모델을 배포하는 도구를 제공합니다. 연구가 진행됨에 따라, 시각적 프롬프트와 large language models (LLMs) 간의 결합이 더욱 긴밀해질 것으로 예상되며, 이를 통해 현재 텍스트를 처리하는 것과 같은 유창함으로 시각적 입력을 추론할 수 있는 시스템이 구현될 것입니다.






