Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

CLIP (Contrastive Language-Image Pre-training)

CLIP은 이미지와 텍스트를 하나의 공유 공간에 임베딩하여 일반 텍스트 레이블로 이미지를 분류하는 OpenAI 모델입니다. 학습 방식과 제로샷 작동 원리를 알아봅니다.

CLIP(대조적 언어-이미지 사전 학습)은 OpenAI가 만든 모델로, 이미지와 이미지의 텍스트 설명을 연결하는 방법을 학습합니다. 이미지 인코더와 텍스트 인코더를 짝지어 학습하며, 이미지와 해당 이미지를 설명하는 캡션이 하나의 공유 임베딩 공간에서 서로 가까운 벡터로 매핑되도록 합니다. 인터넷에서 수집한 이미지-캡션 쌍 4억 개로 학습된 CLIP은 해당 카테고리의 레이블이 지정된 예시 없이 텍스트로만 제시된 카테고리로 이미지를 분류할 수 있습니다. 이를 제로샷 학습이라고 합니다. 2021년 논문에서 최고 성능 모델은 ImageNet 제로샷 top-1 정확도 76.2%를 기록해, ResNet-50이 학습에 사용한 레이블 이미지 128만 장을 전혀 사용하지 않고도 원래 완전 지도 학습 방식으로 학습한 ResNet-50과 대등한 성능을 보였습니다.

CLIP 학습 방법#

CLIP에는 인코더가 두 개 있습니다. 이미지 인코더는 ResNet 또는 비전 트랜스포머(ViT)이고, 텍스트 인코더는 기본 크기에서 파라미터 6,300만 개를 가진 12층 트랜스포머입니다. 선형 프로젝션을 통해 각 인코더의 출력을 공유 공간으로 매핑하며, 이 공간에서 모든 벡터는 단위 길이로 정규화됩니다.

학습에는 이미지-캡션 쌍 32,768개로 구성된 배치를 사용하는 대조 학습을 적용합니다. 쌍 N개가 있는 배치에서 CLIP은 모든 이미지와 모든 캡션의 코사인 유사도를 계산해 N×N 행렬을 만들며, 대각선에는 실제 쌍이 놓입니다. 각 행에 소프트맥스 교차 엔트로피 손실을 적용해 각 이미지가 N개 중 자신의 캡션을 선택하도록 하고, 각 열에 두 번째 손실을 적용해 각 캡션이 해당 이미지를 선택하도록 합니다. 학습 가능한 온도 매개변수는 소프트맥스를 적용하기 전에 유사도 값을 조정합니다.

캡션이 자유 형식 텍스트이므로 CLIP은 웹에서 설명하는 모든 것, 즉 객체, 장면, 미술 양식, 이미지 속 텍스트, 동작을 대상으로 학습하며 고정된 클래스 목록에 제한되지 않습니다.

제로샷 분류#

이미지를 분류할 때 CLIP은 "a photo of a dog"와 같은 짧은 문장으로 각 후보 레이블을 임베딩하고, 이미지도 임베딩한 다음 코사인 유사도가 가장 높은 레이블을 선택합니다. 프롬프트 문구가 중요합니다. 논문에 따르면 "A photo of a {label}." 템플릿만으로도 ImageNet 정확도가 1.3% 향상되었으며, 템플릿 80개의 텍스트 임베딩을 평균하면 3.5%가 더 향상되었습니다. 아래의 Hugging Face Transformers 파이프라인은 각 레이블을 "This is a photo of {}." 템플릿에 넣고 원본 ViT-B/32 모델을 실행합니다.

from transformers import pipeline

# Load OpenAI's CLIP ViT-B/32 for zero-shot image classification
classifier = pipeline("zero-shot-image-classification", model="openai/clip-vit-base-patch32")

# The classes are free-form text, chosen at inference time
labels = ["a city bus", "a tram", "a delivery truck", "a bicycle"]
predictions = classifier("https://ultralytics.com/images/bus.jpg", candidate_labels=labels)

# Scores are a softmax over the image's similarity to each caption
for prediction in predictions:
    print(f"{prediction['label']}: {prediction['score']:.3f}")

