İçeriğe geç

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 bulmak için ekstra bir açı ekleyerek standart nesne algılamadan bir adım daha ileri gider.

Yönlendirilmiş bir nesne dedektörünün çıktısı, her bir kutu için sınıf etiketleri ve güven puanları ile birlikte görüntüdeki nesneleri tam olarak çevreleyen bir dizi döndürülmüş sınırlayıcı kutudur. Yönlendirilmiş sınırlayıcı kutular, geleneksel eksen hizalı sınırlayıcı kutuların gereksiz arka plan içerebileceği hava görüntülerinde olduğu gibi nesneler çeşitli açılarda göründüğünde özellikle kullanışlıdır.

İpucu

YOLO11 OBB modelleri şunları kullanır -obb son ek, yani yolo11n-obb.pt ve önceden eğitilmiş DOTAv1.



İzle: Ultralytics YOLO Yönlendirilmiş Sınırlayıcı Kutular (YOLO-OBB) kullanarak Nesne Algılama

Görsel Örnekler

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

Modeller

YOLO11 Burada DOTAv1 veri kümesi üzerinde ön eğitime tabi tutulmuş OBB modelleri gösterilmektedir.

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

Model boyut
(piksel)
mAPtest
50
Hız
CPU ONNX
(ms)
Hız
T4TensorRT10
(ms)
params
(M)
FLOP'lar
(B)
YOLO11n-obb 1024 78.4 117.6 ± 0.8 4.4 ± 0.0 2.7 17.2
YOLO11s-obb 1024 79.5 219.4 ± 4.0 5.1 ± 0.0 9.7 57.5
YOLO11m-obb 1024 80.9 562.8 ± 2.9 10.1 ± 0.4 20.9 183.5
YOLO11l-obb 1024 81.0 712.5 ± 5.0 13.5 ± 0.6 26.2 232.0
YOLO11x-obb 1024 81.3 1408.6 ± 7.7 28.6 ± 1.0 58.8 520.2
  • mAPtest değerleri tek modelli çoklu ölçek içindir. DOTAv1 veri kümesi.
    Tarafından çoğaltın yolo val obb data=DOTAv1.yaml device=0 split=test ve birleştirilmiş sonuçları DOTA değerlendirmesi.
  • Hız kullanılarak DOTAv1 val görüntüleri üzerinden ortalaması alınmıştır. Amazon EC2 P4d örnek.
    Tarafından çoğaltın yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu

Tren

