Yönlendirilmiş Sınırlayıcı Kutular ile Nesne Algılama
Yönlendirilmiş nesne algılama, nesneleri bir görüntüde daha doğru bir şekilde konumlandırmak için fazladan bir açı ekleyerek standart nesne algılamanın bir adım ötesine geçer.
Yönlendirilmiş bir nesne dedektörünün çıktısı, görüntüdeki nesneleri tam olarak çevreleyen döndürülmüş sınırlayıcı kutular kümesi ile her kutu için sınıf etiketleri ve güven puanlarıdır. Yönlendirilmiş sınırlayıcı kutular, özellikle hava görüntüleri gibi nesnelerin çeşitli açılarda göründüğü durumlarda yararlıdır; çünkü geleneksel eksene hizalı sınırlayıcı kutular gereksiz arka planı içerebilir.
YOLO26 OBB modelleri -obb son ekini kullanır, yani yolo26n-obb.pt şeklindedir ve DOTAv1 üzerinde önceden eğitilmiştir.
Watch: How to Detect & Track Objects with Ultralytics YOLO26 Oriented Bounding Boxes (OBB) | Ship Tracking 🚢
Görsel Örnekler
| OBB kullanarak Gemi Algılama | OBB kullanarak Araç Algılama |
|---|---|
![]() | ![]() |
Modeller
Burada DOTAv1 veri kümesi üzerinde önceden eğitilmiş YOLO26 önceden eğitilmiş OBB modelleri gösterilmektedir.
Modeller, ilk kullanımda en son Ultralytics sürümünden otomatik olarak indirilir.
| Model | boyut (piksel) | mAPtest 50-95(e2e) | mAPtest 50(e2e) | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametre (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 değerleri, DOTAv1 veri kümesindeki tek model çok ölçekli sonuçlarıdır.
Bunuyolo val obb data=DOTAv1.yaml device=0 split=testkomutuyla yeniden oluşturabilir ve birleştirilmiş sonuçları DOTA değerlendirmesine gönderebilirsin. - Hız, Amazon EC2 P4d örneği kullanılarak DOTAv1 val görüntüleri üzerinden ortalama alınmıştır.
Bunuyolo val obb data=DOTAv1.yaml batch=1 device=0|cpukomutuyla yeniden oluşturabilirsin. - Params ve FLOPs değerleri, Conv ve BatchNorm katmanlarını birleştiren ve uçtan uca modeller için yardımcı bire-çok tespit başlığını kaldıran
model.fuse()sonrası birleştirilmiş model içindir. Önceden eğitilmiş kontrol noktaları tam eğitim mimarisini korur ve daha yüksek sayılar gösterebilir.
Eğit (Train)
YOLO26n-obb'yi DOTA8 veri kümesi üzerinde 640 görüntü boyutunda 100 epoch boyunca eğit. Mevcut argümanların tam listesi için Yapılandırma sayfasına bak.
OBB açıları 0-90 derece (90 hariç) aralığıyla sınırlandırılmıştır. 90 derece veya üzerindeki açılar desteklenmez.
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
Veri kümesi formatı
OBB veri kümesi formatı Veri Kümesi Kılavuzu içinde ayrıntılı olarak bulunabilir. YOLO OBB formatı, sınırlayıcı kutuları bu yapıyı izleyerek 0 ile 1 arasında normalleştirilmiş koordinatlara sahip dört köşe noktasıyla belirler. Ultralytics Platform, özel bir yönlendirilmiş sınırlayıcı kutu çizim aracıyla OBB ek açıklamasını destekler:
class_index x1 y1 x2 y2 x3 y3 x4 y4
Internally, YOLO processes losses and outputs in the xywhr format, which represents the bounding box's center point (xy), width, height, and rotation.
Doğrula (Val)
Eğitilmiş YOLO26n-obb modelinin doğruluğunu DOTA8 veri kümesi üzerinde doğrula. model, eğitim data değerini ve argümanlarını model öznitelikleri olarak koruduğu için herhangi bir argümana gerek yoktur.
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 FNTahmin
Görüntüler üzerinde tahminler çalıştırmak için eğitilmiş bir YOLO26n-obb modeli kullan.
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 moduna dair tüm detayları Predict sayfasında bulabilirsin.
Dışa Aktar (Export)
Bir YOLO26n-obb modelini ONNX, CoreML vb. farklı bir formata dışa aktar.
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")Mevcut YOLO26-obb dışa aktarma formatları aşağıdaki tablodadır. format argümanını, yani format='onnx' veya format='engine' kullanarak herhangi bir formata dışa aktarabilirsin. Dışa aktarılan modeller üzerinde doğrudan tahmin yapabilir veya doğrulama yapabilirsin, yani yolo predict model=yolo26n-obb.onnx. Kullanım örnekleri, dışa aktarma tamamlandıktan sonra modelin için gösterilir.
| Format | format Argümanı | Model | Meta veri | Argümanlar |
|---|---|---|---|---|
| PyTorch | - | yolo26n-obb.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-obb.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-obb.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-obb_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-obb.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-obb.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-obb_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-obb.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-obb.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-obb_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-obb_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-obb_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-obb.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-obb_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-obb_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-obb_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-obb_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-obb_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n-obb_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
Tam export ayrıntıları için Dışa Aktarma sayfasına bak.
Gerçek Dünya Uygulamaları
YOLO26 ile OBB algılama, çeşitli sektörlerde çok sayıda pratik uygulamaya sahiptir:
- Denizcilik ve Liman Yönetimi: Filo yönetimi ve izleme için gemilerin ve deniz araçlarının çeşitli açılardan algılanması.
- Şehir Planlama: Hava görüntülerinden binaların ve altyapının analiz edilmesi.
- Tarım: Drone görüntülerinden mahsullerin ve tarım ekipmanlarının izlenmesi.
- Enerji Sektörü: Güneş panellerinin ve rüzgar türbinlerinin farklı yönlerde incelenmesi.
- Ulaşım: Yollardaki ve otoparklardaki araçların çeşitli perspektiflerden takip edilmesi.
Bu uygulamalar, OBB'nin nesneleri herhangi bir açıda hassas bir şekilde çevreleme yeteneğinden yararlanarak geleneksel sınırlayıcı kutulardan daha doğru algılama sağlar.
SSS
Yönlendirilmiş Sınırlayıcı Kutular (OBB) nedir ve normal sınırlayıcı kutulardan farkları nelerdir?
Yönlendirilmiş Sınırlayıcı Kutular (OBB), görüntülerdeki nesne konumlandırma doğruluğunu artırmak için ek bir açı içerir. Eksene hizalı dikdörtgenler olan normal sınırlayıcı kutuların aksine, OBB'ler nesnenin yönüne daha iyi uyacak şekilde dönebilir. Bu, hava veya uydu görüntüleri gibi hassas nesne yerleştirme gerektiren uygulamalar için özellikle yararlıdır (Veri Kümesi Kılavuzu).
Özel bir veri kümesi kullanarak nasıl YOLO26n-obb modeli eğitirim?
Özel bir veri kümesiyle YOLO26n-obb modeli eğitmek için Python veya CLI kullanarak aşağıdaki örneği izle:
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)Daha fazla eğitim argümanı için Yapılandırma bölümüne göz at.
YOLO26-OBB modellerini eğitmek için hangi veri kümelerini kullanabilirim?
YOLO26-OBB modelleri, DOTAv1 gibi veri kümeleri üzerinde önceden eğitilmiştir ancak OBB için biçimlendirilmiş herhangi bir veri kümesini kullanabilirsin. OBB veri kümesi formatları hakkında ayrıntılı bilgi Veri Kümesi Kılavuzu sayfasında bulunabilir.
Bir YOLO26-OBB modelini nasıl ONNX formatına dışa aktarabilirim?
Bir YOLO26-OBB modelini ONNX formatına dışa aktarmak, Python veya CLI kullanılarak basittir:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Export the model
model.export(format="onnx")Daha fazla dışa aktarma formatı ve ayrıntı için Dışa Aktarma sayfasına başvur.
Bir YOLO26n-obb modelinin doğruluğunu nasıl doğrularım?
Bir YOLO26n-obb modelini doğrulamak için aşağıda gösterildiği gibi Python veya CLI komutlarını kullanabilirsin:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Validate the model
metrics = model.val(data="dota8.yaml")Tam doğrulama ayrıntılarını Val bölümünde görebilirsin.

