Yönlendirilmiş Sınırlayıcı Kutu (OBB) Veri Kümelerine Genel Bakış
Yönlendirilmiş sınırlayıcı kutulara (OBB) sahip hassas bir nesne algılama modeli eğitmek, kapsamlı bir veri kümesi gerektirir. Bu kılavuz, Ultralytics YOLO modelleriyle uyumlu çeşitli OBB veri kümesi formatlarını açıklar ve bunların yapısı, uygulaması ve format dönüştürme yöntemleri hakkında bilgiler sunar.
Desteklenen OBB Veri Kümesi Formatları
YOLO OBB Formatı
YOLO OBB formatı, sınırlayıcı kutuları 0 ile 1 arasında normalleştirilmiş koordinatlara sahip dört köşe noktasıyla belirler. Şu formatı izler:
class_index x1 y1 x2 y2 x3 y3 x4 y4Internally, YOLO processes losses and outputs in the xywhr format, which represents the bounding box's center point (xy), width, height, and rotation.

An example of a *.txt label file for the above image, which contains an object of class 0 in OBB format, could look like:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758Veri kümesi YAML biçimi
Ultralytics çerçevesi, OBB modellerini eğitmek için veri kümesini ve model yapılandırmasını tanımlamak üzere bir YAML dosya formatı kullanır. İşte bir OBB veri kümesini tanımlamak için kullanılan YAML formatına bir örnek:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DOTA8 dataset (8 images from the DOTAv1 split) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota8/
# Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── dota8 ← downloads here (1 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: dota8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
# Classes for DOTA 1.0
names:
0: plane
1: ship
2: storage tank
3: baseball diamond
4: tennis court
5: basketball court
6: ground track field
7: harbor
8: bridge
9: large vehicle
10: small vehicle
11: helicopter
12: roundabout
13: soccer ball field
14: swimming pool
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/dota8.zipKullanım
Bu OBB formatlarını kullanarak bir model eğitmek için:
from ultralytics import YOLO
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)Desteklenen Veri Kümeleri
Şu anda, yönlendirilmiş sınırlayıcı kutulara sahip aşağıdaki veri kümeleri desteklenmektedir:
- DOTA-v1: Nesne algılama için yönlendirilmiş sınırlayıcı kutular içeren kapsamlı bir hava görüntüleri seti sunan DOTA veri kümesinin ilk sürümü.
- DOTA-v1.5: Gelişmiş nesne algılama görevleri için DOTA-v1'e göre ek açıklamalar ve iyileştirmeler sunan, DOTA veri kümesinin ara bir sürümü.
- DOTA-v2: DOTA (Hava Görüntülerinde Nesne Algılama için Büyük Ölçekli Veri Kümesi) sürüm 2; hava perspektifinden algılamayı vurgular ve 1,7 milyon örnek ile 11.268 görüntü içeren yönlendirilmiş sınırlayıcı kutular barındırır.
- DOTA8:
ultralyticsdeposundaki OBB eğitiminin iş akışlarını ve Sürekli Entegrasyon (CI) kontrollerini test etmek için uygun, tam DOTA veri kümesinin 8 görüntüden oluşan küçük bir alt kümesi. - DOTA128: Train klasöründeki tüm görüntüleri (hem train hem de val için kullanılan) içeren, OBB modellerini test etmek için boyut ve çeşitlilik arasında iyi bir denge sağlayan DOTA veri kümesinin 128 görüntüden oluşan bir alt kümesi.
Kendi OBB veri kümenizi dahil etme
Kendi yönlendirilmiş sınırlayıcı kutu veri kümelerini kullanmak isteyenler, yukarıda belirtilen "YOLO OBB formatı" ile uyumluluğu sağladıklarından emin olmalıdır. Ek açıklamalarınızı bu gerekli formata dönüştürün ve yolları, sınıfları ve sınıf adlarını ilgili bir YAML yapılandırma dosyasında detaylandırın.
Etiket Formatlarını Dönüştürme
DOTA Veri Kümesi Formatından YOLO OBB Formatına
Etiketleri DOTA veri kümesi formatından YOLO OBB formatına geçirmek şu betik ile gerçekleştirilebilir:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")Bu dönüştürme mekanizması, Ultralytics YOLO OBB formatıyla uyumluluğu sağlayarak DOTA formatındaki veri kümeleri için oldukça etkilidir.
Veri kümesinin modelinizle uyumluluğunu doğrulamak ve gerekli format kurallarına bağlı kalmak zorunludur. Düzgün yapılandırılmış veri kümeleri, yönlendirilmiş sınırlayıcı kutularla verimli nesne algılama modelleri eğitmek için kritik öneme sahiptir.
SSS
Yönlendirilmiş Sınırlayıcı Kutular (OBB) nedir ve Ultralytics YOLO modellerinde nasıl kullanılır?
Yönlendirilmiş Sınırlayıcı Kutular (OBB), kutunun sadece eksene hizalı olmak yerine algılanan nesneyle daha yakından hizalanacak şekilde döndürülebildiği bir sınırlayıcı kutu ek açıklama türüdür. Bu, özellikle nesnelerin görüntü eksenleriyle hizalı olmayabileceği hava veya uydu görüntülerinde yararlıdır. Ultralytics YOLO modellerinde OBB'ler, YOLO OBB formatında dört köşe noktasıyla temsil edilir. Bu, sınırlayıcı kutular nesnelere daha iyi uyacak şekilde döndürülebildiğinden daha doğru nesne algılamaya olanak tanır.
Mevcut DOTA veri kümesi etiketlerimi Ultralytics YOLO26 ile kullanım için YOLO OBB formatına nasıl dönüştürürüm?
DOTA veri kümesi etiketlerini, Ultralytics'in convert_dota_to_yolo_obb işlevini kullanarak YOLO OBB formatına dönüştürebilirsin. Bu dönüştürme, Ultralytics YOLO modelleriyle uyumluluğu sağlar ve geliştirilmiş nesne algılama için OBB yeteneklerinden yararlanmanı sağlar. İşte kısa bir örnek:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")Bu betik, DOTA ek açıklamalarını YOLO ile uyumlu bir formata dönüştürecektir.
Veri kümem üzerinde yönlendirilmiş sınırlayıcı kutularla (OBB) bir YOLO26 modeli nasıl eğitirim?
Bir YOLO26 modelini OBB'lerle eğitmek, veri kümenin YOLO OBB formatında olduğundan emin olmayı ve ardından modeli eğitmek için Ultralytics API kullanmayı içerir. İşte hem Python hem de CLI için bir örnek:
from ultralytics import YOLO
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)Bu, modelinin daha iyi algılama doğruluğu için ayrıntılı OBB ek açıklamalarından yararlanmasını sağlar.
Ultralytics YOLO modellerinde OBB eğitimi için şu anda hangi veri kümeleri desteklenmektedir?
Şu anda, Ultralytics OBB eğitimi için aşağıdaki veri kümelerini desteklemektedir:
- DOTA-v1: Nesne algılama için yönlendirilmiş sınırlayıcı kutular içeren kapsamlı bir hava görüntüleri seti sunan DOTA veri kümesinin ilk sürümü.
- DOTA-v1.5: Gelişmiş nesne algılama görevleri için DOTA-v1'e göre ek açıklamalar ve iyileştirmeler sunan, DOTA veri kümesinin ara bir sürümü.
- DOTA-v2: Bu veri kümesi, öncelikli olarak hava nesnesi algılamaya odaklanan, yönlendirilmiş sınırlayıcı kutulara sahip 1,7 milyon örnek ve 11.268 görüntü içerir.
- DOTA8: Test ve sürekli entegrasyon (CI) kontrolleri için kullanılan, DOTA veri kümesinin daha küçük, 8 görüntüden oluşan bir alt kümesi.
- DOTA128: Train klasöründeki tüm görüntüleri içeren (hem train hem de val için kullanılan), ilk OBB modeli geliştirme ve denemeleri için yönetilebilir kalırken DOTA8'den daha fazla çeşitlilik sunan 128 görüntüden oluşan bir alt küme.
Bu veri kümeleri, hava ve uydu görüntüsü analizi gibi OBB'lerin önemli bir avantaj sağladığı senaryolar için özel olarak tasarlanmıştır.
YOLO26 eğitimi için yönlendirilmiş sınırlayıcı kutulara sahip kendi veri kümemi kullanabilir miyim ve nasıl?
Evet, YOLO26 eğitimi için yönlendirilmiş sınırlayıcı kutulara sahip kendi veri kümeni kullanabilirsin. Veri kümesi ek açıklamalarının, sınırlayıcı kutuları dört köşe noktasıyla tanımlamayı içeren YOLO OBB formatına dönüştürüldüğünden emin ol. Ardından, veri kümesi yollarını, sınıfları ve diğer gerekli ayrıntıları belirten bir YAML yapılandırma dosyası oluşturabilirsin. Veri kümelerinizi oluşturma ve yapılandırma hakkında daha fazla bilgi için Desteklenen Veri Kümeleri bölümüne bak.