API Python
L'interface Python publique de LibreYOLO est la liste __all__ de libreyolo/__init__.py. Les exports du package utilisent from libreyolo import <name> ; les protocoles de suivi et d'entraînement ci-dessous utilisent leurs sous-modules nommés.
Points d'entrée
Les fabriques chargent des modèles ou configurent des clients API. Ils sont séparés selon leur contrat d'appel et non leur architecture.
| Fabrique | Charge | Prompt au moment de l'appel | Extra requis |
|---|---|---|---|
LibreYOLO | Familles sans prompt, en inspectant le checkpoint ou le suffixe du fichier | ||
LibreSAM | Segmenteurs guidables, par alias de taille | Points, bounding boxes ou texte conceptuel | sam |
LibreVLM | Détecteurs vision-langage génératifs, par alias | Vocabulaire de classes ou prompt libre | vlm |
LibreOpenVocab | Détecteurs conditionnés par du texte, par alias | Vocabulaire de classes | openvocab |
LibreGen | Modèles génératifs, par alias ou répertoire de modèle local | Un prompt texte (texte vers image) ou une image (image vers 3D) | gen |
LibreEnsemble | Au moins deux détecteurs, fusionnés derrière une interface |
from libreyolo import LibreYOLO, LibreEnsemble # Fabrique des familles sans prompt qui inspecte les poids.detector = LibreYOLO("LibreYOLO9t.pt") # Au moins deux détecteurs derrière une interface de prédiction unique.ens = LibreEnsemble(["LibreYOLO9t.pt", "LibreYOLO9s.pt"]) # Les trois autres fabriques exigent l'installation d'un extra :# pip install 'libreyolo[sam]' -> from libreyolo import LibreSAM# pip install 'libreyolo[vlm]' -> from libreyolo import LibreVLM# pip install 'libreyolo[openvocab]' -> from libreyolo import LibreOpenVocabprint(type(detector).__name__, ens.fusion)LibreYOLO accepte des fichiers de checkpoint et des artefacts exportés. Les fabriques associées acceptent des alias de modèles ; LibreVLM et LibreVLA rechargent aussi leurs propres répertoires de checkpoints sauvegardés, et LibreGen charge un répertoire de modèle local au format upstream d'une famille prise en charge.
LibreYOLO( model_path: str, size: str | None = None, reg_max: int = 16, nb_classes: int | None = None, device: str = "auto", task: str | None = None, compute_units: str = "all",)model_path accepte un checkpoint .pt, un fichier ONNX .onnx, un fichier
ExecuTorch .pte, MNN .mnn ou TensorRT .engine, un répertoire OpenVINO,
Paddle ou ncnn, ou une URL de modèle Triton HTTP ou HTTPS. size et
nb_classes sont lus dans le checkpoint lorsqu'ils sont omis. compute_units
n'est lu que pour le chargement de packages CoreML .mlpackage et accepte
all, cpu_only, cpu_and_gpu ou cpu_and_ne. task accepte tout nom de
tâche canonique de libreyolo.tasks.TASKS.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO9t.pt") # Une source image unique renvoie un objet Results ; une liste ou un répertoire# en renvoie une liste.result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)print(result.names)from libreyolo import LibreYOLO9, SAMPLE_IMAGE model = LibreYOLO9("LibreYOLO9t.pt", size="t")result = model(SAMPLE_IMAGE) print(len(result))LibreGround associe des instructions à des points dans l'image ; LibreVLA prédit des séquences d'actions robotiques ; LibreLLM appelle un endpoint distant compatible de modèle de langage. Consultez l'API de grounding, l'API de politiques et le client de modèle de langage.
LibreYOLO("hf://owner/repo@revision/filename") charge des checkpoints Hub. model.push_to_hub(repo_id, private=False) publie un checkpoint et sa fiche. La référence Hub définit la résolution et l'authentification.
Classes de familles
Chaque famille que la fabrique peut renvoyer est également exportée par nom.
Vous pouvez ainsi construire directement une classe lorsque le checkpoint est
connu à l'avance. Les constructeurs suivent BaseModel.__init__ :
Family(model_path, size, nb_classes=80, device="auto", task=None, **kwargs)Les valeurs par défaut du constructeur varient selon la famille ; consultez sa signature avant de l'appeler directement. YOLO9 et ses variantes insèrent reg_max: int = 16 après size.
Familles de détection et multitâches : LibreYOLO9, LibreYOLO9E2E,
LibreYOLO9P2, LibreYOLONAS, LibreYOLOX, LibreYOLO7, LibreYOLO4,
LibreYOLO3, LibreYOLO2, LibreYOLO1, LibreRTDETR, LibreRTDETRv2,
LibreRTDETRv4, LibreRFDETR, LibreDFINE, LibreDOMEDETR, LibreDEIM,
LibreDEIMv2, LibreDETR, LibreDeformableDETR, LibreDINODETR,
LibreLWDETR, LibreMaskRCNN, LibreFCOS, LibreFasterRCNN,
LibreRetinaNet, LibreSSD, LibreCenterNet, LibreEfficientDet,
LibreEC, LibreGTR, LibreTinyFormer, LibrePICODET, LibrePPYOLOE,
LibreRTMDet, LibreFOMO.
Familles de prédiction dense : LibreMiDaS, LibreDepthAnythingV2,
LibreDepthAnything3, LibreZipDepth, LibreMoGe2, LibreTEED,
LibreDexiNed, LibreNAFNet, LibreRealESRGAN, LibreSwinIR,
LibreBiRefNet, LibreFeyNobg, LibreFCN, LibreEoMT, LibreDeepLabv3,
LibrePIDNet, LibrePPLiteSeg, LibreUNet, LibreSegformer,
LibreLingBotVision, LibreMarigoldV2, LibreDDColor, LibreHVICIDNet,
LibreLaMa, LibreQuickSRNet, LibreBEN2, LibreViTMatte.
Familles de classification et d'embeddings : LibreViT, LibreMobileNetV4,
LibreConvNeXt, LibreDeiT, LibreSwin, LibreEfficientNetV2, LibreVGG,
LibreResNet, LibreAlexNet, LibreCLIP, LibreSigLIP2, LibreDINOv2,
LibreConvNeXtV2, LibrePE, LibreVJEPA2, LibreLeVJEPA.
Autres tâches : LibreHRNet et LibreDEKR (pose), LibreL2CS (gaze),
LibrePPOCR (ocr), LibreFaceEmbedder (embed), ainsi que les détecteurs 3D
LibreFCOS3D, LibreDetAny3D, LibreWildDet3D et Libre3DMOOD (detect3d).
Les niveaux frères exportent également leurs classes de familles : LibreSAM1,
LibreSAM2, LibreSAM3, LibreEdgeTAM, LibreMobileSAM, LibrePicoSAM3 ;
LibreGroundingDINO, LibreOWLv2, LibreOMDetTurbo ; LibreLFM2VL,
LibreQwen3VL, LibreSmolVLM2, LibreInternVL3, LibreFlorence2,
LibreKosmos2, LibreLocateAnything, LibreGemma4, LibreMoondream,
LibreMolmo2, LibreNorthMicroVision, LibreMODUS (également orthographié
LibreModus), LibreWeVisOneVL ; LibreShowUI, LibreGroundFlorence2 et LibreGroundQwen3VL
derrière LibreGround ; LibreSmolVLA, LibreACT et LibreDiffusionPolicy
derrière LibreVLA ; LibreFlux2Klein, LibreSanaSprint et
LibreSperidlabsIdol derrière LibreGen.
Interface de prédiction
L'appel d'un modèle exécute l'inférence. predict est un alias de __call__,
les deux sont donc interchangeables.
model( source=None, *, conf=0.25, iou=0.45, imgsz=None, device=None, classes=None, max_det=300, agnostic_nms=False, augment=False, save=False, batch=1, stream=False, stream_buffer=False, vid_stride=1, show=False, output_path=None, color_format="auto", tiling=False, overlap_ratio=0.2, output_file_format=None, cuda_graph=False, **kwargs,)Une source image unique renvoie un objet Results. Une liste, un tuple ou un
répertoire en renvoie une liste, tandis que stream=True renvoie un
générateur. Les autres méthodes de l'objet modèle sont documentées sur la page
de l'API du modèle.
agnostic_nms=True exécute une NMS indépendante des classes : parmi les boîtes
qui se chevauchent au-delà de iou, seule celle au score le plus élevé est
conservée, quelles que soient leurs classes. Elle s'exécute sur les détections
terminées de la famille, après le filtre classes, et couvre les tâches
detect, segment, pose et OBB, avec un IoU pivoté pour les boîtes orientées. Sur
toute autre tâche, elle lève ValueError.
Charges utiles Results
Results et ses classes de charges utiles sont exportés au niveau du
package : Results, Boxes, Masks, Keypoints, Points, Probs, OBB,
Gaze, SemanticMask, PanopticSegmentation, DepthMap, EdgeMap,
NormalMap, RestoredImage, Matte, Meshes, OCRRegions, Embeddings,
Identities. Chacune est décrite dans les
types de résultats.
Boxes3D, AlbedoMap et Actions ajoutent les cuboïdes 3D, l'albédo intrinsèque et les séquences d'actions. Consultez les types de résultats.
GeneratedImage et Gaussians portent la sortie de LibreGen : une image générée dans Results.generated et un objet 3D généré dans Results.gaussians.
Backends
Les artefacts exportés se chargent dans LibreYOLO() selon le suffixe du
fichier, les classes de backends sont donc rarement construites manuellement.
Elles sont exportées pour les cas où un backend doit être choisi explicitement :
OnnxBackend, OpenVINOBackend, PaddleBackend, TensorRTBackend,
TritonBackend, NcnnBackend, CoreMLBackend, ainsi que
create_triton_config. BaseExporter est le registre d'exporteurs utilisé
par model.export().
Validateurs
model.val() sélectionne le validateur adapté à la tâche. Les éléments
suivants sont donc exportés pour un usage direct et pour la création de
sous-classes : DetectionValidator, SegmentationValidator, PoseValidator,
SemanticValidator, PanopticValidator, DepthValidator, NormalValidator,
EdgeValidator et le ValidationConfig partagé.
Suivi
model.track() sélectionne un tracker par nom. Les classes de trackers et
leurs dataclasses de configuration sont également exportées : ByteTracker
avec TrackConfig, BoTSortTracker avec BoTSortConfig et OCSortTracker
avec OCSortConfig.
libreyolo.tracking.Tracker définit reset() et update(results, image=None) pour les instances de tracker personnalisées.
Assistants de données
DATASETS_DIR est la racine résolue des datasets, load_data_config lit un
fichier YAML de dataset et check_dataset le valide. Les chargeurs propres aux
tâches nommés dans les formats de datasets
se trouvent dans libreyolo.data plutôt qu'au niveau du package.
Galeries et distillation
Gallery et FaceGallery contiennent les vecteurs d'identités inscrites pour
la tâche embed et produisent la charge utile Identities. Distiller et
get_distill_config pilotent l'entraînement professeur-élève.
libreyolo.training.TrainFitnessCallback définit fitness(metrics) pour la sélection personnalisée de checkpoints. Consultez les callbacks de score de sélection.
Assets
SAMPLE_IMAGE est un chemin absolu vers une image fournie avec le package.
Chaque extrait de cette documentation s'exécute donc sans devoir d'abord
télécharger une image.
Imports différés et classes renommées
La plupart des noms des niveaux frères, les backends, les validateurs et les
assistants de données sont résolus par __getattr__ au niveau du module.
Importer libreyolo n'importe donc pas leurs dépendances. L'import échoue
tout de même avec un message explicite lorsque l'extra requis manque.
Deux classes ont été renommées et leur ancienne orthographe continue de se
résoudre avec un DeprecationWarning : LibreYOLORTDETR s'appelle désormais
LibreRTDETR et LibreYOLORFDETR s'appelle désormais LibreRFDETR.