Multimodal 핵심 기능 — Transformers 이미지 캡셔닝

Multimodal 핵심 기능

이미지 캡셔닝은 이미지를 입력으로 받아 자연어 설명(캡션)을 생성하는 작업이에요. Transformers는 이를 VisionEncoderDecoderModel 기반 모델과 프로세서로 지원해요.

모델과 프로세서

from transformers import BlipProcessor, BlipForConditionalGeneration

processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")

BLIP 같은 모델은 이미지 인코더와 텍스트 디코더를 결합해 캡션을 만들어요.

캡션 생성

from PIL import Image

image = Image.open("dog.jpg")
inputs = processor(images=image, return_tensors="pt")

outputs = model.generate(**inputs)
caption = processor.decode(outputs[0], skip_special_tokens=True)
print(caption)

processor가 이미지를 모델 입력 형태로 바꾸고, generate가 캡션을 뽑아요.

이해 포인트

  • 프로세서: 이미지를 픽셀 값으로 변환 + 토큰화 담당
  • 인코더-디코더: 이미지 특징을 읽고 순차적으로 텍스트 생성
  • 전이학습으로 다양한 데이터셋에서 캡션 품질 확보

더 알아보기