рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди: Gradio & Ultralytics YOLOv8 ЁЯЪА

рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдЪрдп

рдпрд╣ Gradio рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рдФрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ Ultralytics YOLOv8 рдХреЛ рдЧрдврд╝рдирд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдереНрд░реЗрд╢реЛрд▓реНрдб рдФрд░ рдЗрдВрдЯрд░рд╕реЗрдХреНрд╢рди-рдУрд╡рд░-рдпреВрдирд┐рдпрди (IoU) рдереНрд░реЗрд╢реЛрд▓реНрдб рдЬреИрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП Gradio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

  • рдЙрдкрднреЛрдХреНрддрд╛ - рдЕрдиреБрдХреВрд▓ рдЗрдВрдЯрд░рдлреЗрд╕: Gradio рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХреЛрдбрд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдкрд╣рдЪрд╛рди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдзрд╛ рдордВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕рдорд╛рдпреЛрдЬрди: рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдФрд░ IoU рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдЬреИрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдордХреНрдЦреА рдкрд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рддрддреНрдХрд╛рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред
  • рд╡реНрдпрд╛рдкрдХ рдкрд╣реБрдБрдЪ: Gradio рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреЛрдИ рднреА рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдкреНрд░рджрд░реНрд╢рдиреЛрдВ, рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдФрд░ рддреНрд╡рд░рд┐рдд рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрдкрдХрд░рдг рдмрди рдЬрд╛рддрд╛ рд╣реИред

Gradio рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

Gradio рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

pip install gradio

рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ

  1. рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ: рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрдореЗрдЬ рдлрд╛рдЗрд▓ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП 'рдЕрдкрд▓реЛрдб рдЗрдореЗрдЬ' рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
  2. рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ:
    • рдХреЙрдиреНрдлрд┐рдбреЗрдВрд╕ рдереНрд░реЗрд╢реЛрд▓реНрдб: рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд▓рд╛рдЗрдбрд░ред
    • IoU рдереНрд░реЗрд╢реЛрд▓реНрдб: рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП IoU рдереНрд░реЗрд╢реЛрд▓реНрдб рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд▓рд╛рдЗрдбрд░ред
  3. рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВ: рдкрддрд╛ рд▓рдЧрд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЙрдирдХреЗ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред

рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ

  • рдирдореВрдирд╛ рдЫрд╡рд┐ 1: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреЗ рд╕рд╛рде рдмрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ред
  • рдирдореВрдирд╛ рдЫрд╡рд┐ 2: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЦреЗрд▓ рдЫрд╡рд┐ рдкрд░ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ред

рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг

рдпрд╣ рдЦрдВрдб рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ Python рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ Gradio рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ Ultralytics YOLOv8 рдХреЛ рдЧрдврд╝рдирд╛ред рд╡рд░реНрдЧреАрдХрд░рдг рдХрд╛рд░реНрдпреЛрдВ, рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ, рд╡рд┐рднрд╛рдЬрди рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

import gradio as gr
import PIL.Image as Image
from ultralytics import ASSETS, YOLO

model = YOLO("yolov8n.pt")


def predict_image(img, conf_threshold, iou_threshold):
    """Predicts and plots labeled objects in an image using YOLOv8 model with adjustable confidence and IOU thresholds."""
    results = model.predict(
        source=img,
        conf=conf_threshold,
        iou=iou_threshold,
        show_labels=True,
        show_conf=True,
        imgsz=640,
    )

    for r in results:
        im_array = r.plot()
        im = Image.fromarray(im_array[..., ::-1])

    return im


iface = gr.Interface(
    fn=predict_image,
    inputs=[
        gr.Image(type="pil", label="Upload Image"),
        gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
        gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
    ],
    outputs=gr.Image(type="pil", label="Result"),
    title="Ultralytics Gradio",
    description="Upload images for inference. The Ultralytics YOLOv8n model is used by default.",
    examples=[
        [ASSETS / "bus.jpg", 0.25, 0.45],
        [ASSETS / "zidane.jpg", 0.25, 0.45],
    ],
)

if __name__ == "__main__":
    iface.launch()

рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг

рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо рдкреНрд░рдХрд╛рд░ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
img Image рд╡рд╣ рдЫрд╡рд┐ рдЬрд┐рд╕ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
conf_threshold float рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд╣рд▓реАрдЬред
iou_threshold float рдСрдмреНрдЬреЗрдХреНрдЯ рдкреГрдердХреНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЪреМрд░рд╛рд╣реЗ-рдУрд╡рд░-рдпреВрдирд┐рдпрди рдереНрд░реЗрд╕рд╣реЛрд▓реНрдбред

Gradio рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдШрдЯрдХ

рдШрдЯрдХ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
рдЫрд╡рд┐ рдЗрдирдкреБрдЯ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдФрд░ IoU рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЫрд╡рд┐ рдЖрдЙрдЯрдкреБрдЯ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред


рдмрдирд╛рдпрд╛ рдЧрдпрд╛ 2024-02-01, рдЕрджреНрдпрддрдиреНрдп: 2024-05-18
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (3), рд░рд┐рдЬрд╡рд╛рди рдореБрдирд╡реНрд╡рд░ (1)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