Veblen34's picture
Upload folder using huggingface_hub
cd6775d verified
Raw
History Blame Contribute Delete
1.82 kB
# %%
# image caption
# image generation (stable difusion)
# grounded caption
# image grounding
# vqa
# object detection
# %%
import torch
from transformers import pipeline
import multiprocessing as mp
import os
import time
import sys
import glob
import json
import numpy as np
import random
from PIL import Image
from lavis.models import load_model_and_preprocess
from transformers import BlipProcessor, BlipForConditionalGeneration
import openai
import pdb
import os
# %%
class DenseImageCaption:
def __init__(self, api,gpu_id, llm=None):
os.environ['CUDA_VISIBLE_DEVICES']= str(gpu_id)
torch.cuda.set_device(gpu_id)
self.device = torch.device('cuda:'+str(gpu_id))
print('Load: blip2 model')
# blip2 model
self.blip2model, self.blip2vis_processors, _ = load_model_and_preprocess(
name="blip2_t5", model_type="pretrain_flant5xl", is_eval=True, device=self.device
)
self.llm = None
if llm is None:
openai.api_key = api[0]
else:
self.llm = llm
def blip2caption(self, question, img_path):
raw_image = Image.open(img_path).convert('RGB')
device = self.device
image = self.blip2vis_processors["eval"](raw_image).unsqueeze(0).to(self.device)
caption = self.blip2model.generate({"image": image, "prompt": "Generate a caption about \"" + question + "\""})
return caption
def get_captionOnly(self, question, img_path):
caption = self.blip2caption(question, img_path)
return caption[0].strip()
def get_visual_descrip(self, question, img_path):
caption = self.get_captionOnly(question, img_path)
img_summary = "Image Caption: " + caption + "\n"
return img_summary