File size: 1,487 Bytes
a8ea06f
 
 
 
 
 
 
 
 
 
 
28bf7eb
 
a8ea06f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28bf7eb
a8ea06f
 
 
 
 
 
 
 
28bf7eb
a8ea06f
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from flask import Flask, render_template, jsonify, request, send_file
import psutil
import json
from ultralytics import YOLO
import cv2
import numpy as np
from PIL import Image
import io
import base64

app = Flask(__name__)
modelName = "yolov9c-seg.pt"
model = YOLO(modelName)


@app.route("/")
def home():
    return render_template("index.html")


@app.route("/sysInfo")
def sysInfo():
    ram = psutil.virtual_memory()
    ram_usage = ram.percent
    cpu_usage = psutil.cpu_percent(interval=1)
    data = {"ram": ram_usage, "cpu": cpu_usage}
    return jsonify(data)


@app.route("/processor", methods=["POST"])
def processor():
    global modelName, model
    image = request.form.get("image")
    modelNameForm = request.form.get("model", modelName)
    if modelNameForm != modelName:
        modelName = modelNameForm
        model = YOLO(modelName)
    image = image.split(",")[1]
    image = base64.b64decode(image)
    image = Image.open(io.BytesIO(image))
    image = np.array(image)
    results = model(
        image,
        show=False,
        save=False,
        show_boxes=True,
        show_labels=True,
        imgsz=640,
        iou=0.1,
        max_det=20,
    )
    image = results[0].plot()
    image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
    image = cv2.imencode(".jpg", image)[1].tobytes()
    image = base64.b64encode(image).decode("utf-8")
    return jsonify({"image": image})


app.run(debug=True, host="0.0.0.0", port=7860)
# app.run(debug=True)