API Python

API Python publik LibreYOLO adalah daftar __all__ di libreyolo/__init__.py. Ekspor tingkat paket memakai from libreyolo import <name>; protokol pelacakan dan pelatihan di bawah memakai submodul masing-masing.

Entry point

Factory memuat model atau mengonfigurasi klien API. Pemisahannya berdasarkan kontrak pemanggilan, bukan arsitektur.

FactoryMemuatPrompt saat pemanggilanEkstra yang diperlukan
LibreYOLOFamily tanpa prompt, dengan sniffing checkpoint atau suffix berkas
LibreSAMSegmenter yang dapat menerima prompt, berdasarkan alias ukuranTitik, bounding box, atau teks konsepsam
LibreVLMDetektor vision-language generatif, berdasarkan aliasVocabulary kelas atau prompt bebasvlm
LibreOpenVocabDetektor yang dikondisikan oleh teks, berdasarkan aliasVocabulary kelasopenvocab
LibreGenModel generatif, berdasarkan alias atau direktori model lokalPrompt teks (teks ke gambar) atau gambar (gambar ke 3D)gen
LibreEnsembleDua detektor atau lebih yang digabungkan menjadi satu antarmuka
Titik masuk
from libreyolo import LibreYOLO, LibreEnsemble # Factory dengan sniffing bobot untuk family tanpa prompt.detector = LibreYOLO("LibreYOLO9t.pt") # Dua detektor atau lebih di balik satu antarmuka prediksi.ens = LibreEnsemble(["LibreYOLO9t.pt", "LibreYOLO9s.pt"]) # Tiga factory lainnya memerlukan ekstra yang diinstal:#   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 menerima berkas checkpoint dan artefak ekspor. Factory lain menerima alias model; LibreVLM dan LibreVLA juga memuat ulang direktori checkpoint yang disimpannya sendiri, dan LibreGen memuat direktori model lokal dalam format upstream family yang didukung.

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 menerima checkpoint .pt, berkas ONNX .onnx, ExecuTorch .pte, MNN .mnn, TensorRT .engine, direktori OpenVINO, Paddle, atau ncnn, maupun URL model HTTP atau HTTPS Triton. size dan nb_classes dibaca dari checkpoint ketika tidak diberikan. compute_units hanya dibaca untuk pemuatan .mlpackage CoreML dan nilainya salah satu dari all, cpu_only, cpu_and_gpu, cpu_and_ne. task menerima nama task kanonis dari libreyolo.tasks.TASKS.

Muat apa pun melalui satu factory
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO9t.pt") # Sumber satu gambar mengembalikan satu Results; list atau direktori# mengembalikan list Results.result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)print(result.names)
Impor kelas family secara langsung
from libreyolo import LibreYOLO9, SAMPLE_IMAGE model = LibreYOLO9("LibreYOLO9t.pt", size="t")result = model(SAMPLE_IMAGE) print(len(result))

LibreGround memetakan instruksi ke titik gambar; LibreVLA memprediksi potongan aksi robot; LibreLLM memanggil endpoint model bahasa jarak jauh yang kompatibel. Lihat API grounding, API policy, dan klien model bahasa.

LibreYOLO("hf://owner/repo@revision/filename") memuat checkpoint Hub. model.push_to_hub(repo_id, private=False) memublikasikan checkpoint dan kartu model. Referensi Hub menjelaskan resolusi dan autentikasi.

Kelas family

Setiap family yang dapat dikembalikan factory juga diekspor berdasarkan nama, sehingga kelas dapat dibuat secara langsung ketika checkpoint telah diketahui. Constructor mengikuti BaseModel.__init__:

python
Family(model_path, size, nb_classes=80, device="auto", task=None, **kwargs)

Nilai default konstruktor berbeda menurut family; periksa signature-nya sebelum membuat instance secara langsung. YOLO9 dan variannya menyisipkan reg_max: int = 16 setelah size.

Family deteksi dan multi-task: 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.

Family dense prediksi: 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.

Family classification dan embedding: LibreViT, LibreMobileNetV4, LibreConvNeXt, LibreDeiT, LibreSwin, LibreEfficientNetV2, LibreVGG, LibreResNet, LibreAlexNet, LibreCLIP, LibreSigLIP2, LibreDINOv2, LibreConvNeXtV2, LibrePE, LibreVJEPA2, LibreLeVJEPA.

Task lain: LibreHRNet dan LibreDEKR (pose), LibreL2CS (gaze), LibrePPOCR (ocr), LibreFaceEmbedder (embed), serta detektor 3D LibreFCOS3D, LibreDetAny3D, LibreWildDet3D dan Libre3DMOOD (detect3d).

