Skip to content

Détection interactive d'objets : Gradio & Ultralytics YOLOv8 🚀

Introduction à la détection interactive d'objets

Cette interface Gradio offre un moyen facile et interactif d'effectuer la détection d'objets à l'aide du Ultralytics YOLOv8 modèle. Les utilisateurs peuvent télécharger des images et ajuster des paramètres tels que le seuil de confiance et le seuil d'intersection au-dessus de l'union (IoU) pour obtenir des résultats de détection en temps réel.

Pourquoi utiliser Gradio pour la détection d'objets ?

  • Interface conviviale : Gradio offre une plateforme simple aux utilisateurs pour qu'ils puissent tĂ©lĂ©charger des images et visualiser les rĂ©sultats de la dĂ©tection sans avoir besoin de coder.
  • Ajustements en temps rĂ©el : Les paramètres tels que les seuils de confiance et d'IoU peuvent ĂŞtre ajustĂ©s Ă  la volĂ©e, ce qui permet un retour d'information immĂ©diat et l'optimisation des rĂ©sultats de la dĂ©tection.
  • Large accessibilitĂ© : L'interface web de Gradio est accessible Ă  tous, ce qui en fait un excellent outil pour les dĂ©monstrations, les objectifs Ă©ducatifs et les expĂ©riences rapides.

Exemple de capture d'Ă©cran de Gradio

Comment installer Gradio

pip install gradio

Comment utiliser l'interface

  1. Télécharger une image : Clique sur "Télécharger une image" pour choisir un fichier image pour la détection des objets.
  2. Ajuste les paramètres :
    • Seuil de confiance : Curseur permettant de dĂ©finir le niveau de confiance minimum pour la dĂ©tection des objets.
    • Seuil de l'indice d'utilitĂ© : Curseur permettant de rĂ©gler le seuil de l'IoU pour distinguer les diffĂ©rents objets.
  3. Voir les résultats : L'image traitée avec les objets détectés et leurs étiquettes s'affiche.

Exemples de cas d'utilisation

  • Exemple d'image 1 : dĂ©tection de bus avec les seuils par dĂ©faut.
  • Exemple d'image 2 : dĂ©tection sur une image de sport avec les seuils par dĂ©faut.

Exemple d'utilisation

Cette section fournit le code Python utilisé pour créer l'interface Gradio avec le modèle Ultralytics YOLOv8 . Prend en charge les tâches de classification, de détection, de segmentation et de points clés.

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()

Explication des paramètres

Nom du paramètre Type Description
img Image L'image sur laquelle la détection des objets sera effectuée.
conf_threshold float Seuil de confiance pour la détection d'objets.
iou_threshold float Seuil d'intersection sur l'union pour la séparation des objets.

Composants de l'interface Gradio

Composant Description
Entrée d'image Pour télécharger l'image à des fins de détection.
Sliders Pour ajuster les seuils de confiance et les seuils de référence.
Sortie d'image Pour afficher les résultats de la détection.


Créé le 2024-02-01, Mis à jour le 2024-05-18
Auteurs : glenn-jocher (3), RizwanMunawar (1)

Commentaires