Prise en main

Le parcours le plus court dans LibreYOLO : prédire sur une image, entraîner sur un petit dataset, puis exporter le résultat. Toutes les commandes présentées ici s'exécutent sur CPU.

Installation
pip install libreyolo
Checkpoint
LibreYOLO9t.pt
Matériel
Le CPU suffit pour tout le contenu de cette page

Installer

bash
pip install libreyolo

C'est tout ce dont les sections de prédiction et d'entraînement ci-dessous ont besoin. L'exportation vers ONNX ajoute un extra. Consultez la page installer pour obtenir la liste complète.

Prédire

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Télécharge le checkpoint à la première utilisation, puis le met en cache dans weights/.model = LibreYOLO("LibreYOLO9t.pt") # Une image unique renvoie un objet Results.result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(result.names[int(box.cls)], float(box.conf), box.xyxy.tolist())
CLI
libreyolo predict model=yolo9-t save=True \  source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg
Vidéos et flux
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO9t.pt") # stream=True produit un Results par image au lieu de construire une liste.# Remplacez le chemin par l'indice d'une webcam, une URL RTSP ou un dossier.for result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

LibreYOLO() est une fabrique. Elle lit le fichier, détermine à quelle famille appartiennent les poids et renvoie le modèle de cette famille. Changer de détecteur ne demande donc qu'une ligne. Lorsque LibreYOLO9t.pt est fourni sans répertoire, la fabrique recherche weights/LibreYOLO9t.pt relativement au répertoire de travail et le télécharge à cet emplacement s'il manque. Consultez checkpoints et poids pour connaître les règles de téléchargement et le fonctionnement hors ligne.

save=True écrit une copie annotée sous runs/detect/, dans un répertoire predict incrémenté à chaque exécution. L'objet Results renvoyé contient boxes, tandis que names associe l'indice d'une classe à son étiquette. Le chemin d'une seule image renvoie un Results. Un répertoire, une liste d'images ou stream=True renvoie une liste ou un générateur de résultats.

Entraîner

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO9t.pt") # coco8 est un dataset de 8 images inclus dans la bibliothèque. Il se# télécharge depuis une URL à la première utilisation, sans script à exécuter.results = model.train(    data="coco8.yaml",    epochs=1,    imgsz=640,    batch=4,    device="cpu",) print(results["save_dir"])print(results["best_checkpoint"])
CLI
libreyolo train model=yolo9-t data=coco8.yaml \  epochs=1 imgsz=640 batch=4 device=cpu
Valider
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO9t.pt") # val() renvoie un dictionnaire ordinaire et non un objet.metrics = model.val(data="coco8.yaml", device="cpu") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])print(metrics["metrics/precision"], metrics["metrics/recall"])

data est un fichier YAML de dataset. coco8.yaml est inclus dans la bibliothèque, ce qui permet d'exécuter l'extrait tel quel. Un nom qui n'est pas inclus est interprété comme un chemin. Les datasets sont recherchés sous ~/datasets ou sous LIBREYOLO_DATASETS_DIR lorsque cette variable est définie.

Une exécution écrit ses fichiers dans project/name, par défaut dans un répertoire sous runs/train, avec weights/best.pt et weights/last.pt. train() renvoie un dictionnaire qui contient save_dir, best_checkpoint, last_checkpoint, les pertes de chaque époque et les métriques de validation de chaque époque. Le checkpoint entraîné se charge par LibreYOLO() exactement comme le checkpoint pré-entraîné.

Toutes les familles ne peuvent pas être entraînées. Lorsqu'une famille est limitée à l'inférence, train() déclenche une NotImplementedError et le signale. La page concepts fondamentaux explique la signification de chaque niveau de prise en charge.

Exporter

TorchScript
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO9t.pt") # export() renvoie le chemin qu'elle a écrit.path = model.export(format="torchscript")print(path) # La fabrique s'oriente grâce au suffixe du fichier. L'artefact se recharge# donc comme un checkpoint et renvoie le même objet Results.exported = LibreYOLO(path)result = exported(SAMPLE_IMAGE)print(len(result.boxes))
ONNX
pip install "libreyolo[onnx]"libreyolo export model=yolo9-t format=onnx imgsz=640

TorchScript ne demande rien de plus que l'installation de base. Les autres cibles possèdent chacune leur propre extra, et la couverture dépend de la famille et de la tâche. Consultez exporter et déployer.

Les arguments acceptés par tous les formats comprennent imgsz (un entier ou une paire hauteur-largeur), batch (1 par défaut), half, int8 avec un fichier YAML data pour l'étalonnage, dynamic (true par défaut), simplify (true par défaut), opset, device et output_path. Lorsque output_path est omis, le fichier est écrit sous weights/ avec un nom dérivé du checkpoint.

Pour aller plus loin

Vérifié avec LibreYOLO v1.5.0.