Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| from transformers import ViTFeatureExtractor, ViTForImageClassification | |
| from PIL import Image | |
| import requests | |
| import logging | |
| print("Loading models...") | |
| feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch32-384') | |
| model = ViTForImageClassification.from_pretrained('google/vit-base-patch32-384') | |
| print("Starting webapp...") | |
| app = Flask(__name__) | |
| log = logging.getLogger('werkzeug') | |
| log.disabled = True | |
| app.logger.disabled = True | |
| print("Ready") | |
| def hello_world(): | |
| global feature_extractor, model | |
| url = request.args.get('url') | |
| if url is None: | |
| return jsonify(error="Url is required", url=None, label=None) | |
| image = Image.open(requests.get(url, stream=True).raw) | |
| inputs = feature_extractor(images=image, return_tensors="pt") | |
| outputs = model(**inputs) | |
| logits = outputs.logits | |
| # model predicts one of the 1000 ImageNet classes | |
| predicted_class_idx = logits.argmax(-1).item() | |
| return jsonify(url=url, label=model.config.id2label[predicted_class_idx]) |