Skip to main content

物体検出

YOLO object detection with bounding boxes

物体検出 は、画像やビデオストリーム内の物体の位置とクラスを特定するタスクです。

物体検出器の出力は、画像内の物体を囲む一連のbboxと、各ボックスのクラスラベルおよび信頼度スコアです。物体検出は、シーン内の関心対象を特定する必要があるものの、その物体の正確な位置や正確な形状を知る必要がない場合に適した選択肢です。



Watch: Object Detection with Pretrained Ultralytics YOLO Model.
ヒント

YOLO26 Detectモデルは、デフォルトのYOLO26モデルです。つまり yolo26n.pt であり、COCO.

モデル

YOLO26の学習済みDetectモデルをここに示します。Detect、Segment、およびPoseモデルは COCO データセットで学習済みであり、Classifyモデルは ImageNet データセットで学習済みです。

モデル は、初回使用時に最新のUltralytics リリース から自動的にダウンロードされます。

モデルサイズ
(ピクセル)
mAPval
50-95
mAPval
mAP50-95(e2e)
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.4
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.7
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.2
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.4
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7193.9
  • mAPval の値は、COCO val2017 データセットにおけるシングルモデル・シングルスケールの値です。
    再現手順については、yolo val detect data=coco.yaml device=0
  • 速度 を参照してください。COCO val画像で平均化され、Amazon EC2 P4d インスタンスを使用しています。
    再現手順については、yolo val detect data=coco.yaml batch=1 device=0|cpu
  • ParamsFLOPs の値は、model.fuse()後のフューズ済みモデルに対するものです。これはConv層とBatchNorm層をマージし、エンドツーエンドモデルの場合は補助的なone-to-many検出ヘッドを削除します。学習済みチェックポイントは完全な学習アーキテクチャを保持しており、より高い数値を表示する場合があります。

Train (学習)

画像サイズ640で100 エポック 画像サイズ640での値です。利用可能なすべての引数のリストについては、Configurationページをご覧ください。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

詳細については、train ページのモード詳細をご覧ください。検出モデルは、Train (学習) を通じてクラウドGPU上で学習することも可能です。Ultralytics Platform.

データセットフォーマット

YOLO検出データセットフォーマットの詳細については、データセットガイド を参照してください。既存のデータセットを他の形式(COCOなど)からYOLO形式に変換するには、UltralyticsのJSON2YOLO ツールを使用してください。また、AI支援ラベリングツールを備えたUltralytics Platform 上で直接検出データセットをアノテーションおよび管理することも可能です。

Val (検証)

学習済みYOLO26nモデルのバリデーション 精度 COCO8 データセットで検証します。モデル自体がトレーニング時の model および引数をモデル属性として保持しているため、引数は不要です。data

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

予測

学習済みYOLO26nモデルを使用して画像に対する予測を実行します。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xywh = result.boxes.xywh  # center-x, center-y, width, height
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # top-left-x, top-left-y, bottom-right-x, bottom-right-y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # class name of each box
    confs = result.boxes.conf  # confidence score of each box

詳細については、predict ページのモード詳細をご覧ください。検出モデルは、予測ページをご覧ください。

エクスポート

YOLO26nモデルをONNX、CoreMLなどの異なるフォーマットにエクスポートします。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")

利用可能なYOLO26のエクスポートフォーマットは以下の表の通りです。format 引数を使用して任意の形式にエクスポートできます(例:format='onnx'format='engine')。エクスポートされたモデルに対して直接予測や検証を行うことができます(例:yolo predict model=yolo26n.onnx。エクスポート完了後のモデルの使用例が表示されます。

形式format 引数モデルメタデータ引数
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, batch, device
TFLitetfliteyolo26n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, int8, data, fraction, device

詳細については、exportエクスポートページをご覧ください。

FAQ

コードを書かずに検出モデルを学習・デプロイできますか?

はい。Ultralytics Platform は、データセットのアノテーション、クラウドGPU上での検出モデルの学習、および推論エンドポイントへのデプロイのためのブラウザベースのワークフローを提供します。開始するには、プラットフォームクイックスタート を参照してください。

カスタムデータセットでYOLO26モデルを学習するにはどうすればよいですか?

カスタムデータセットでのYOLO26モデルの学習には、いくつかのステップが必要です。

  1. データセットの準備:データセットがYOLO形式であることを確認してください。ガイダンスについては、当社のデータセットガイド.
  2. モデルのロード:Ultralytics YOLOライブラリを使用して、学習済みモデルをロードするか、YAMLファイルから新しいモデルを作成します。
  3. モデルの学習:Pythonでtrain メソッドを実行するか、CLIでyolo detect train コマンドを実行します。
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model on your custom dataset
model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)

詳細な構成オプションについては、Configurationページをご覧ください。

YOLO26ではどのような学習済みモデルが利用可能ですか?

Ultralytics YOLO26は、物体検出、セグメンテーション、ポーズ推定のためのさまざまな学習済みモデルを提供しています。これらのモデルは、COCOデータセット、または分類タスク用にImageNetで学習済みです。利用可能なモデルの一部を以下に示します:

詳細なリストとパフォーマンス指標については、モデルセクションを参照してください。

トレーニング済みのYOLOモデルの精度を検証するにはどうすればよいですか?

トレーニング済みのYOLO26モデルの精度を検証するには、.val() メソッドを実行するか、CLIでyolo detect val コマンドをCLIで使用します。これにより、mAP50-95、mAP50などの指標が提供されます。

from ultralytics import YOLO

# Load the model
model = YOLO("path/to/best.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # mAP50-95

検証の詳細については、Val (検証)ページをご覧ください。

YOLO26モデルはどのような形式にエクスポートできますか?

Ultralytics YOLO26では、モデルを以下のような様々な形式にエクスポートできます。ONNX, TensorRT, CoreML、その他多数の形式があり、異なるプラットフォームやデバイス間での互換性を確保できます。

from ultralytics import YOLO

# Load the model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")

サポートされている形式の完全なリストと手順については、エクスポートページをご覧ください。

なぜオブジェクト検出にUltralytics YOLO26を使用する必要があるのですか?

Ultralytics YOLO26は、オブジェクト検出、セグメンテーション、および姿勢推定において最先端のパフォーマンスを提供するように設計されています。主な利点は以下の通りです。

  1. トレーニング済みモデル:以下のような一般的なデータセットでトレーニング済みのモデルを活用します。COCOImageNet これにより、開発がより迅速になります。
  2. 高精度:優れたmAPスコアを達成し、信頼性の高いオブジェクト検出を保証します。
  3. 速度:最適化されているため、リアルタイム推論に最適で、迅速な処理を必要とするアプリケーションに理想的です。
  4. 柔軟性:モデルをONNXやTensorRTなどの様々な形式にエクスポートし、複数のプラットフォームに展開できます。

私たちのブログでは、YOLO26が実際に活用されている事例や成功事例を紹介しています。

コメント