Python API
LibreYOLOの公開Pythonインターフェースは、libreyolo/__init__.pyの__all__リストです。パッケージレベルで公開する名前はfrom libreyolo import <name>でインポートします。以下の追跡と学習のプロトコルは、指定したサブモジュールを使います。
エントリーポイント
ファクトリーはモデルを読み込むか、APIクライアントを設定します。これらはアーキテクチャではなく、 呼び出し規約によって分かれています。
| ファクトリー | 読み込むもの | 呼び出し時のプロンプト | 必要なextra |
|---|---|---|---|
LibreYOLO | チェックポイントまたはファイル拡張子を判別するプロンプト不要ファミリー | ||
LibreSAM | サイズの別名で指定するプロンプト対応セグメンター | 点、ボックス、または概念テキスト | sam |
LibreVLM | 別名で指定する生成型ビジョン言語検出器 | クラス語彙または自由形式のプロンプト | vlm |
LibreOpenVocab | 別名で指定するテキスト条件付き検出器 | クラス語彙 | openvocab |
LibreGen | エイリアスまたはローカルのモデルディレクトリで指定する生成モデル | テキストプロンプト(テキストから画像)または画像(画像から3D) | gen |
LibreEnsemble | 1つのインターフェースに融合した2つ以上の検出器 |
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はチェックポイントファイルとエクスポート済みファイルを受け取ります。関連するファクトリーはモデルのエイリアスを受け取り、LibreVLMとLibreVLAはそれぞれが保存したチェックポイントディレクトリも再読み込みでき、LibreGenは対応ファミリーのアップストリーム形式のローカルモデルディレクトリを読み込みます。
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を受け取ります。sizeとnb_classesは、省略時に
チェックポイントから読み取られます。compute_unitsはCoreMLの.mlpackageを読み込む
場合にのみ参照され、all、cpu_only、cpu_and_gpu、cpu_and_neのいずれかです。
taskにはlibreyolo.tasks.TASKSの正規タスク名を指定できます。
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))LibreGroundは指示を画像上の点に変換し、LibreVLAはロボットのアクションチャンクを予測し、LibreLLMは互換性のあるリモート言語モデルのエンドポイントを呼び出します。グラウンディングAPI、ポリシーAPI、言語モデルクライアントを参照してください。
LibreYOLO("hf://owner/repo@revision/filename")はHubのチェックポイントを読み込みます。model.push_to_hub(repo_id, private=False)はチェックポイントとカードを公開します。解決と認証についてはHubリファレンスを参照してください。
ファミリークラス
ファクトリーが返せる各ファミリーは名前でも公開されているため、チェックポイントが事前に
分かっている場合はクラスを直接構築できます。コンストラクターはBaseModel.__init__に
従います。
Family(model_path, size, nb_classes=80, device="auto", task=None, **kwargs)コンストラクターのデフォルト値はファミリーごとに異なるため、直接生成する前にシグネチャを確認してください。YOLO9とそのバリアントはsizeの後にreg_max: int = 16を挿入します。
検出およびマルチタスクファミリー: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。
密な推論ファミリー: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。
分類および埋め込みベクトルのファミリー:LibreViT、LibreMobileNetV4、
LibreConvNeXt、LibreDeiT、LibreSwin、LibreEfficientNetV2、LibreVGG、
LibreResNet、LibreAlexNet、LibreCLIP、LibreSigLIP2、LibreDINOv2、
LibreConvNeXtV2、LibrePE、LibreVJEPA2、LibreLeVJEPA。
その他のタスク:LibreHRNetとLibreDEKR(姿勢)、LibreL2CS(視線)、
LibrePPOCR(OCR)、LibreFaceEmbedder(埋め込みベクトル)、3D検出器の
LibreFCOS3D、LibreDetAny3D、LibreWildDet3D、Libre3DMOOD(detect3d)。
同系列の階層もファミリークラスを公開します:LibreSAM1、LibreSAM2、
LibreSAM3、LibreEdgeTAM、LibreMobileSAM、LibrePicoSAM3、
LibreGroundingDINO、LibreOWLv2、LibreOMDetTurbo、LibreLFM2VL、
LibreQwen3VL、LibreSmolVLM2、LibreInternVL3、LibreFlorence2、
LibreKosmos2、LibreLocateAnything、LibreGemma4、LibreMoondream、
LibreMolmo2、LibreNorthMicroVision、LibreMODUS(LibreModusという綴りも可能)、LibreWeVisOneVL;
LibreGround配下のLibreShowUI、LibreGroundFlorence2、LibreGroundQwen3VL;
LibreVLA配下のLibreSmolVLA、LibreACT、LibreDiffusionPolicy;LibreGen配下のLibreFlux2Klein、LibreSanaSprint、LibreSperidlabsIdol。
推論インターフェース
モデルを呼び出すと推論を実行します。predictは__call__の別名なので、両者は同じように
使用できます。
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,)単一の画像ソースは1つのResultsを返します。リスト、タプル、またはディレクトリは
それらのリストを返し、stream=Trueはジェネレーターを返します。モデルオブジェクトの
他のメソッドはモデルAPIページで説明しています。
agnostic_nms=Trueはクラス非依存NMSを実行します。iouを超えて重なるボックスのうち、クラスにかかわらずスコアが最も高いものだけが残ります。ファミリーの完成した検出結果に対してclassesフィルターの後で実行され、detect、segment、pose、OBBの各タスクが対象です。回転ボックスには回転IoUを使います。それ以外のタスクではValueErrorを送出します。
Resultsペイロード
Resultsとペイロードクラスはパッケージレベルで公開されます:
Results、Boxes、Masks、Keypoints、Points、Probs、OBB、Gaze、
SemanticMask、PanopticSegmentation、DepthMap、EdgeMap、NormalMap、
RestoredImage、Matte、Meshes、OCRRegions、Embeddings、Identities。
それぞれの説明はResultsの型にあります。
Boxes3D、AlbedoMap、Actionsは、3D直方体、固有のアルベド、アクションチャンクを追加します。結果の型を参照してください。
GeneratedImageとGaussiansはLibreGenの出力を保持します。生成された画像はResults.generatedに、生成された3DオブジェクトはResults.gaussiansに入ります。
バックエンド
エクスポートした成果物は、ファイル拡張子に応じてLibreYOLO()を通じて読み込まれるため、
バックエンドクラスを手動で構築することはほとんどありません。バックエンドを明示的に選択する
必要がある場合に備えて、OnnxBackend、OpenVINOBackend、PaddleBackend、
TensorRTBackend、TritonBackend、NcnnBackend、CoreMLBackend、および
create_triton_configが公開されています。BaseExporterはmodel.export()の背後にある
エクスポーターレジストリです。
バリデーター
model.val()はタスクに応じたバリデーターへ処理を振り分けます。直接使用する場合や
サブクラス化する場合に備えて、DetectionValidator、SegmentationValidator、
PoseValidator、SemanticValidator、PanopticValidator、DepthValidator、
NormalValidator、EdgeValidator、共有のValidationConfigが公開されています。
トラッキング
model.track()は名前でトラッカーを選択します。トラッカークラスとその設定dataclassも
公開されます:TrackConfigを使うByteTracker、BoTSortConfigを使うBoTSortTracker、
OCSortConfigを使うOCSortTrackerです。
libreyolo.tracking.Trackerは、独自のトラッカーインスタンス向けにreset()とupdate(results, image=None)を定義します。
データヘルパー
DATASETS_DIRは解決済みのデータセットルートです。load_data_configはデータセットYAMLを
読み込み、check_datasetは検証します。データセット形式で
名前を挙げたタスク固有のローダーは、パッケージレベルではなくlibreyolo.dataにあります。
ギャラリーと蒸留
GalleryとFaceGalleryはembedタスクに登録された人物識別ベクトルを保持し、
Identitiesペイロードを生成します。Distillerとget_distill_configは教師・生徒学習を
駆動します。
libreyolo.training.TrainFitnessCallbackは、独自のチェックポイント選択向けにfitness(metrics)を定義します。適合度コールバックを参照してください。
アセット
SAMPLE_IMAGEはパッケージに同梱された画像への絶対パスです。そのため、このドキュメントの
すべてのスニペットは最初に画像をダウンロードしなくても実行できます。
遅延インポートと名前が変更されたクラス
同系列階層のほとんどの名前、バックエンド、バリデーター、データヘルパーはモジュールレベルの
__getattr__を通じて解決されます。そのため、libreyoloをインポートしても、それらの
依存関係はインポートされません。必要なextraがない場合も、インポートは明確なメッセージと
ともに失敗します。
2つのクラス名が変更されましたが、古い綴りもDeprecationWarningとともに解決されます:
LibreYOLORTDETRは現在LibreRTDETR、LibreYOLORFDETRは現在LibreRFDETRです。