Meet YOLO26: next-gen vision AI.

Link to this section指向性バウンディングボックス 物体検出#

指向性物体検出は、標準的な物体検出にさらに角度の要素を加えることで、画像内の物体をより正確に特定する手法です。

指向性物体検出器の出力は、画像内の物体を正確に囲む回転したバウンディングボックスのセットと、各ボックスのクラスラベルおよび信頼スコアです。指向性バウンディングボックスは、航空写真のように物体が様々な角度で現れる場合に特に有用であり、従来の軸に沿ったバウンディングボックスでは含まれてしまう不要な背景を除外できます。

ヒント

YOLO26 OBBモデルは -obb サフィックス(例: yolo26n-obb.pt)を使用し、DOTAv1 で事前学習されています。



Watch: How to Detect & Track Objects with Ultralytics YOLO26 Oriented Bounding Boxes (OBB) | Ship Tracking 🚢

Link to this section視覚的サンプル#

OBBによる船舶検出OBBによる車両検出
OBBによる船舶検出OBBによる車両検出

Link to this sectionモデル#

ここにYOLO26事前学習済みOBBモデルを示します。これらは DOTAv1 データセットで事前学習されています。

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

モデルサイズ
(ピクセル)
mAPtest
50-95(e2e)
mAPtest
50(e2e)
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
パラメータ
(M)
FLOPs
(B)
YOLO26n-obb102452.478.997.7 ± 0.92.8 ± 0.02.514.0
YOLO26s-obb102454.880.9218.0 ± 1.44.9 ± 0.19.855.1
YOLO26m-obb102455.381.0579.2 ± 3.810.2 ± 0.321.2183.3
YOLO26l-obb102456.281.6735.6 ± 3.113.0 ± 0.225.6230.0
YOLO26x-obb102456.781.71485.7 ± 11.530.5 ± 0.957.6516.5
  • mAPtest 値は DOTAv1 データセットでの単一モデルマルチスケールの値です。
    yolo val obb data=DOTAv1.yaml device=0 split=test で再現し、統合した結果を DOTA評価ページ に提出してください。
  • 速度Amazon EC2 P4d インスタンスを使用し、DOTAv1 検証用画像で平均化したものです。
    yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu で再現可能です。
  • パラメータおよびFLOPsの値は、Conv層とBatchNorm層を結合し、end2endモデルの場合は1対多の補助検出ヘッドを削除した、model.fuse()後のフュージョンモデルのものです。事前学習済みチェックポイントは、学習時の完全なアーキテクチャを保持しており、より高い数値を示す場合があります。

Link to this section学習#

DOTA8 データセットでYOLO26n-obbを画像サイズ640、100 エポック で学習します。利用可能な全引数のリストは 設定 ページを参照してください。

注意

OBBとその180°回転は同一であるため、回転は180°を法として定義され、ボックスに方向はありません。内部的には、角度はラジアンで保存され、[-π/4, 3π/4) ([-45°, 135°)) に正規化されます。ボックスの幅 w は長い方の辺として扱われ、角度は正のx軸から w の方向への時計回りの角度として定義されます。[0°, 90°) 形式は一般的なDOTAスタイルの慣習ですが、学習や推論には適用されません。

from ultralytics import YOLO

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

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


Watch: How to Train Ultralytics YOLO-OBB (Oriented Bounding Boxes) Models on DOTA Dataset using Ultralytics Platform

Link to this sectionデータセット形式#

OBBデータセット形式の詳細は データセットガイド にあります。YOLO OBB形式は、この構造に従い、0から1の間に正規化された座標を持つ4つの頂点によってバウンディングボックスを指定します。Ultralytics Platform は、専用の指向性バウンディングボックス描画ツールによるOBBアノテーションをサポートしています。

class_index x1 y1 x2 y2 x3 y3 x4 y4

内部的に、YOLOは xywhr 形式で損失と出力を処理します。これは バウンディングボックス の中心点 (xy)、幅、高さ、および回転を表します。

Link to this section検証#

DOTA8 データセットで学習済みYOLO26n-obbモデルの 精度 を検証します。model が学習時の data や引数を属性として保持しているため、引数は不要です。

from ultralytics import YOLO

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

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

Link to this section予測#

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

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.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/boats.jpg")  # predict on an image

# Access the results
for result in results:
    xywhr = result.obb.xywhr  # center-x, center-y, width, height, angle (radians)
    xyxyxyxy = result.obb.xyxyxyxy  # polygon format with 4-points
    names = [result.names[cls.item()] for cls in result.obb.cls.int()]  # class name of each box
    confs = result.obb.conf  # confidence score of each box


Watch: How to Detect and Track Storage Tanks using Ultralytics YOLO-OBB | Oriented Bounding Boxes | DOTA

