Explore how CLIP bridges the gap between vision and language. Learn about zero-shot learning, contrastive image-text pairs, and using CLIP with [YOLO26](https://docs.ultralytics.com/models/yolo26/) for open-vocabulary detection.
CLIP(Contrastive Language-Image Pre-training)은 시각 데이터와 자연어 간의 격차를 해소하는 OpenAI가 개발한 혁신적인 신경망 아키텍처입니다. 기존 컴퓨터 비전(CV) 시스템이 고정된 범주 집합을 위해 노동 집약적인 데이터 라벨링을 필요로 하는 것과 달리, CLIP은 인터넷에서 수집한 수백만 개의 이미지-텍스트 쌍으로 훈련하여 이미지를 이해하는 법을 학습합니다. 이러한 접근 방식 덕분에 모델은 제로샷 학습을 수행할 수 있습니다. 즉, 훈련 과정에서 명시적으로 본 적 없는 객체, 개념 또는 스타일을 단순히 텍스트 설명을 읽는 것만으로 식별할 수 있습니다. 시각적 정보와 언어적 정보를 공유된 특징 공간에 매핑함으로써, CLIP은 광범위한 다운스트림 작업에 대한 강력한 파운데이션 모델 역할을 하며, 방대한 작업별 미세 조정이 필요하지 않습니다.
CLIP의 핵심 메커니즘은 두 개의 병렬 인코더를 포함합니다: 일반적으로 비전 트랜스포머(ViT) 또는 ResNet을 기반으로 하는 이미지 인코더와 현대적 대규모 언어 모델(LLM)에서 사용되는 것과 유사한 텍스트 트랜스포머입니다. 대조 학습( contrastive learning)으로 알려진 과정을 통해, 시스템은 배치 내 어떤 텍스트 스니펫이 어떤 이미지와 일치하는지 예측하도록 훈련됩니다.
훈련 과정에서 모델은 매칭되는 이미지-텍스트 쌍의 벡터 임베딩을 서로 가깝게 끌어당기면서 매칭되지 않는 쌍은 멀리 밀어내는 방식으로 매개변수를 최적화합니다. 이를 통해 "골든 리트리버" 이미지의 수학적 표현이 "개 사진" 텍스트 임베딩과 공간적으로 근접한 다중 모달 잠재 공간이 생성됩니다. 이 벡터들 간의 코사인 유사도를 계산함으로써 모델은 이미지가 자연어 프롬프트에 얼마나 잘 부합하는지 정량화할 수 있어 유연한 이미지 분류 및 검색을 가능하게 합니다.
비전과 언어를 연결하는 능력은 CLIP을 현대 AI 애플리케이션의 핵심 기술로 만들었습니다:
표준 객체 탐지기는 훈련된 클래스로 제한되지만, CLIP 기반 특징을 사용하면
개방형 어휘 탐지가 가능합니다. 다음은 Python 이 코드는 사용 방법을 보여줍니다.
ultralytics 사용자 정의 텍스트 프롬프트를 사용하여 detect 패키지:
from ultralytics import YOLOWorld
# Load a pre-trained YOLO-World model utilizing CLIP features
model = YOLOWorld("yolov8s-world.pt")
# Define custom classes using natural language text prompts
model.set_classes(["person wearing sunglasses", "red backpack"])
# Run inference on an image to detect the text-defined objects
results = model.predict("travelers.jpg")
# Display the results
results[0].show()
CLIP의 특정 유용성을 이해하기 위해 다른 일반적인 AI 패러다임과 구별하는 것이 도움이 됩니다: