from PIL import Image | |
import requests | |
import torch | |
from torchvision import transforms | |
from torchvision.transforms.functional import InterpolationMode | |
from lzma import FILTER_LZMA1 | |
try: | |
from _lzma import * | |
from _lzma import _encode_filter_properties, _decode_filter_properties | |
except ImportError: | |
from backports.lzma import * | |
from backports.lzma import _encode_filter_properties, _decode_filter_properties | |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') | |
def load_demo_image(image_size, device): | |
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg' | |
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB') | |
w, h = raw_image.size | |
print(raw_image.resize((w // 5, h // 5))) | |
transform = transforms.Compose([ | |
transforms.Resize((image_size, image_size), interpolation=InterpolationMode.BICUBIC), | |
transforms.ToTensor(), | |
transforms.Normalize((0.48145466, 0.4578275, 0.40821073), (0.26862954, 0.26130258, 0.27577711)) | |
]) | |
image = transform(raw_image).unsqueeze(0).to(device) | |
return image |