Files
jardin/consigne_yolo.md
2026-02-22 15:05:40 +01:00

16 KiB
Raw Blame History

Modèle prêt à lemploi pour plantes

Un modèle YOLOv8s “Leaf Detection & Classification” est disponible sur Hugging Face. Il peut détecter et classer différents types de feuilles de plantes directement, sans entraînement préalable.

  1. Prérequis / Installation

Ouvre un terminal et installe ces dépendances :

python3 -m venv venv source venv/bin/activate

pip install ultralyticsplus==0.0.28 ultralytics==8.0.43 opencv-python matplotlib

ultralytics : bibliothèque YOLOv8

ultralyticsplus : extension recommandée

opencv-python + matplotlib : affichage images

  1. Exemple de script Python detect_plants.py

Crée un fichier detect_plants.py :

from ultralyticsplus import YOLO, render_result import cv2

1) Charger le modèle

model = YOLO("foduucom/plant-leaf-detection-and-classification")

2) Paramètres de détection

model.overrides['conf'] = 0.25 model.overrides['iou'] = 0.45 model.overrides['max_det'] = 1000

3) Chargement dune image

image_path = "ma_plante.jpg"

4) Prédiction (détection + classification de feuilles)

results = model.predict(image_path)

5) Récupération des boîtes détectées

boxes = results[0].boxes class_ids = results[0].boxes.cls scores = results[0].boxes.conf

print("Détections :", len(boxes)) for i, box in enumerate(boxes): print(f"- Classe {class_ids[i]}, score {scores[i]:.2f}")

6) Annoter limage

annotated = render_result(model=model, image=image_path, result=results[0])

7) Afficher limage annotée

annotated.show()

Points clés :

YOLO("foduucom/...") charge le modèle leaf detection YOLOv8.

predict(image_path) exécute linférence sur limage locale.

  1. Mode batch / dossier complet

Si tu veux traiter plusieurs images dans un dossier :

import glob

for file in glob.glob("images/*.jpg"): results = model.predict(file)

print(f"== Résultats pour {file} ==")
for box in results[0].boxes:
    print(box.cls, box.conf)

render_result(model=model, image=file, result=results[0]).show()
  1. Comment adapter au “type de plante”

Le modèle dorigine peut classifier 46 classes de feuilles courantes (pommes, tomates, blé…) avec étiquette.

Si tu as ton propre dataset spécifique (autres plantes, fleurs, fruits) → il faut :

créer un dataset annoté en format YOLO

fine-tuner YOLOv8 dessus

utiliser train() de la bibliothèque ultralytics

📌 Feuille de consignes (Checklist) 📌 A) Préparation

Python 3.10+ installé

GPU disponible si possible (beaucoup + rapide)

Images bien cadrées (feuilles principales visibles)

📌 B) Installation pip install ultralyticsplus ultralytics opencv-python matplotlib 📌 C) Tester une image

Place ma_plante.jpg dans le même dossier

Lance :

python detect_plants.py 📌 D) Résultats

Vérifier :

nombre de feuilles détectées

classes attribuées

score de confiance

📌 E) Prochaine étape (facultative)

Si tu veux augmenter la précision :

🔹 collecter plus dimages 🔹 annoter avec LabelImg ou Roboflow 🔹 entraîner/fine-tuner YOLOv8 🔹 tester sur mobile/web

Limitations à connaître

ce modèle est spécifique aux feuilles (pas fleurs/fruit complets).

performances variables selon qualité photo.

nécessite parfois GPU pour performance fluide.

Si tu veux, je peux aussi te fournir une version prête à lemploi pour entraîner toi-même sur tes propres photos (annotation automatique + scripts dentraînement YOLO). Modèle prêt à lemploi pour plantes

Un modèle YOLOv8s “Leaf Detection & Classification” est disponible sur Hugging Face. Il peut détecter et classer différents types de feuilles de plantes directement, sans entraînement préalable.

  1. Prérequis / Installation

Ouvre un terminal et installe ces dépendances :

python3 -m venv venv source venv/bin/activate