a city bus: 0.657, a tram: 0.341, a delivery truck: 0.001, a bicycle: 0.000을 출력합니다. 전차는 남은 확률의 거의 전부를 차지하는 또 다른 대형 여객 운송 수단이며, 새로운 레이블 세트를 사용하려면 문자열 목록만 새로 지정하면 됩니다.

실제 적용 사례#

  • 시맨틱 검색: 이미지 컬렉션을 한 번 임베딩해 벡터 데이터베이스에 저장합니다. "나무 바닥 위의 빨간 운동화"와 같은 텍스트 쿼리는 검색 시점에 임베딩해 저장된 벡터와 비교하므로, 수동 태그 없이 콘텐츠를 기준으로 이미지를 찾을 수 있습니다.
  • 텍스트-이미지 생성: Stable Diffusion 1.x는 CLIP ViT-L/14의 텍스트 임베딩을 이미지 생성기의 조건으로 사용하며, 생성된 이미지가 프롬프트를 얼마나 충실히 따르는지 평가하는 데 CLIP 유사도가 널리 사용됩니다.
  • 오픈 어휘 탐지: Ultralytics 패키지에서 실행되는 Tencent AI Lab의 YOLO-World 모델은 CLIP의 ViT-B/32 텍스트 인코더를 사용해 set_classes에 전달된 클래스 이름을 인코딩합니다. 따라서 한 번 학습된 탐지기가 이름을 바탕으로 "빨간 배낭"이나 "지게차"를 찾을 수 있습니다. Google의 OWLv2는 CLIP의 사전 학습된 이미지 및 텍스트 인코더를 기반으로 하며, VLM 리더보드는 실제 탐지 데이터셋에서 이 모델을 다른 오픈 어휘 탐지기 및 VLM과 비교합니다.
  • VLM용 비전 인코더: 많은 비전 언어 모델은 사전 학습된 CLIP 이미지 인코더를 기반으로 시작합니다. 예를 들어 LLaVA는 CLIP ViT-L/14 특징을 언어 모델에 입력합니다.
  • 데이터셋 필터링: LAION-5B 같은 대규모 오픈 이미지-텍스트 데이터셋은 CLIP 이미지-텍스트 유사도가 임계값을 통과한 웹 쌍만 유지해 이미지 내용을 설명하지 않는 캡션을 제거합니다.
  • 지도 학습 분류기: 일반적인 분류기는 학습 클래스마다 출력 하나를 가지므로 한 번도 보지 못한 클래스의 점수를 계산할 수 없습니다. CLIP의 "분류기"는 텍스트 임베딩 집합이므로 레이블이 바뀔 때마다 함께 바뀝니다.
  • SigLIP: Google의 변형 모델은 CLIP의 배치 전체 소프트맥스를 시그모이드 손실로 대체해 이미지-텍스트 쌍을 각각 독립적으로 평가하므로 메모리를 덜 사용하며 작은 배치 크기에서 더 잘 작동합니다.
  • 자기 지도 대조 학습: SimCLR 같은 방법은 동일한 이미지의 두 증강 뷰를 대조하고 이미지 자체만으로 학습합니다. CLIP은 두 가지 모달리티를 대조해 이미지 특징을 단어와 연결합니다.
  • 생성형 VLM: CLIP은 이미지-텍스트 유사도를 평가하지만 캡션을 작성하거나 질문에 답할 수 없습니다. 생성형 모델은 이미지 인코더에 언어 모델을 연결하며, 이미지 인코더로 CLIP 자체를 사용하는 경우가 많습니다.

한계#

CLIP의 제로샷 정확도는 항공기나 자동차 모델과 같은 세부 카테고리, 객체 수 세기, 거리 추정과 같은 추상적 작업에서 떨어집니다. 또한 웹 캡션의 편향도 학습합니다. CLIP은 이미지 속 텍스트를 읽도록 학습되었기 때문에 텍스트에 속을 수 있습니다. OpenAI의 멀티모달 뉴런 연구에서는 손으로 "iPod"라고 쓴 라벨을 붙인 사과를 iPod으로 분류했습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요