Ultralytics YOLO27:
Get Started

Ultralytics YOLOによる物体検出#

Ultralytics YOLO object detection with bounding boxes

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

物体検出器の出力は、画像内の物体を囲むバウンディングボックスの集合で、各ボックスにはクラスラベルと信頼度スコアが含まれます。シーン内で関心のある物体を特定したいものの、正確な形状を把握する必要がない場合、物体検出が適しています。



視聴: 学習済み Ultralytics YOLO モデルによる物体検出。
ヒント

YOLO26 DetectモデルはデフォルトのYOLO26モデル、すなわちyolo26n.ptであり、COCOで事前学習されています。

モデル#

COCOデータセットで事前学習されたYOLO26 Detectモデルを以下に示します。

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

モデルサイズ
(ピクセル)
mAPval
50-95
mAP検証
50-95(e2e)
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
パラメーター
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.5
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.9
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.4
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.8
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7194.4
  • mAPvalの値は、COCO val2017データセットで単一モデル、単一スケールを使用した場合の値です。
    yolo detect val data=coco.yaml device=0で再現できます。e2e列を再現するにはnms=Falseを追加してください。
  • 速度は、COCO val画像に対してONNXをCPUで、TensorRT10をNVIDIA T4 GPUで使用した場合の平均値です。
    yolo detect val data=coco.yaml batch=1 device=0|cpu nms=Falseで再現できます。
  • ParamsとFLOPsの値は、Conv/BatchNormのfoldingと未使用の検出ブランチの削除を適用した後の、融合済みモデルの値です。事前学習済みチェックポイントにはトレーニング時のアーキテクチャ全体が保持されているため、より大きな値が表示される場合があります。

予備的なCOCO検出結果については、未リリースのYOLO27プレビューをご覧ください。

学習#

COCO8データセットでYOLO26nを、画像サイズ640で100エポックトレーニングします。利用可能な引数の一覧については、Configurationページをご覧ください。

例
from ultralytics import YOLO

# モデルを読み込む
model = YOLO("yolo26n.yaml")  # YAMLから新しいモデルを構築します
model = YOLO("yolo26n.pt")  # 事前トレーニング済みモデルを読み込みます(トレーニングにはこちらを推奨します)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # YAMLからモデルを構築し、重みを転送します

# モデルをトレーニングする
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Trainページでtrainモードの詳細をご確認ください。検出モデルは、Ultralytics Platformのクラウドトレーニングでもトレーニングできます。

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

YOLO検出データセットのフォーマットの詳細は、Dataset Guideをご覧ください。既存のCOCO JSONデータセットをYOLOフォーマットに変換するには、COCOからYOLOへのガイドで説明されている組み込みのconvert_coco関数を使用します。Ultralytics PlatformのAI支援アノテーションツールを使って、検出データセットにアノテーションを付けたり管理したりすることもできます。

検証#

トレーニング済みのYOLO26nモデルの精度を検証します。modelにはトレーニング時のdataと引数がモデル属性として保持されるため、引数を指定する必要はありません。Trainの例にあるpath/to/best.ptは、COCO8で検証します。公式の重みには、使用しているマシン上に存在しないトレーニングデータセットのパスが記録されているため、警告を表示したうえで、タスクのデフォルトであるcoco8.yamlにフォールバックします。別のデータセットで検証するには、dataを渡してください。

例
from ultralytics import YOLO

# モデルを読み込む
model = YOLO("yolo26n.pt")  # 公式モデルを読み込みます
model = YOLO("path/to/best.pt")  # カスタムモデルを読み込む

# モデルを検証します
metrics = model.val()  # データセットと設定が記憶されるため、引数は不要です
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # カテゴリごとのmAP50-95を含むリスト
metrics.box.image_metrics  # 画像ごとのprecision、recall、F1、TP、FP、FNを含む指標辞書

推論#

トレーニング済みのYOLO26nモデルを使用して、画像に対する予測を実行します。

例
from ultralytics import YOLO

# モデルを読み込む
model = YOLO("yolo26n.pt")  # 公式モデルを読み込みます
model = YOLO("path/to/best.pt")  # カスタムモデルを読み込む

# モデルで予測します
results = model("https://ultralytics.com/images/bus.jpg")  # 画像に対して予測します

# 結果にアクセスします
for result in results:
    xywh = result.boxes.xywh  # 中心x、中心y、幅、高さ
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # 左上x、左上y、右下x、右下y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # 各ボックスのクラス名
    confs = result.boxes.conf  # 各ボックスの信頼度スコア

Predictページでpredictモードの詳細をご確認ください。

結果の出力#

物体検出では、画像ごとにResultsオブジェクトが1つ返されます。主な予測フィールドはresult.boxesで、検出された各物体のボックス座標、クラスID、信頼度スコアが含まれます。

属性種類形状説明
result.boxesBoxes(N)検出ボックスです。
result.boxes.datatorch.float32(N,6/7)生の [x1,y1,x2,y2,conf,cls] と、任意のトラックIDです。
result.boxes.xyxytorch.float32(N,4)xyxy のピクセルボックスです。
result.boxes.conftorch.float32(N,)信頼度スコアです。
result.boxes.clstorch.float32(N,)クラスIDです。名前を取得するには int にキャストします。

