Meet YOLO26: next-gen vision AI.

Link to this sectionYönlendirilmiş Sınırlayıcı Kutularla Nesne Algılama#

Yönlendirilmiş nesne algılama, bir görüntüdeki nesneleri daha doğru bir şekilde konumlandırmak için fazladan bir açı ekleyerek standart nesne algılamadan bir adım daha ileri gider.

Yönlendirilmiş bir nesne dedektörünün çıktısı, görüntüdeki nesneleri hassas bir şekilde çevreleyen bir dizi döndürülmüş sınırlayıcı kutu 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ülerinde olduğu gibi nesnelerin çeşitli açılarda göründüğü ve geleneksel eksene hizalı sınırlayıcı kutuların gereksiz arka planı içerebileceği durumlarda yararlıdır.

İpucu

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



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

Link to this sectionGörsel Örnekler#

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

Link to this sectionModeller#

Burada DOTAv1 veri kümesi üzerinde önceden eğitilmiş olan YOLO26 önceden eğitilmiş OBB modelleri gösterilmektedir.

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 kümesi üzerinde tek model çok ölçekli değerlerdir.
    yolo val obb data=DOTAv1.yaml device=0 split=test komutuyla yeniden oluşturun ve birleştirilmiş sonuçları DOTA değerlendirmesine gönderin.
  • Hız, bir Amazon EC2 P4d örneği kullanılarak DOTAv1 val görüntüleri üzerinden ortalama alınmıştır.
    yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu komutuyla yeniden oluşturun.
  • Params (Parametreler) 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() 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.

Link to this sectionEğit (Train)#

YOLO26n-obb modelini DOTA8 veri kümesi üzerinde 640 görüntü boyutunda 100 dönem (epoch) boyunca eğitin. Mevcut tüm bağımsız değişkenlerin tam listesi için Yapılandırma sayfasına bakın.

Not

Bir OBB ve onun 180° dönüşü aynıdır, bu nedenle dönüş 180° modunda tanımlanır ve kutunun bir yönü yoktur. Dahili olarak açı radyan cinsinden saklanır ve [-π/4, 3π/4) ([-45°, 135°)) aralığına normalleştirilir, kutu genişliği w daha uzun kenar olarak alınır ve açı pozitif x ekseninden w yönüne doğru saat yönündeki açı olarak tanımlanır. [0°, 90°) formu düzenlenmiş DOTA tarzı sözleşmedir ve eğitim veya çıkarım sırasında uygulanmaz.

Ö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

Link to this sectionVeri kümesi biçimi#

OBB veri kümesi biçimi hakkında ayrıntılı bilgiyi Veri Kümesi Kılavuzu bölümünde bulabilirsin. YOLO OBB biçimi, 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 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.

Link to this sectionDoğrula (Val)#

Eğitilmiş bir YOLO26n-obb modelinin doğruluğunu DOTA8 veri kümesi üzerinde doğrula. model, eğitim datasını ve argümanlarını model öznitelikleri olarak koruduğu için herhangi bir 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

Link to this sectionTahmin Et (Predict)#

Görüntüler üzerinde tahmin 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

Tüm predict modu ayrıntılarını Tahmin (Predict) sayfasında görebilirsin.

Link to this sectionSonuç Çıktısı#

Yönlendirilmiş sınırlayıcı kutu algılama, görüntü başına bir Results nesnesi döndürür. Birincil tahmin alanı, algılanan her nesne için döndürülmüş kutuları, sınıf kimliklerini ve güven puanlarını içeren result.obb alanıdır.

ÖznitelikTipŞekilAçıklama
result.obbOBB(N)Yönlendirilmiş kutular.
result.obb.datatorch.float32(N,7/8)Güvenilirlik/sınıf ile ham döndürülmüş kutular.
result.obb.xywhrtorch.float32(N,5)xywhr döndürülmüş kutular.
result.obb.xyxyxyxytorch.float32(N,4,2)Dört köşe noktası.
result.obb.conftorch.float32(N,)Güven skorları.

