반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- vlm
- blip-2
- clip
- 원격 학습 안끊기게
- dinov2 논문 리뷰
- 객체 검출
- evaluating object hallucination in large vision-language models 논문
- Object detection article
- 엔트로피란
- 1차 미분 마스크
- 에지 검출
- dinov2: learning robust visual features without supervision 논문 리뷰
- vlm 환각
- polling-based object probing evaluation
- dinov2: learning robust visual features without supervision
- mobilenetv1
- vlm hallucination
- vlm 환각이란
- 논문 리뷰
- dinov2: learning robust visual features without supervision 논문
- 기계학습
- evaluating object hallucination in large vision-language models
- vlm hallucination paper
- object detection
- 딥러닝 엔트로피
- 딥러닝 목적함수
- 논문 요약
- clip adapter
- evaluating object hallucination in large vision-language models paper
- 이미지 필터링
Archives
- Today
- Total
My Vision, Computer Vision
이미지에서 원하는 텍스트 뽑아내기, 이미지 캡셔닝 BLIP-2(Colab 가능) 본문
LAVIS/projects/blip2 at main · salesforce/LAVIS
LAVIS - A One-stop Library for Language-Vision Intelligence - salesforce/LAVIS
github.com
이 글은 위 Github을 참고하여 작성했습니다.
- 본 글에서는 이미지 캡셔닝(Image2 Text) BLIP-2 모델 사용법을 알려드리려고 합니다.
- BLIP-2은 입력 이미지에 대한 Text를 출력해주는데, 사용자가 원하는 형태의 답변을 지정해 줄 수 있습니다.
- Google Colab T4(15GB) 환경에서 실행가능하며, 약 12GB 정도의 GPU memory를 사용합니다.
1. Install
BLIP-2 패키지를 설치해줍니다. BLIP-2은 salesforce AI research에서 만들어졌고 salesforce-lavis는 BLIP-2의 소스코드가 있는 github입니다.
pip install salesforce-lavis
2. BLIP-2 실행
BLIP-2 모델을 실행하기 전에 이미지를 불러옵니다. 6번 라인 이미지 경로를 알맞게 수정해 주세요.
import torch
from PIL import Image
# setup device to use
device = torch.device("cuda") if torch.cuda.is_available() else "cpu"
# load sample image
raw_image = Image.open("../../docs/_static/merlion.png").convert("RGB")
display(raw_image.resize((596, 437)))
그 후, load_model_and_preprocess 메서드로 model과 전처리 메서드를 불러옵니다. 이미지와 모델을 device에 할당해 줍니다.
import torch
from lavis.models import load_model_and_preprocess
# loads BLIP-2 pre-trained model
model, vis_processors, _ = load_model_and_preprocess(name="blip2_t5", model_type="pretrain_flant5xxl", is_eval=True, device=device)
# prepare the image
image = vis_processors["eval"](raw_image).unsqueeze(0).to(device)
모델에게 image와 prompt를 전달해 줄 수 있는데, 이때 prompt로 자신이 원하는 답변의 형식을 지정해 줄 수 있습니다.
아래 코드는 이미지에 대해 어느 도시인지 물어보는 prompt를 추가한 예시입니다.
model.generate({"image": image, "prompt": "Question: which city is this? Answer:"})
# 'singapore'
3. 실행 결과

위 이미지를 BLIP-2에게 prompt 없이 전달하면 다음과 같은 결과를 출력합니다.

"a small white dog running through a field of grass"라는 텍스트를 출력한 것을 확인할 수 있습니다.
728x90
'WorkPlace' 카테고리의 다른 글
[졸업 논문/프로젝트] 딥러닝 알고리즘을 이용한 상황 검색 가능한 비디오 플레이어 구현 (2) | 2024.12.04 |
---|---|
이미지와 텍스트 유사도 측정하기, Open AI CLIP(Colab 가능) (0) | 2024.03.27 |