predictモードの詳細については、Predictページを参照してください。

Link to this section結果の出力#

指向性バウンディングボックス検出は、画像ごとに1つの Results オブジェクトを返します。主要な予測フィールドは result.obb であり、これには検出された各物体に対する回転ボックス、クラスID、および信頼スコアが含まれます。

属性タイプ形状説明
result.obbOBB(N)指向性ボックス。
result.obb.datatorch.float32(N,7/8)信頼度/クラスを含む生の回転ボックス。
result.obb.xywhrtorch.float32(N,5)xywhr 回転ボックス。
result.obb.xyxyxyxytorch.float32(N,4,2)4つの角の頂点。
result.obb.conftorch.float32(N,)信頼度スコア。

タスクごとのResultsフィールドの詳細については、Predict Results by Taskセクションを参照してください。

Link to this sectionエクスポート#

YOLO26n-obbモデルをONNX、CoreMLなどの異なる形式にエクスポートします。

from ultralytics import YOLO

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

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

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

形式format引数モデルメタデータ引数
PyTorch-yolo26n-obb.pt-
TorchScripttorchscriptyolo26n-obb.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-obb.onnximgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-obb_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-obb.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-obb.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-obb_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-obb.pbimgsz, batch, device
TF Litetfliteyolo26n-obb.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-obb_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-obb_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-obb_paddle_model/imgsz, batch, device
MNNmnnyolo26n-obb.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-obb_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-obb_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-obb_rknn_model/imgsz, batch, name, int8, data, fraction, device
ExecuTorchexecutorchyolo26n-obb_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-obb_axelera_model/imgsz, batch, int8, data, fraction, device
DEEPXdeepxyolo26n-obb_deepx_model/imgsz, int8, data, optimize, device
Qualcomm QNNqnnyolo26n-obb_qnn_model/imgsz, batch, name, int8, data, fraction, device

exportの詳細については、Exportページを参照してください。

Link to this section実世界への応用#

YOLO26によるOBB検出には、様々な業界で多くの実践的な応用例があります:

  • 海事および港湾管理: フリート管理 や監視のために、様々な角度から船舶や艦船を検出します。
  • 都市計画: 航空写真から建物やインフラを分析します。
  • 農業: ドローン映像から農作物や農業機器を監視します。
  • エネルギー部門: ソーラーパネルや風力タービンを様々な向きから検査します。
  • 交通: 道路や駐車場における車両を様々な視点から追跡します。

これらのアプリケーションでは、OBBの持つあらゆる角度のオブジェクトに精密に適合する能力が活用されており、従来のバウンディングボックスよりも正確な検出を実現します。

Link to this sectionFAQ#

Link to this sectionOriented Bounding Boxes (OBB) とは何ですか。また、通常のバウンディングボックスとはどのように異なりますか?#

Oriented Bounding Boxes (OBB) には、画像内のオブジェクトの位置精度を高めるための角度情報が追加されています。軸に並行な矩形である通常のバウンディングボックスとは異なり、OBBはオブジェクトの向きに合わせて回転できるため、より適合性が高まります。これは、航空写真や衛星画像のように、正確なオブジェクト配置が必要なアプリケーションで特に有効です (Dataset Guide)。

Link to this sectionカスタムデータセットを使用して YOLO26n-obb モデルをトレーニングするにはどうすればよいですか?#

カスタムデータセットで YOLO26n-obb モデルをトレーニングするには、以下の Python または CLI の例に従ってください。

from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/custom_dataset.yaml", epochs=100, imgsz=640)

その他のトレーニング引数については、Configuration セクションを確認してください。

Link to this sectionYOLO26-OBB モデルのトレーニングにはどのようなデータセットを使用できますか?#

YOLO26-OBB モデルは DOTAv1 のようなデータセットで事前トレーニングされていますが、OBB用にフォーマットされたあらゆるデータセットを使用できます。OBBデータセットのフォーマットに関する詳細は、Dataset Guide を参照してください。

Link to this sectionYOLO26-OBB モデルを ONNX 形式にエクスポートするにはどうすればよいですか?#

YOLO26-OBB モデルの ONNX 形式へのエクスポートは、Python または CLI を使用して簡単に行えます。

from ultralytics import YOLO

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

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

その他のエクスポート形式や詳細については、Export ページを参照してください。

Link to this sectionYOLO26n-obb モデルの精度を検証するにはどうすればよいですか?#

YOLO26n-obb モデルを検証するには、以下に示す Python または CLI コマンドを使用できます。

from ultralytics import YOLO

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

# Validate the model
metrics = model.val(data="dota8.yaml")

検証の詳細については、Val セクションを参照してください。

コメント