YOLO11n-obb'yi 640 görüntü boyutunda 100 epok için DOTA8 veri kümesi üzerinde eğitin. Kullanılabilir bağımsız değişkenlerin tam listesi için Yapılandırma sayfasına bakın.

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-obb.yaml")  # build a new model from YAML
model = YOLO("yolo11n-obb.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-obb.yaml").load("yolo11n.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=yolo11n-obb.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo obb train data=dota8.yaml model=yolo11n-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=yolo11n-obb.yaml pretrained=yolo11n-obb.pt epochs=100 imgsz=640



İzle: Ultralytics YOLO -OBB (Oriented Bounding Boxes) Modelleri Ultralytics HUB Kullanılarak DOTA Veri Kümesi Üzerinde Nasıl Eğitilir

Veri kümesi formatı

OBB veri kümesi formatı Veri Kümesi Kılavuzunda 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:

class_index x1 y1 x2 y2 x3 y3 x4 y4

Dahili olarak, YOLO kayıpları ve çıktıları aşağıdaki şekilde işler xywhr formatını temsil eden sınırlayıcı kutu'nin merkez noktası (xy), genişliği, yüksekliği ve dönüşü.

Val

Eğitilmiş YOLO11n-obb modelini doğrulayın doğruluk DOTA8 veri kümesi üzerinde. Hiçbir argüman gerekmez çünkü model eğitimini sürdürür data ve model öznitelikleri olarak argümanlar.

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 contains map50-95(B) of each category
yolo obb val model=yolo11n-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 tahminleri çalıştırmak için eğitilmiş bir YOLO11n-obb modeli kullanın.

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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.keypoints.xy  # 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=yolo11n-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 | Oriented Bounding Boxes | DOTA kullanarak Depolama Tanklarını Tespit Etme ve İzleme

Tamamı görün predict modunun ayrıntıları Tahmin Et Sayfa.

İhracat

Bir YOLO11n-obb modelini ONNX, CoreML vb. gibi farklı bir formata aktarın.

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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=yolo11n-obb.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

Mevcut YOLO11-obb dışa aktarma formatları aşağıdaki tabloda yer almaktadır. kullanarak herhangi bir formata dışa aktarabilirsiniz. format argümanı, yani format='onnx' veya format='engine'. Doğrudan dışa aktarılan modeller üzerinde tahmin veya doğrulama yapabilirsiniz, örn. yolo predict model=yolo11n-obb.onnx. Dışa aktarma tamamlandıktan sonra modeliniz için kullanım örnekleri gösterilir.

Biçim format Tartışma Model Metadata Argümanlar
PyTorch - yolo11n-obb.pt -
TorchScript torchscript yolo11n-obb.torchscript imgsz, optimize, nms, batch
ONNX onnx yolo11n-obb.onnx imgsz, half, dynamic, simplify, opset, nms, batch
OpenVINO openvino yolo11n-obb_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data
TensorRT engine yolo11n-obb.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data
CoreML coreml yolo11n-obb.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n-obb_saved_model/ imgsz, keras, int8, nms, batch
TF GraphDef pb yolo11n-obb.pb imgsz, batch
TF Lite tflite yolo11n-obb.tflite imgsz, half, int8, nms, batch, data
TF Kenar TPU edgetpu yolo11n-obb_edgetpu.tflite imgsz
TF.js tfjs yolo11n-obb_web_model/ imgsz, half, int8, nms, batch
PaddlePaddle paddle yolo11n-obb_paddle_model/ imgsz, batch
MNN mnn yolo11n-obb.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n-obb_ncnn_model/ imgsz, half, batch
IMX500 imx yolo11n-obb_imx_model/ imgsz, int8, data
RKNN rknn yolo11n-obb_rknn_model/ imgsz, batch, name

Tamamı görün export detaylar İhracat Sayfa.

Gerçek Dünya Uygulamaları

YOLO11 ile OBB tespiti, çeşitli sektörlerde çok sayıda pratik uygulamaya sahiptir:

  • Denizcilik ve Liman Yönetimi: Filo yönetimi ve izleme için gemileri ve deniz araçlarını çeşitli açılardan tespit etme.
  • Kentsel Planlama: Hava görüntülerinden bina ve altyapı analizi.
  • 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 açılardan izlenmesi.

Bu uygulamalar, OBB'nin nesneleri her açıda tam olarak sığdırma yeteneğinden yararlanarak geleneksel sınırlayıcı kutulara göre daha doğru algılama sağlar.

SSS

Yönlendirilmiş Sınırlayıcı Kutular (OBB) nedir ve normal sınırlayıcı kutulardan farkı nedir?

Yönlendirilmiş Sınırlayıcı Kutular (OBB), görüntülerde 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 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 Seti Kılavuzu).

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

Bir YOLO11n-obb modelini özel bir veri kümesi ile eğitmek için Python veya CLI adreslerini kullanarak aşağıdaki örneği izleyin:

Örnek

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n-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=yolo11n-obb.pt epochs=100 imgsz=640

Daha fazla eğitim argümanı için Yapılandırma bölümüne bakın.

YOLO11-OBB modellerini eğitmek için hangi veri kümelerini kullanabilirim?

YOLO11-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 seti formatları hakkında ayrıntılı bilgi Veri Seti Kılavuzu'nda bulunabilir.

Bir YOLO11-OBB modelini ONNX formatına nasıl aktarabilirim?

Bir YOLO11-OBB modelinin ONNX formatına aktarılması Python veya CLI kullanılarak kolayca gerçekleştirilebilir:

Örnek

from ultralytics import YOLO

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

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-obb.pt format=onnx

Daha fazla dışa aktarma biçimi ve ayrıntı için Dışa Aktarma sayfasına bakın.

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

Bir YOLO11n-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("yolo11n-obb.pt")

# Validate the model
metrics = model.val(data="dota8.yaml")
yolo obb val model=yolo11n-obb.pt data=dota8.yaml

Val bölümündeki tüm doğrulama ayrıntılarına bakın.

📅1 yıl önce oluşturuldu ✏️ 1 gün önce güncellendi

Yorumlar