Python API

LibreYOLOの公開Pythonインターフェースは、libreyolo/__init__.pyの__all__リストです。このページにあるすべての名前はfrom libreyolo import <name>としてインポートできます。そのリストにないものは内部用です。

エントリーポイント

5つの呼び出し可能オブジェクトがモデルを読み込みます。これらはアーキテクチャではなく、 呼び出し規約によって分かれています。

ファクトリー読み込むもの呼び出し時のプロンプト必要なextra
LibreYOLOチェックポイントまたはファイル拡張子を判別するプロンプト不要ファミリー
LibreSAMサイズの別名で指定するプロンプト対応セグメンター点、ボックス、または概念テキストsam
LibreVLM別名で指定する生成型ビジョン言語検出器クラス語彙または自由形式のプロンプトvlm
LibreOpenVocab別名で指定するテキスト条件付き検出器クラス語彙openvocab
LibreEnsemble1つのインターフェースに融合した2つ以上の検出器

5つのエントリーポイント
from libreyolo import LibreYOLO, LibreEnsemble # プロンプト不要ファミリー向けの重み判別ファクトリーdetector = LibreYOLO("LibreYOLO9t.pt") # 2つ以上の検出器を1つの推論インターフェースに統合ens = LibreEnsemble(["LibreYOLO9t.pt", "LibreYOLO9s.pt"]) # 残り3つのファクトリーには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だけです。他の3つは文字列の別名を受け取り、それを Hugging Faceリポジトリへ解決するため、引数はパスではなくモデル名です。

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は、.ptチェックポイント、ONNXの.onnxファイル、ExecuTorchの.pte、 MNNの.mnn、TensorRTの.engine、OpenVINO、Paddle、ncnnのディレクトリ、または TritonのHTTPかHTTPSモデルURLを受け取ります。sizenb_classesは、省略時に チェックポイントから読み取られます。compute_unitsはCoreMLの.mlpackageを読み込む 場合にのみ参照され、allcpu_onlycpu_and_gpucpu_and_neのいずれかです。 taskにはlibreyolo.tasks.TASKSの正規タスク名を指定できます。

1つのファクトリーで任意のモデルを読み込む
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO9t.pt") # 単一画像のソースはResultsを1つ返し、リストまたはディレクトリは# Resultsのリストを返す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))

ファミリークラス

ファクトリーが返せる各ファミリーは名前でも公開されているため、チェックポイントが事前に 分かっている場合はクラスを直接構築できます。コンストラクターはBaseModel.__init__に 従います。

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

ファミリークラスではsizeにデフォルト値がない点が、ファクトリーとの違いです。YOLO9と そのバリアントでは、sizeの後にreg_max: int = 16が入ります。

検出およびマルチタスクファミリー:LibreYOLO9LibreYOLO9E2ELibreYOLO9P2LibreYOLONASLibreYOLOXLibreYOLO7LibreYOLO4LibreYOLO3LibreYOLO2LibreYOLO1LibreRTDETRLibreRTDETRv2LibreRTDETRv4LibreRFDETRLibreDFINELibreDOMEDETRLibreDEIMLibreDEIMv2LibreDETRLibreDeformableDETRLibreDINODETRLibreLWDETRLibreMaskRCNNLibreFCOSLibreFasterRCNNLibreRetinaNetLibreSSDLibreCenterNetLibreEfficientDetLibreECLibrePICODETLibreRTMDetLibreFOMO

密な推論ファミリー:LibreMiDaSLibreDepthAnythingV2LibreDepthAnything3LibreZipDepthLibreMoGe2LibreTEEDLibreDexiNedLibreNAFNetLibreRealESRGANLibreSwinIRLibreBiRefNetLibreFeyNobgLibreFCNLibreEoMTLibreDeepLabv3LibrePIDNetLibreSegformerLibreLingBotVision

分類および埋め込みベクトルのファミリー:LibreViTLibreMobileNetV4LibreConvNeXtLibreDeiTLibreSwinLibreEfficientNetV2LibreVGGLibreResNetLibreAlexNetLibreCLIPLibreSigLIP2LibreDINOv2