Her görev için göreve özel Results alanlarını görmek istersen, Göreve Göre Tahmin Sonuçları bölümüne bak.

Link to this sectionDışa Aktar (Export)#

Bir YOLO26n-obb modelini ONNX, CoreML vb. gibi farklı bir biçime 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 biçimleri aşağıdaki tabloda yer almaktadır. format bağımsız değişkenini kullanarak, örneğin format='onnx' veya format='engine' ile herhangi bir biçime dışa aktarabilirsin. Doğrudan dışa aktarılan modeller üzerinde tahmin yapabilir veya doğrulayabilirsin, örneğin yolo predict model=yolo26n-obb.onnx. Kullanım örnekleri dışa aktarma tamamlandıktan sonra modelin için gösterilir.

Formatformat ArgümanıModelMeta verilerArgümanlar
PyTorch-yolo26n-obb.pt-
TorchScripttorchscriptyolo26n-obb.torchscriptimgsz, quantize, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-obb.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-obb_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-obb.engineimgsz, quantize, dynamic, simplify, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-obb.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-obb_saved_model/imgsz, keras, quantize, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-obb.pbimgsz, batch, device
TF Litetfliteyolo26n-obb.tfliteimgsz, quantize, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-obb_edgetpu.tfliteimgsz, quantize, data, fraction, device
TF.jstfjsyolo26n-obb_web_model/imgsz, quantize, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-obb_paddle_model/imgsz, batch, device
MNNmnnyolo26n-obb.mnnimgsz, batch, quantize, device
NCNNncnnyolo26n-obb_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-obb_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-obb_rknn_model/imgsz, batch, name, quantize, data, fraction, device
ExecuTorchexecutorchyolo26n-obb_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-obb_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-obb_deepx_model/imgsz, quantize, data, optimize, device
Qualcomm QNNqnnyolo26n-obb_qnn.onnximgsz, batch, name, quantize, data, fraction, device

Tüm export ayrıntılarını Export sayfasında bulabilirsin.

Link to this sectionGerçek Dünya Uygulamaları#

YOLO26 ile OBB algılama, çeşitli endüstrilerde çok sayıda pratik uygulamaya sahiptir:

  • Denizcilik ve Liman Yönetimi: Filo yönetimi ve izleme için çeşitli açılardan gemileri ve deniz araçlarını algılama.
  • Şehir Planlama: Hava görüntülerinden binaları ve altyapıyı analiz etme.
  • Tarım: İnsansız hava aracı görüntülerinden mahsulleri ve tarım ekipmanlarını izleme.
  • Enerji Sektörü: Güneş panellerini ve rüzgar türbinlerini farklı yönelimlerde inceleme.
  • Ulaşım: Yollardaki ve otoparklardaki araçları çeşitli perspektiflerden izleme.

Bu uygulamalar, OBB'nin nesneleri her açıda hassas bir şekilde sığdırma yeteneğinden yararlanarak geleneksel sınırlayıcı kutulardan daha doğru algılama sağlar.

Link to this sectionSSS#

Link to this sectionYö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 fazladan 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 (Veri Kümesi Kılavuzu) gibi hassas nesne yerleşimi gerektiren uygulamalar için özellikle yararlıdır.

Link to this sectionÖzel bir veri kümesi kullanarak nasıl YOLO26n-obb modeli eğitebilirim?#

Özel bir veri kümesiyle YOLO26n-obb modeli 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üne göz at.

Link to this sectionYOLO26-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 biçimleri hakkında ayrıntılı bilgiyi Veri Kümesi Kılavuzu bölümünde bulabilirsin.

Link to this sectionBir YOLO26-OBB modelini nasıl ONNX biçimine aktarabilirim?#

Bir YOLO26-OBB modelini Python veya CLI kullanarak ONNX biçimine aktarmak 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 biçimi ve ayrıntı için Dışa Aktar sayfasına bak.

Link to this sectionBir YOLO26n-obb modelinin doğruluğunu nasıl onaylayabilirim?#

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 ayrıntılarının tamamını Val bölümünde gör.

Yorumlar