Yönlendirilmiş Sınırlayıcı Kutular Nesne Algılama
Yönlendirilmiş nesne algılama, bir görüntüdeki nesneleri daha doğru bir şekilde konumlandırmak için ekstra bir açı ekleyerek standart nesne algılamadan bir adım öteye gider.
Yönlendirilmiş bir nesne dedektörünün çıktısı, görüntüdeki nesneleri tam olarak çevreleyen, sınıf etiketleri ve her kutu için güvenilirlik puanlarıyla birlikte bir dizi döndürülmüş sınırlayıcı kutudur. Yönlendirilmiş sınırlayıcı kutular, nesnelerin çeşitli açılarda göründüğü durumlarda özellikle kullanışlıdır; örneğin, geleneksel eksen hizalı sınırlayıcı kutuların gereksiz arka plan içerebileceği hava görüntülemede.
İpucu
YOLO26 OBB modelleri şunu kullanır -obb sonek, yani, yolo26n-obb.pt, ve üzerinde önceden eğitilmiştir DOTAv1.
İzle: Ultralytics YOLO Yönlendirilmiş Sınırlayıcı Kutular (YOLO-OBB) kullanarak Nesne Tespiti
Görsel Örnekler
| OBB kullanarak Gemi Tespiti | OBB kullanarak Araç Tespiti |
|---|---|
![]() | ![]() |
Modeller
YOLO26 önceden eğitilmiş OBB modelleri, DOTAv1 veri kümesi üzerinde önceden eğitilmiş olarak burada gösterilmiştir.
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) | parametreler (M) | FLOP'lar (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, üzerinde tek modelli çok ölçekli içindir DOTAv1 veri kümesi üzerindendir.
Tekrar oluşturmak içinyolo val obb data=DOTAv1.yaml device=0 split=testve birleştirilmiş sonuçları şuraya gönderin: DOTA değerlendirmesi. - Hız kullanılarak DOTAv1 val görüntülerinde ortalaması alınmıştır Amazon EC2 P4d örneği kullanılarak COCO val görüntülerinde ortalama alınmıştır.
Tekrar oluşturmak içinyolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
Eğit
YOLO26n-obb modelini DOTA8 veri kümesi üzerinde 100 epoch boyunca 640 görüntü boyutuyla eğitin. Mevcut argümanların tam listesi için Yapılandırma sayfasına bakın.
Not
obb açıları 0–90 derece aralığıyla (90 hariç) sınırlıdır. 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.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo obb train data=dota8.yaml model=yolo26n-obb.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo obb train data=dota8.yaml model=yolo26n-obb.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo obb train data=dota8.yaml model=yolo26n-obb.yaml pretrained=yolo26n-obb.pt epochs=100 imgsz=640
İzle: Ultralytics Platformunu Kullanarak DOTA Veri Kümesi Üzerinde Ultralytics YOLO-OBB (Yönlendirilmiş Sınırlayıcı Kutular) Modelleri Nasıl Eğitilir
Veri kümesi formatı
OBB veri kümesi formatı hakkında ayrıntılı bilgiyi Veri Kümesi Kılavuzu'nda bulabilirsiniz. YOLO OBB formatı, köşe noktalarını 0 ile 1 arasında normalleştirilmiş koordinatlarla şu yapıyı izleyerek belirtir:
class_index x1 y1 x2 y2 x3 y3 x4 y4
YOLO, kayıpları ve çıktıları dahili olarak şu şekilde işler: xywhr biçimi, sınırlayıcı kutu'nin merkez noktası (xy), genişliği, yüksekliği ve dönüşü.
Doğrula
Eğitilmiş YOLO26n-obb modelini doğrulayın doğruluğu DOTA8 veri kümesinde. Herhangi bir argümana gerek yoktur, çünkü model eğitimini korur data ve argümanları model nitelikleri olarak saklar.
Ö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
yolo obb val model=yolo26n-obb.pt data=dota8.yaml # val official model
yolo obb val model=path/to/best.pt data=path/to/data.yaml # val custom model
Tahmin et
Görüntüler üzerinde tahminler çalıştırmak için eğitilmiş bir YOLO26n-obb modeli kullanın.
Ö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
yolo obb predict model=yolo26n-obb.pt source='https://ultralytics.com/images/boats.jpg' # predict with official model
yolo obb predict model=path/to/best.pt source='https://ultralytics.com/images/boats.jpg' # predict with custom model
İzle: Ultralytics YOLO-OBB | Yönlendirilmiş Sınır Kutuları | DOTA kullanarak Depolama Tankları Nasıl Tespit Edilir ve İzlenir
Tamamını görün predict sayfasındaki mod ayrıntıları. Tahmin et sayfasında bulabilirsiniz.
Dışa aktar
Bir YOLO26n-obb modelini ONNX, CoreML vb. gibi farklı bir formata aktarın.
Ö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")
yolo export model=yolo26n-obb.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model
Mevcut YOLO26-obb dışa aktarma formatları aşağıdaki tabloda yer almaktadır. Herhangi bir formata dışa aktarmak için şunu kullanabilirsiniz: format argümanı, yani format='onnx' veya format='engine'. Dışa aktarılan modeller üzerinde doğrudan tahmin veya doğrulama yapabilirsiniz, yani, yolo predict model=yolo26n-obb.onnx. Kullanım örnekleri, dışa aktarma tamamlandıktan sonra modeliniz 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, 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, device |
| TF.js | tfjs | yolo26n-obb_web_model/ | ✅ | imgsz, half, int8, nms, batch, 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, device |
| RKNN | rknn | yolo26n-obb_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-obb_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n-obb_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
Tamamını görün export ayrıntıları Dışa aktar sayfasında bulabilirsiniz.
Gerçek Dünya Uygulamaları
YOLO26 ile OBB detect etme, ç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çılarda gemileri ve tekneleri tespit etme.
- Şehir Planlaması: Hava görüntülemesinden binaları ve altyapıyı analiz etme.
- Tarım: Drone görüntüleriyle mahsulleri ve tarım ekipmanlarını izleme.
- Enerji Sektörü: Farklı yönlerdeki güneş panellerini ve rüzgar türbinlerini inceleme.
- Ulaşım: Yollardaki ve otoparklardaki araçları çeşitli açılardan takip etme.
Bu uygulamalar, OBB'nin nesneleri herhangi bir açıda hassas bir şekilde sığdırma 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 nasıl farklıdır?
Yönlendirilmiş Sınır Kutuları (OBB), görüntülerdeki nesne lokalizasyon doğruluğunu artırmak için ek bir açı içerir. Eksenlere hizalı dikdörtgenler olan normal sınır kutularının aksine, OBB'ler nesnenin yönüne daha iyi uyacak şekilde dönebilir. Bu, özellikle hava veya uydu görüntüleri gibi hassas nesne yerleşimi gerektiren uygulamalar için kullanışlıdır (Veri Kümesi Kılavuzu).
Özel bir veri kümesi kullanarak bir YOLO26n-obb modelini nasıl eğitirim?
Özel bir veri kümesiyle bir YOLO26n-obb modeli eğitmek için, Python veya CLI kullanarak aşağıdaki örneği takip edin:
Ö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)
yolo obb train data=path/to/custom_dataset.yaml model=yolo26n-obb.pt epochs=100 imgsz=640
Daha fazla eğitim argümanı için Yapılandırma bölümünü kontrol edin.
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 kullanabilirsiniz. OBB veri kümesi formatları hakkında detaylı bilgiye Veri Kümesi Kılavuzu bölümünden ulaşabilirsiniz.
Bir YOLO26-OBB modelini ONNX formatına nasıl aktarabilirim?
Bir YOLO26-OBB modelini ONNX formatına aktarmak, Python veya CLI kullanarak oldukça basittir:
Örnek
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Export the model
model.export(format="onnx")
yolo export model=yolo26n-obb.pt format=onnx
Daha fazla dışa aktarma formatı ve ayrıntı için Dışa Aktarma sayfasına bakın.
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ı kullanabilirsiniz:
Örnek
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Validate the model
metrics = model.val(data="dota8.yaml")
yolo obb val model=yolo26n-obb.pt data=dota8.yaml
Doğrulama ile ilgili tüm ayrıntıları Val bölümünde bulabilirsiniz.