pip install ultralyticsplus==0.0.28 ultralytics==8.0.43 opencv-python matplotlib

ultralytics : bibliothèque YOLOv8

ultralyticsplus : extension recommandée

opencv-python + matplotlib : affichage images

  1. Exemple de script Python detect_plants.py

Crée un fichier detect_plants.py :

from ultralyticsplus import YOLO, render_result import cv2

1) Charger le modèle

model = YOLO("foduucom/plant-leaf-detection-and-classification")

2) Paramètres de détection

model.overrides['conf'] = 0.25 model.overrides['iou'] = 0.45 model.overrides['max_det'] = 1000

3) Chargement dune image

image_path = "ma_plante.jpg"

4) Prédiction (détection + classification de feuilles)

results = model.predict(image_path)

5) Récupération des boîtes détectées

boxes = results[0].boxes class_ids = results[0].boxes.cls scores = results[0].boxes.conf

print("Détections :", len(boxes)) for i, box in enumerate(boxes): print(f"- Classe {class_ids[i]}, score {scores[i]:.2f}")

6) Annoter limage

annotated = render_result(model=model, image=image_path, result=results[0])

7) Afficher limage annotée

annotated.show()

Points clés :

YOLO("foduucom/...") charge le modèle leaf detection YOLOv8.

predict(image_path) exécute linférence sur limage locale.

  1. Mode batch / dossier complet

Si tu veux traiter plusieurs images dans un dossier :

import glob

for file in glob.glob("images/*.jpg"): results = model.predict(file)

print(f"== Résultats pour {file} ==")
for box in results[0].boxes:
    print(box.cls, box.conf)

render_result(model=model, image=file, result=results[0]).show()
  1. Comment adapter au “type de plante”

Le modèle dorigine peut classifier 46 classes de feuilles courantes (pommes, tomates, blé…) avec étiquette.

Si tu as ton propre dataset spécifique (autres plantes, fleurs, fruits) → il faut :

créer un dataset annoté en format YOLO

fine-tuner YOLOv8 dessus

utiliser train() de la bibliothèque ultralytics

📌 Feuille de consignes (Checklist) 📌 A) Préparation

Python 3.10+ installé

GPU disponible si possible (beaucoup + rapide)

Images bien cadrées (feuilles principales visibles)

📌 B) Installation pip install ultralyticsplus ultralytics opencv-python matplotlib 📌 C) Tester une image

Place ma_plante.jpg dans le même dossier

Lance :

python detect_plants.py 📌 D) Résultats

Vérifier :

nombre de feuilles détectées

classes attribuées

score de confiance

📌 E) Prochaine étape (facultative)

Si tu veux augmenter la précision :

🔹 collecter plus dimages 🔹 annoter avec LabelImg ou Roboflow 🔹 entraîner/fine-tuner YOLOv8 🔹 tester sur mobile/web

Limitations à connaître

ce modèle est spécifique aux feuilles (pas fleurs/fruit complets).

performances variables selon qualité photo.

nécessite parfois GPU pour performance fluide.

Si tu veux, je peux aussi te fournir une version prête à lemploi pour entraîner toi-même sur tes propres photos (annotation automatique + scripts dentraînement YOLO). Voici des outils et méthodes open-source que tu peux utiliser pour annoter automatiquement ou semi-automatiquement un dataset dimages (pour entraîner YOLOv8 ou tout autre modèle de détection), y compris pour des plantes, feuilles, fleurs, etc. :

🧩 Outils dannotation (semi-automatique et automatique) 📌 1) Roboflow Annotate

Plateforme web qui propose des outils dassistance par IA pour accélérer lannotation :

Possibilité dimporter tes images et de générer des annotations avec de lassistance IA (Label Assist / Auto Label).

Permet dexporter les annotations en formats compatibles YOLO.

Gratuit jusquà certaines limites, fonctionne via interface web.

Pas besoin dhéberger toi-même un serveur.

📌 2) Auto-Annotation avec Autodistill + Grounding DINO

Une approche plus avancée pour annoter automatiquement des images :

Utilise des modèles de type Grounding DINO pour détecter des objets selon un texte (ex : “feuille”, “fleur”, “fruit”).

