amitkumar299/object-detection
0
1from flask import Flask, render_template, request, jsonify2import cv23import numpy as np4from ultralytics import YOLO5import base646 7app = Flask(__name__)8model = YOLO("yolov8n.pt")9 10def readb64(base64_string):11 if ',' not in base64_string:12 raise ValueError("Invalid base64 image string.")13 header, encoded = base64_string.split(',', 1)14 if not encoded:15 raise ValueError("Empty base64 image data.")16 nparr = np.frombuffer(base64.b64decode(encoded), np.uint8)17 img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)18 if img is None:19 raise ValueError("Image decoding failed.")20 return img21 22 23@app.route('/')24def index():25 return render_template('index.html')26 27@app.route('/detect', methods=['POST'])28def detect():29 data = request.get_json()30 frame_data = data['image']31 32 frame = readb64(frame_data)33 results = model.predict(frame, conf=0.5)34 annotated = results[0].plot()35 36 _, buffer = cv2.imencode('.jpg', annotated)37 annotated_b64 = base64.b64encode(buffer).decode('utf-8')38 return jsonify({'image': f'data:image/jpeg;base64,{annotated_b64}'})39 40if __name__ == '__main__':41 app.run(host='0.0.0.0', port=7860)42 