Skip to main content

Yönlendirilmiş Sınırlayıcı KutularUltralytics YOLO26, tespit, segmentasyon, sınıflandırma, yönlendirilmiş nesne tespiti ve anahtar nokta tespiti dahil olmak üzere birden fazla bilgisayarlı görü görevini destekler. Her görev, temel nesne tanımlamadan detaylı poz analizine kadar bilgisayarlı görü dünyasındaki belirli ihtiyaçları karşılar. Her görevin yeteneklerini ve uygulamalarını anlayarak, kendi özel bilgisayarlı görü zorlukların için en uygun yaklaşımı seçebilir ve etkili çözümler oluşturmak için YOLO26'nın güçlü özelliklerinden yararlanabilirsin.

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 hassas bir şekilde çevreleyen döndürülmüş sınırlayıcı kutular kümesi ile birlikte her kutu için sınıf etiketleri ve güven puanlarıdır. Yönlendirilmiş sınırlayıcı kutular, özellikle geleneksel eksen hizalı sınırlayıcı kutuların gereksiz arka plan içerebileceği hava görüntüleri gibi nesnelerin çeşitli açılarda göründüğü durumlarda kullanışlıdır.

İpucu

YOLO26 OBB modelleri, -obb sonekini kullanır, örneğin yolo26n-obb.pt, ve şu veri seti üzerinde önceden eğitilmiştir: DOTAv1.



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

Görsel Örnekler

OBB kullanarak Gemi AlgılamaOBB kullanarak Araç Algılama
OBB kullanarak Gemi AlgılamaOBB kullanarak Araç Algılama

Modeller

YOLO26 önceden eğitilmiş OBB modelleri burada gösterilmiştir; bunlar DOTAv1 veri seti üzerinde önceden eğitilmiştir.

Modeller ilk kullanımda en son Ultralytics sürümünden otomatik olarak indirilir.

Modelboyut
(piksel)
mAPtest
50-95(e2e)
mAPtest
50(e2e)
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametreler
(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 değerleri, DOTAv1 veri setinde tek model ve tek ölçek için geçerlidir.
    ile yeniden üretilebilir.yolo val obb data=DOTAv1.yaml device=0 split=test üzerinde tek model çok ölçekli çıkarımlar içindir ve birleştirilmiş sonuçları DOTA değerlendirmesi.
  • Hız DOTAv1 val görüntüleri üzerinde ortalaması alınmış, Amazon EC2 P4d örneği kullanılarak COCO val görüntüleri üzerinde ortalaması alınmıştır.
    ile yeniden üretilebilir.yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
  • Params ve FLOPs değerleri, Conv ve BatchNorm katmanlarını birleştiren ve uçtan uca modeller için yardımcı bire çok (one-to-many) tespit başlığını kaldıran model.fuse() işleminden sonraki 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

YOLO26n-obb modelini DOTA8 veri kümesi üzerinde 100 epochs ile 640 görüntü boyutunda eğit. Mevcut tüm argümanların tam listesi için YapılandırmaEğit Modu

Not

OBB açıları 0–90 derece aralığıyla sınırlandırılmıştır (90 derece hariç). 90 derece veya daha büyük açılar desteklenmez.

Örnek
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 seti formatı

OBB veri kümesi formatı ile ilgili ayrıntılı bilgiye Veri Seti Kılavuzu kısmından ulaşabilirsin. YOLO OBB formatı, sınırlayıcı kutuları bu yapıyı takip ederek 0 ile 1 arasında normalize edilmiş koordinatlara sahip dört köşe noktası ile belirler. Ultralytics Platform özel bir yönlendirilmiş sınırlayıcı kutu çizim aracı ile OBB ek açıklamasını destekler:

class_index x1 y1 x2 y2 x3 y3 x4 y4

YOLO, kayıpları ve çıktıları dahili olarak, xywhr formatında işler; bu format, bounding box'nın merkez noktasını (xy), genişliğini, yüksekliğini ve dönüşünü temsil eder.

Doğrula (Val)

Eğitilmiş YOLO26n-obb modelini YOLO modelleri için eğitim ayarları, eğitim sürecinde kullanılan çeşitli hiperparametreleri ve yapılandırmaları kapsar. Bu ayarlar modelin performansını, hızını ve DOTA8 veri kümesi üzerinde doğrula. model eğitim data herhangi bir ek argümana gerek yoktur.

Örnek
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

Tahmin Et

Görüntüler üzerinde tahminler yürütmek için eğitilmiş bir YOLO26n-obb modeli kullan.

Örnek
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

Tam predict sayfasındaki Tahmin EtEğit Modu

Dışa Aktar (Export)

Bir YOLO26n-obb modelini ONNX, CoreML vb. gibi farklı bir formata dışa aktar.

Örnek
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 tabloda yer almaktadır. format argümanını kullanarak herhangi bir formata dışa aktarabilirsin, örneğin format='onnx' veya format='engine'. Dışa aktarılan modeller üzerinde doğrudan tahmin yapabilir veya doğrulama yapabilirsin, örneğin yolo predict model=yolo26n-obb.onnx kullanarak herhangi bir formata dışa aktarabilirsin. Dışa aktarma tamamlandıktan sonra modelin için kullanım örnekleri gösterilecektir.

Formatformat ArgümanModelMeta veriArgümanlar
, algılama sonuçlarını görüntü başına bir dosya olacak şekilde metin dosyalarına kaydeder, daha fazla analiz, özel işlem sonrası veya diğer sistemlerle entegrasyon için kullanışlıdır. -yolo26n-obb.pt-
TorchScripttorchscriptyolo26n-obb.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-obb.onnximgsz, half, dynamic, simplify, opset, nms, batch, 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, device
ExecuTorchexecutorchyolo26n-obb_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-obb_axelera_model/imgsz, batch, int8, data, fraction, device

Tam export ayrıntılarını Dışa Aktar (Export)Eğit Modu

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.
  • Gerçek Dünya Uygulamaları: Yollardaki ve otoparklardaki araçların çeşitli perspektiflerden takip edilmesi.

Bu uygulamalar, OBB'nin nesnelere herhangi bir açıda hassas bir şekilde uyum sağlama yeteneğinden yararlanır ve geleneksel sınırlayıcı kutulardan daha doğru bir 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. Eksen hizalı dikdörtgenler olan normal sınırlayıcı kutuların aksine, OBB'ler nesnenin yönüne daha iyi uyum sağlamak için dönebilir. Bu, hava veya uydu görüntüleri gibi hassas nesne yerleşimi gerektiren uygulamalar için özellikle kullanışlıdır (Veri Seti Kılavuzu).

Özel bir veri kümesi kullanarak nasıl YOLO26n-obb modeli eğitebilirim?

Özel bir veri kümesiyle YOLO26n-obb modelini eğitmek için Python veya CLI kullanarak aşağıdaki örneği takip et:

Örnek
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 bağımsız değişkeni için Yapılandırma bölümü.

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 Seti Kılavuzu.

YOLO26-OBB modelini nasıl ONNX formatına aktarabilirim?

YOLO26-OBB modelini ONNX formatına aktarmak, Python veya CLI kullanılarak oldukça basittir:

Örnek
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 Aktar (Export)Eğit Modu

Bir YOLO26n-obb modelinin doğruluğunu nasıl teyit edebilirim?

Bir YOLO26n-obb modelini doğrulamak için aşağıda gösterildiği gibi Python veya CLI komutlarını kullanabilirsin:

Örnek
from ultralytics import YOLO

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

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

Doğrulama ile ilgili tüm ayrıntıları Doğrula (Val) bölümü.

Yorumlar