sergeipetrov
HF staff
Duplicate from philschmid/clip-zero-shot-image-classification
6e88679
verified
tags: | |
- vision | |
- zero-shot-image-classification | |
- endpoints-template | |
library_name: generic | |
# Fork of [openai/clip-vit-base-patch32](https://huggingface.co/openai/clip-vit-base-patch32) for a `zero-sho-image-classification` Inference endpoint. | |
This repository implements a `custom` task for `zero-shot-image-classification` for 🤗 Inference Endpoints. The code for the customized pipeline is in the [pipeline.py](https://huggingface.co/philschmid/clip-zero-shot-image-classification/blob/main/pipeline.py). | |
To use deploy this model a an Inference Endpoint you have to select `Custom` as task to use the `pipeline.py` file. -> _double check if it is selected_ | |
### expected Request payload | |
```json | |
{ | |
"image": "/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgICAgMC....", // base64 image as bytes | |
"candiates":["sea","palace","car","ship"] | |
} | |
``` | |
below is an example on how to run a request using Python and `requests`. | |
## Run Request | |
1. prepare an image. | |
```bash | |
!wget https://huggingface.co/datasets/mishig/sample_images/resolve/main/palace.jpg | |
``` | |
2. run request | |
```python | |
import json | |
from typing import List | |
import requests as r | |
import base64 | |
ENDPOINT_URL = "" | |
HF_TOKEN = "" | |
def predict(path_to_image: str = None, candiates: List[str] = None): | |
with open(path_to_image, "rb") as i: | |
b64 = base64.b64encode(i.read()) | |
payload = {"inputs": {"image": b64.decode("utf-8"), "candiates": candiates}} | |
response = r.post( | |
ENDPOINT_URL, headers={"Authorization": f"Bearer {HF_TOKEN}"}, json=payload | |
) | |
return response.json() | |
prediction = predict( | |
path_to_image="palace.jpg", candiates=["sea", "palace", "car", "ship"] | |
) | |
``` | |
expected output | |
```python | |
[{'label': 'palace', 'score': 0.9996134638786316}, | |
{'label': 'car', 'score': 0.0002602009626571089}, | |
{'label': 'ship', 'score': 0.00011758189066313207}, | |
{'label': 'sea', 'score': 8.666840585647151e-06}] | |
``` | |