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.

FabriqueChargePrompt au moment de l'appelExtra requis
LibreYOLOFamilles sans prompt, en inspectant le checkpoint ou le suffixe du fichier
LibreSAMSegmenteurs guidables, par alias de taillePoints, bounding boxes ou texte conceptuelsam
LibreVLMDétecteurs vision-langage génératifs, par aliasVocabulaire de classes ou prompt librevlm
LibreOpenVocabDétecteurs conditionnés par du texte, par aliasVocabulaire de classesopenvocab
LibreGenModèles génératifs, par alias ou répertoire de modèle localUn prompt texte (texte vers image) ou une image (image vers 3D)gen
LibreEnsembleAu moins deux détecteurs, fusionnés derrière une interface
Points d'entrée
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.

python
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.

Tout charger avec une seule fabrique
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)
Importer directement une classe de famille
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__ :

python
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.

python
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.

Noms et signatures lus dans libreyolo/__init__.py, libreyolo/models/__init__.py, libreyolo/models/base/model.py, libreyolo/models/base/inference.py, libreyolo/models/sam/model.py, libreyolo/models/vlm/__init__.py, libreyolo/models/openvocab/__init__.py et libreyolo/ensemble/model.py en v1.6.0.