Views
No views yet
1from transformers import AutoTokenizer, AutoImageProcessor, VisionEncoderDecoderModel
2import requests, time
3from PIL import Image
4
5model_path = "cnmoro/tiny-image-captioning"
6
7# load the image captioning model and corresponding tokenizer and image processor
8model = VisionEncoderDecoderModel.from_pretrained(model_path)
9tokenizer = AutoTokenizer.from_pretrained(model_path)
10image_processor = AutoImageProcessor.from_pretrained(model_path)
11
12# preprocess an image
13url = "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/New_york_times_square-terabass.jpg/800px-New_york_times_square-terabass.jpg"
14image = Image.open(requests.get(url, stream=True).raw)
15pixel_values = image_processor(image, return_tensors="pt").pixel_values
16
17start = time.time()
18
19# generate caption - suggested settings
20generated_ids = model.generate(
21 pixel_values,
22 temperature=0.7,
23 top_p=0.8,
24 top_k=50,
25 num_beams=3 # you can use 1 for even faster inference with a small drop in quality
26)
27generated_text = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
28
29end = time.time()
30
31print(generated_text)
32# a group of people walking in the middle of a city.
33
34print(f"Time taken: {end - start} seconds")
35# Time taken: 0.11215853691101074 seconds
36# on CPU !