Génère ensuite automatiquement des fichiers dannotation cachés au format YOLO.

Cette méthode diminue le travail humain car elle produit dabord des étiquettes automatiques que lon peut ensuite corriger.

Cest pratique si tu as beaucoup dimages brutes à annoter.

📌 3) CVAT (Computer Vision Annotation Tool)

Outil open source complet pour annotations :

Interface web pour annoter images et vidéos.

Supporte la pré-annotation automatique à partir de modèles pré-entraînés (tu peux importer un modèle YOLO).

Permet déconomiser du temps en générant des boîtes automatiquement puis en les corrigeant.

Convient bien pour des datasets de plantes.

👉 CVAT est lun des outils les plus utilisés dans la communauté CV pour annotation manuelle assistée par IA ou modèles pré-entraînés.

📌 4) Outils open-source dannotation classiques

Si tu veux annoter manuellement ou semi-manuellement :

LabelImg outil graphique pour créer des boîtes et exporter en YOLO.

Label Studio annotation flexible multi-tâches (mais souvent plus généraliste).

Autres outils listés (Yolo_Label, Make Sense, Scalabel, etc.) pour différents formats et workflows.

🧠 Méthodes dannotation automatique (workflow avancé)

Voici comment automatiser ton annotation avant dentraîner YOLO :

  1. Pré-annotation automatique avec modèle existant

Charge un modèle de vision comme YOLOv8 ou un autre détecteur pré-entraîné.

Passe tes images au modèle pour générer des boîtes et labels provisoires.

Convertis ces détections en fichiers .txt YOLO.

Révise / corrige les erreurs ensuite (important car lauto-annotation nest pas parfaite).

  1. Utiliser Segment Anything / Autodistill

Combine Segment Anything (SAM) avec un modèle de détection (ex : Grounding DINO).

Segment Anything fournit des masques / régions intéressantes.

Grounding DINO relie ces régions à des classes par texte.

Autodistill convertit ensuite ce résultat en étiquettes format YOLO.

Utile pour réduire le travail manuel et créer rapidement un dataset.

🔎 Résumé des possibilités Outil / Méthode Automatique possible Semi-Automatique Export YOLO Roboflow Annotate ✔️ (modèles IA intégrés) ✔️ ✔️ Autodistill + DINO ✔️ ✔️ CVAT ✔️ (pré-annotation) ✔️ ✔️ LabelImg / Label Studio ✔️ ✔️ ⚠️ Conseils importants

Auto-annotation nest jamais parfaite — vérifie et corrige toujours les annotations manuellement pour que le modèle que tu entraine apprenne bien.

Lannotation est souvent le goulot détranglement des projets CV : mieux les étiquettes sont, meilleur sera ton modèle.

Si tu veux, je peux te générer un script Python qui intègre Autodistill + Grounding DINO pour auto-annoter ton dossier dimages plantes en format YOLO. Veux-tu un tel script prêt à lemploi ? (Si oui, dis-moi le système dexploitation que tu utilises : Linux, Windows ou macOS.)

Voici un script Python auto-hôte complet pour annoter automatiquement ton propre dataset dimages (par exemple feuilles/fleurs/plantes) au format YOLO, en utilisant Autodistill + un modèle de type Grounding DINO pour générer automatiquement les fichiers dannotation avant entraînement YOLOv8.

Ce workflow utilise loutil Autodistill, qui combine des « base models » (par exemple GroundedSAM/Grounding DINO) pour auto-labeler des images et génère ensuite un dataset prêt à lentraînement YOLOv8 — sans annotation manuelle préalable.

1) Installation des dépendances

Dans un terminal, crée un environnement Python propre et installe les librairies nécessaires :

python3 -m venv venv source venv/bin/activate

pip install autodistill autodistill-grounded-sam autodistill-yolov8 ultralytics opencv-python

autodistill : framework principal pour auto-annotation

autodistill-grounded-sam : combine Grounding DINO + SAM pour auto-labeling

autodistill-yolov8 : plugin pour entraîner YOLOv8 après génération

