CoolFace
Modelpublic

fashxp/zero-shot-image-classification

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
handler.py31 linesDownload Raw Back to root
1from typing import Dict, List, Any2from PIL import Image3from io import BytesIO4from transformers import pipeline5import base646 7 8class EndpointHandler():9    def __init__(self, path=""):10        self.pipeline=pipeline("zero-shot-image-classification",model="openai/clip-vit-large-patch14-336")11 12    def __call__(self, data: Dict[str, Any]) -> List[Dict[str, Any]]:13        """14       data args:15            inputs (:obj:`string`)16            parameters (:obj:)17      Return:18            A :obj:`list`:. The list contains items that are dicts should be liked {"label": "XXX", "score": 0.82}19        """20        image_data = data.pop("inputs", data)21        # decode base64 image to PIL22        image = Image.open(BytesIO(base64.b64decode(image_data)))23 24        parameters = data.pop("parameters", data)25        candidate_labels = parameters['candidate_labels']26 27        candidate_labels_array = list(map(str.strip, candidate_labels.split(',')))28 29        # run prediction one image wit provided candiates30        prediction = self.pipeline(images=[image], candidate_labels=candidate_labels_array)31        return prediction[0]