すべてのタスクにおける、タスク固有のResultsフィールドについては、タスク別の予測結果セクションをご覧ください。

エクスポート#

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

例
from ultralytics import YOLO

# モデルを読み込む
model = YOLO("yolo26n.pt")  # 公式モデルを読み込みます
model = YOLO("path/to/best.pt")  # カスタムモデルを読み込む

# モデルをエクスポートする
model.export(format="onnx")

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

形式format引数モデルメタデータ引数
PyTorch-yolo26n.pt✅-
TorchScripttorchscriptyolo26n.torchscript✅imgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnx✅imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/✅imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engine✅imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackage✅imgsz, dynamic, quantize, nms, batch, device
Apple Core AIcoreaiyolo26n.aimodel✅imgsz, batch, quantize
TF SavedModelsaved_modelyolo26n_saved_model/✅imgsz, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pb❌imgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tflite✅imgsz, quantize, opset, data, fraction, device
LiteRTlitertyolo26n.tflite✅imgsz, quantize, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/✅imgsz, batch, device
MNNmnnyolo26n.mnn✅imgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/✅imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/✅imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/✅imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/✅imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/✅imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnx✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
Hailohailoyolo26n_hailo_model/✅imgsz, name, quantize, data, fraction, simplify, conf, iou, device
Huawei Ascendascendyolo26n_ascend_model/✅imgsz, batch, name, quantize, opset, simplify, nms, device
AMD Xilinxxilinxyolo26n_xilinx_model/✅imgsz, name, quantize, data, fraction, opset, simplify, device

nms=None は外部NMS向けにraw出力をデフォルトで使用します。利用可能なNMSフリーヘッドを選択するには、nms=Falseを設定してください。未対応のフォーマットでは、ネイティブの出力パスにフォールバックします。上記のnmsの項目は、nms=Trueを使用してNMSを埋め込めるフォーマットを示しています。

詳細なexport情報については、Exportページをご覧ください。

よくある質問#

  • はい。Ultralytics Platformのクイックスタートでは、ブラウザー上でデータセットにアノテーションを付け、クラウドGPUで検出モデルをトレーニングし、推論エンドポイントにデプロイするワークフローを紹介しています。

  • カスタムデータセットでYOLO26モデルをトレーニングするには、いくつかの手順があります。

    1. データセットを準備する: データセットがYOLOフォーマットであることを確認してください。手順については、Dataset Guideをご覧ください。
    2. モデルを読み込む: Ultralytics YOLOライブラリを使用して、事前学習済みモデルを読み込むか、YAMLファイルから新しいモデルを作成します。
    3. モデルをトレーニングする: Pythonではtrainメソッドを、CLIではyolo detect trainコマンドを実行します。
    例
    from ultralytics import YOLO
    
    # 事前トレーニング済みモデルを読み込む
    model = YOLO("yolo26n.pt")
    
    # カスタムデータセットでモデルをトレーニングします
    model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)

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

  • Ultralytics YOLO26では、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、深度推定、分類、姿勢推定、方向付きバウンディングボックスに対応する、さまざまな事前学習済みモデルを提供しています。これらのモデルは、COCOデータセット、セマンティックセグメンテーション用のCityscapes、深度推定用の複数データセットの混合、分類用のImageNet、またはOBB用のDOTAv1で事前学習されています。利用可能なモデルの例を以下に示します。

    モデルの詳細な一覧とパフォーマンス指標については、Modelsセクションをご覧ください。

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

    例
    from ultralytics import YOLO
    
    # モデルを読み込みます
    model = YOLO("path/to/best.pt")
    
    # モデルを検証します
    metrics = model.val()
    print(metrics.box.map)  # mAP50-95

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

  • Ultralytics YOLO26では、さまざまなプラットフォームやデバイスとの互換性を確保するため、モデルをONNX、TensorRT、CoreMLなどのさまざまなフォーマットにエクスポートできます。

    例
    from ultralytics import YOLO
    
    # モデルを読み込みます
    model = YOLO("yolo26n.pt")
    
    # モデルをONNXフォーマットにエクスポート
    model.export(format="onnx")

    サポートされているフォーマットの一覧と手順については、Exportページをご覧ください。

  • Ultralytics YOLO26は、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、姿勢推定で最先端のパフォーマンスを実現するよう設計されています。主なメリットは次のとおりです。

    1. 事前学習済みモデル: COCOやImageNetなどの一般的なデータセットで事前学習されたモデルを活用することで、開発を迅速化できます。
    2. 高精度: 優れたmAPスコアを達成し、信頼性の高い物体検出を実現します。
    3. 速度: リアルタイム推論向けに最適化されているため、高速処理が必要な用途に最適です。
    4. 柔軟性: ONNXやTensorRTなど、さまざまなフォーマットにモデルをエクスポートして、複数のプラットフォームにデプロイできます。

    YOLO26の活用事例や成功事例については、ブログをご覧ください。

コメント