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가 캡션을 뽑아요.
이해 포인트
- 프로세서: 이미지를 픽셀 값으로 변환 + 토큰화 담당
- 인코더-디코더: 이미지 특징을 읽고 순차적으로 텍스트 생성
- 전이학습으로 다양한 데이터셋에서 캡션 품질 확보