ultralytics, opencv-python : pour lentraînement et le test YOLOv8

📁 2) Organisation du dataset

Place toutes tes images non annotées dans un dossier unique, par exemple :

dataset/ raw_images/ photo1.jpg photo2.jpg ... 🧠 3) Script Python dauto-annotation + préparation YOLO

Crée un fichier auto_annotate_and_export.py :

from autodistill_grounded_sam import GroundedSAM from autodistill.detection import CaptionOntology import os import json

=========================

1) Définir l'ontologie

=========================

Chaque clé est une description textuelle que le modèle tentera

de repérer dans l'image. La valeur est l'étiquette qui sera utilisée.

Tu peux ajouter autant de classes que nécessaire :

ontology_map = { "leaf of a plant": "leaf", "flower of a plant": "flower", "fruit of a plant": "fruit" }

base_model = GroundedSAM(ontology=CaptionOntology(ontology_map))

=========================

2) Folder paths

=========================

INPUT_FOLDER = "./dataset/raw_images" OUTPUT_FOLDER = "./dataset/auto_labeled"

os.makedirs(OUTPUT_FOLDER, exist_ok=True)

=========================

3) Auto-label all images

=========================

print(" Auto-labeling images with GroundedSAM (Grounding DINO + SAM)...") base_model.label_folder( input_folder=INPUT_FOLDER, output_folder=OUTPUT_FOLDER )

print("🟢 Auto-labeling terminé !") print(f"Annotations générées dans : {OUTPUT_FOLDER}") 📌 Ce que fait le script

Il lance GroundedSAM (basé sur Grounding DINO + SAM) pour analyser chaque image.

Il utilise les prompts textuels que tu définis dans la variable ontology_map pour associer chaque objet détecté à une classe.

Il écrit automatiquement les fichiers dannotation au format YOLO dans le dossier auto_labeled.

Le résultat est un dataset prêt à lentraînement YOLOv8.

📝 4) Vérifier les résultats

Après ce script, ton dossier dataset/auto_labeled doit contenir :

dataset/auto_labeled/ images/ photo1.jpg photo2.jpg ... labels/ photo1.txt photo2.txt ...

Chaque .txt contient des lignes du type :

0 0.4532 0.3124 0.1824 0.2763

(correspondant à <class_id> <x_center> <y_center> au format YOLO)

🚀 5) Entraînement YOLOv8 sur les données générées

Ensuite, tu peux entraîner YOLOv8 avec ces annotations :

✍ Crée un fichier data.yaml : path: dataset/auto_labeled train: images val: images

names: 0: leaf 1: flower 2: fruit

Assure-toi que lordre des noms correspond à lordre utilisé dans ontology_map.

🎓 Lance lentraînement

Dans ton terminal :

yolo task=detect mode=train model=yolov8n.pt data=data.yaml epochs=50 imgsz=640

model=yolov8n.pt : YOLOv8-nano (léger, rapide)

epochs=50 : nombre ditérations dentraînement

imgsz=640 : taille des images

📌 6) Tester ton modèle

Après entraînement, test :

yolo task=detect mode=predict model=runs/detect/train/weights/best.pt source="test_images/"

Les images annotées seront enregistrées sous runs/detect/predict.

🧾 Résumé des étapes Étape Description 1 Installer Autodistill & plugins 2 Mettre toutes les images brutes dans un dossier 3 Lancer le script dauto-annotation 4 Vérifier images + .txt générés 5 Entraîner YOLOv8 avec ces données 6 Tester le modèle entraîné ⚠️ Conseils & limitations

Lauto-annotation nest pas parfaite : certains objets peuvent être mal classés ou mal localisés — revise au besoin.

Les prompts textuels (ontology_map) doivent être précis et adaptés à ce que tu veux détecter (feuilles, fleurs, etc.).

Un GPU rend lentraînement YOLOv8 bien plus rapide.

Si tu veux, je peux générer une version complète du data.yaml prête à lemploi ou adapter ce pipeline à des situations spécifiques (ex : dataset grand public, interface graphique simple, intégration mobile). Dis-moi juste le cas dusage que tu vises.