その他のタスク:LibreHRNet(姿勢)、LibreL2CS(視線)、LibrePPOCR(OCR)、 LibreFaceEmbedder(埋め込みベクトル)。

同系列の階層もファミリークラスを公開します:LibreSAM1LibreSAM2LibreSAM3LibreEdgeTAMLibreMobileSAMLibrePicoSAM3LibreGroundingDINOLibreOWLv2LibreOMDetTurboLibreLFM2VLLibreQwen3VLLibreSmolVLM2LibreInternVL3LibreFlorence2LibreKosmos2LibreLocateAnythingLibreMODUSLibreModusという綴りも可能)。

推論インターフェース

モデルを呼び出すと推論を実行します。predict__call__の別名なので、両者は同じように 使用できます。

python
model(
    source=None,
    *,
    conf=0.25,
    iou=0.45,
    imgsz=None,
    device=None,
    classes=None,
    max_det=300,
    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,
)

単一の画像ソースは1つのResultsを返します。リスト、タプル、またはディレクトリは それらのリストを返し、stream=Trueはジェネレーターを返します。モデルオブジェクトの 他のメソッドはモデルAPIページで説明しています。

Resultsペイロード

Resultsと18個のペイロードクラスはパッケージレベルで公開されます: ResultsBoxesMasksKeypointsPointsProbsOBBGazeSemanticMaskPanopticSegmentationDepthMapEdgeMapNormalMapRestoredImageMatteMeshesOCRRegionsEmbeddingsIdentities。 それぞれの説明はResultsの型にあります。

バックエンド

エクスポートした成果物は、ファイル拡張子に応じてLibreYOLO()を通じて読み込まれるため、 バックエンドクラスを手動で構築することはほとんどありません。バックエンドを明示的に選択する 必要がある場合に備えて、OnnxBackendOpenVINOBackendPaddleBackendTensorRTBackendTritonBackendNcnnBackendCoreMLBackend、および create_triton_configが公開されています。BaseExportermodel.export()の背後にある エクスポーターレジストリです。

バリデーター

model.val()はタスクに応じたバリデーターへ処理を振り分けます。直接使用する場合や サブクラス化する場合に備えて、DetectionValidatorSegmentationValidatorPoseValidatorSemanticValidatorPanopticValidatorDepthValidatorNormalValidatorEdgeValidator、共有のValidationConfigが公開されています。

トラッキング

model.track()は名前でトラッカーを選択します。トラッカークラスとその設定dataclassも 公開されます:TrackConfigを使うByteTrackerBoTSortConfigを使うBoTSortTrackerOCSortConfigを使うOCSortTrackerです。

データヘルパー

DATASETS_DIRは解決済みのデータセットルートです。load_data_configはデータセットYAMLを 読み込み、check_datasetは検証します。データセット形式で 名前を挙げたタスク固有のローダーは、パッケージレベルではなくlibreyolo.dataにあります。

ギャラリーと蒸留

GalleryFaceGalleryembedタスクに登録された人物識別ベクトルを保持し、 Identitiesペイロードを生成します。Distillerget_distill_configは教師・生徒学習を 駆動します。

アセット

SAMPLE_IMAGEはパッケージに同梱された画像への絶対パスです。そのため、このドキュメントの すべてのスニペットは最初に画像をダウンロードしなくても実行できます。

遅延インポートと名前が変更されたクラス

同系列階層のほとんどの名前、バックエンド、バリデーター、データヘルパーはモジュールレベルの __getattr__を通じて解決されます。そのため、libreyoloをインポートしても、それらの 依存関係はインポートされません。必要なextraがない場合も、インポートは明確なメッセージと ともに失敗します。

2つのクラス名が変更されましたが、古い綴りもDeprecationWarningとともに解決されます: LibreYOLORTDETRは現在LibreRTDETRLibreYOLORFDETRは現在LibreRFDETRです。

v1.5.0の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、libreyolo/ensemble/model.pyから名前とシグネチャを確認しました。