Download app.py from SERHANI/model2: direct link, hf CLI and curl.
- Browser
- Download file 1.55 kB
-
https://huggingface.co/spaces/SERHANI/model2/resolve/main/app.py
- Command line
-
hf download hf://spaces/SERHANI/model2/app.py
-
curl -L -o app.py https://huggingface.co/spaces/SERHANI/model2/resolve/main/app.py
1.55 kB
| from ultralytics import YOLO | |
| from flask import Flask, request, jsonify | |
| from PIL import Image, ImageDraw | |
| import io | |
| app = Flask(__name__) | |
| model = YOLO('best.pt') # Load your YOLO model | |
| class_names = ['Acne', 'Dark circles', 'blackheads', 'eczema', 'rosacea', 'whiteheads', 'wrinkles'] | |
| def classify_image(): | |
| if 'image' not in request.files: | |
| return jsonify({"error": "No image provided"}), 400 | |
| file = request.files['image'] | |
| if file.filename == '': | |
| return jsonify({"error": "Empty image file"}), 400 | |
| image = Image.open(io.BytesIO(file.read())) | |
| resized_image = image.copy() | |
| resized_image.thumbnail((640, 640)) | |
| # Get results from the model | |
| results = model(resized_image)[0] | |
| predictions = [] | |
| if results.boxes is not None: | |
| boxes = results.boxes.xyxy | |
| confidences = results.boxes.conf | |
| classes = results.boxes.cls | |
| for i in range(len(boxes)): | |
| box = boxes[i] | |
| confidence = confidences[i].item() | |
| class_id = int(classes[i].item()) | |
| prediction = { | |
| "x1": box[0].item(), | |
| "y1": box[1].item(), | |
| "x2": box[2].item(), | |
| "y2": box[3].item(), | |
| "confidence": confidence, | |
| "class": class_names[class_id], | |
| } | |
| predictions.append(prediction) | |
| return jsonify({"predictions": predictions}) | |
| if __name__ == '__main__': | |
| app.run(host='127.0.0.1', port=5000, debug=True) | |