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を使用した車両の検出 |
|---|---|
![]() | ![]() |
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-obb | 1024 | 52.4 | 78.9 | 97.7 ± 0.9 | 2.8 ± 0.0 | 2.5 | 14.0 |
| YOLO26s-obb | 1024 | 54.8 | 80.9 | 218.0 ± 1.4 | 4.9 ± 0.1 | 9.8 | 55.1 |
| YOLO26m-obb | 1024 | 55.3 | 81.0 | 579.2 ± 3.8 | 10.2 ± 0.3 | 21.2 | 183.3 |
| YOLO26l-obb | 1024 | 56.2 | 81.6 | 735.6 ± 3.1 | 13.0 ± 0.2 | 25.6 | 230.0 |
| YOLO26x-obb | 1024 | 56.7 | 81.7 | 1485.7 ± 11.5 | 30.5 ± 0.9 | 57.6 | 516.5 |
- mAPtest 値は、DOTAv1 データセットにおけるシングルモデルマルチスケールの値です。
yolo val obb data=DOTAv1.yaml device=0 split=testで再現し、統合した結果を DOTA evaluation に提出してください。 - 速度は、Amazon EC2 P4d インスタンスを使用してDOTAv1の検証画像で平均した値です。
yolo val obb data=DOTAv1.yaml batch=1 device=0|cpuで再現可能です。 - Params および FLOPs の値は、
model.fuse()後の融合済みモデルに対するものです。これは Conv 層と BatchNorm 層を統合し、エンドツーエンドモデルの場合は補助的な one-to-many 検出ヘッドを削除します。事前学習済みのチェックポイントは、完全なトレーニングアーキテクチャを保持しているため、数値が大きく表示される場合があります。
Link to this sectionトレーニング#
DOTA8 データセットでYOLO26n-obbを100 エポック(画像サイズ640)で学習します。利用可能な引数の全リストは Configuration ページを参照してください。
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データセット形式の詳細については Dataset Guide を参照してください。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 FNLink 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 boxWatch: 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.obb | OBB | (N) | 指向性ボックス(OBB)。 |
result.obb.data | torch.float32 | (N,7/8) | 信頼度/クラスを含む生の回転ボックス。 |
result.obb.xywhr | torch.float32 | (N,5) | xywhr 回転ボックス。 |
result.obb.xyxyxyxy | torch.float32 | (N,4,2) | 4つのコーナーポイント。 |
result.obb.conf | torch.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 | ✅ | - |
| TorchScript | torchscript | yolo26n-obb.torchscript | ✅ | imgsz, quantize, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-obb.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-obb_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-obb.engine | ✅ | imgsz, quantize, dynamic, simplify, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-obb.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-obb_saved_model/ | ✅ | imgsz, keras, quantize, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-obb.pb | ❌ | imgsz, batch, device |
| TF Edge TPU | edgetpu | yolo26n-obb_edgetpu.tflite | ✅ | imgsz, quantize, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-obb_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-obb.mnn | ✅ | imgsz, batch, quantize, device |
| NCNN | ncnn | yolo26n-obb_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n-obb_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n-obb_rknn_model/ | ✅ | imgsz, batch, name, quantize, data, fraction, device |
| ExecuTorch | executorch | yolo26n-obb_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-obb_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n-obb_deepx_model/ | ✅ | imgsz, quantize, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-obb_qnn.onnx | ✅ | imgsz, batch, name, quantize, data, fraction, device |
| LiteRT | litert | yolo26n-obb.tflite | ✅ | imgsz、quantize、batch、data、fraction、device |
exportの詳細については、Exportページを参照してください。
Link to this section実際のアプリケーション#
YOLO26によるOBB検出には、さまざまな業界で多くの実用的なアプリケーションがあります:
- 海事・港湾管理: フリート管理 や監視のために、さまざまな角度から船舶や艦船を検出します。
- 都市計画: 航空画像から建物やインフラを分析します。
- 農業: ドローン映像から農作物や農業機器を監視します。
- エネルギー部門: 異なる向きの太陽光パネルや風力タービンを検査します。
- 交通: さまざまな視点から道路や駐車場内の車両を追跡します。
これらのアプリケーションは、どのような角度の物体にも正確にフィットするOBBの能力により、従来のバウンディングボックスよりも正確な検出が可能という恩恵を受けています。
Link to this sectionよくある質問 (FAQ)#
Link to this section指向性バウンディングボックス(OBB)とは何ですか?また、通常のバウンディングボックスとどう違いますか?#
指向性バウンディングボックス(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 セクションを参照してください。