Tingkat saudara juga mengekspor kelas family-nya: LibreSAM1, LibreSAM2, LibreSAM3, LibreEdgeTAM, LibreMobileSAM, LibrePicoSAM3; LibreGroundingDINO, LibreOWLv2, LibreOMDetTurbo; LibreLFM2VL, LibreQwen3VL, LibreSmolVLM2, LibreInternVL3, LibreFlorence2, LibreKosmos2, LibreLocateAnything, LibreGemma4, LibreMoondream, LibreMolmo2, LibreNorthMicroVision, LibreMODUS (juga ditulis LibreModus), LibreWeVisOneVL; LibreShowUI, LibreGroundFlorence2 dan LibreGroundQwen3VL di balik LibreGround; LibreSmolVLA, LibreACT dan LibreDiffusionPolicy di balik LibreVLA; LibreFlux2Klein, LibreSanaSprint dan LibreSperidlabsIdol di balik LibreGen.

Antarmuka prediksi

Memanggil model menjalankan inferensi. predict adalah alias untuk __call__, sehingga keduanya dapat saling menggantikan.

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

Sumber satu gambar mengembalikan satu Results. List, tuple, atau direktori mengembalikan list Results, sedangkan stream=True mengembalikan generator. Metode lain pada objek model didokumentasikan di halaman API model.

agnostic_nms=True menjalankan NMS class-agnostic: di antara kotak yang tumpang tindih di atas iou, hanya kotak dengan skor tertinggi yang dipertahankan, apa pun kelasnya. Langkah ini berjalan pada deteksi akhir milik family, setelah filter classes, dan mencakup task detect, segment, pose, dan OBB, dengan IoU terotasi untuk kotak berorientasi. Pada task lain mana pun ia memunculkan ValueError.

Muatan Results

Results dan kelas payload-nya diekspor pada tingkat paket: Results, Boxes, Masks, Keypoints, Points, Probs, OBB, Gaze, SemanticMask, PanopticSegmentation, DepthMap, EdgeMap, NormalMap, RestoredImage, Matte, Meshes, OCRRegions, Embeddings, Identities. Masing-masing dijelaskan dalam tipe Results.

Boxes3D, AlbedoMap, dan Actions menambahkan kuboid 3D, albedo intrinsik, dan potongan aksi. Lihat tipe hasil.

GeneratedImage dan Gaussians membawa keluaran LibreGen: gambar hasil generasi di Results.generated dan objek 3D hasil generasi di Results.gaussians.

Backend

Artefak hasil ekspor dimuat melalui LibreYOLO() berdasarkan suffix berkas, sehingga kelas backend jarang dibuat secara manual. Kelas tersebut diekspor untuk kasus ketika backend harus dipilih secara eksplisit: OnnxBackend, OpenVINOBackend, PaddleBackend, TensorRTBackend, TritonBackend, NcnnBackend, CoreMLBackend, ditambah create_triton_config. BaseExporter adalah registry exporter di balik model.export().

Validator

model.val() melakukan dispatch ke validator yang tepat berdasarkan task, sehingga kelas berikut diekspor untuk penggunaan langsung dan subclassing: DetectionValidator, SegmentationValidator, PoseValidator, SemanticValidator, PanopticValidator, DepthValidator, NormalValidator, EdgeValidator, serta ValidationConfig bersama.

Tracking

model.track() memilih tracker berdasarkan nama. Kelas tracker dan dataclass konfigurasinya juga diekspor: ByteTracker dengan TrackConfig, BoTSortTracker dengan BoTSortConfig, serta OCSortTracker dengan OCSortConfig.

libreyolo.tracking.Tracker mendefinisikan reset() dan update(results, image=None) untuk instance tracker kustom.

Helper data

DATASETS_DIR adalah root dataset hasil resolve, load_data_config membaca YAML dataset, dan check_dataset memvalidasinya. Loader khusus task yang disebutkan dalam Format dataset berada di libreyolo.data, bukan pada level paket.

Gallery dan distillation

Gallery dan FaceGallery menyimpan vektor identitas terdaftar untuk task embed dan menghasilkan payload Identities. Distiller dan get_distill_config menjalankan pelatihan teacher-student.

libreyolo.training.TrainFitnessCallback mendefinisikan fitness(metrics) untuk pemilihan checkpoint kustom. Lihat callback fitness.

Aset

SAMPLE_IMAGE adalah path absolut ke gambar yang disertakan dalam paket, sehingga setiap snippet dalam dokumentasi ini berjalan tanpa mengunduh gambar terlebih dahulu.

Lazy import dan kelas yang diganti namanya

Sebagian besar nama sibling tier, backend, validator, dan helper data diselesaikan melalui __getattr__ pada level modul, sehingga mengimpor libreyolo tidak mengimpor dependency-nya. Import tetap gagal dengan pesan jelas ketika ekstra yang diperlukan tidak ada.

Dua nama kelas telah diubah dan ejaan lama masih diselesaikan, disertai DeprecationWarning: LibreYOLORTDETR kini menjadi LibreRTDETR, dan LibreYOLORFDETR kini menjadi LibreRFDETR.

Nama dan signature dibaca dari 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, dan libreyolo/ensemble/model.py pada v1.6.0.