lgaleana's picture
Added extraction of labels from image
bbf59eb
raw
history blame
726 Bytes
from concurrent.futures import ThreadPoolExecutor
from typing import Dict, List
from google.cloud import vision
from utils.io import print_system
def get_labels_from_image(url: str) -> List[str]:
client = vision.ImageAnnotatorClient()
image = vision.Image()
image.source.image_uri = url # type: ignore
response = client.label_detection(image=image) # type: ignore
return [label.description for label in response.label_annotations]
def get_labels_from_images(urls) -> Dict:
print_system("Generating labels for images...")
with ThreadPoolExecutor() as executor:
labels = list(executor.map(get_labels_from_image, urls))
return {urls[i]: labels[i] for i, url in enumerate(labels)}