Yönlendirilmiş Sınırlayıcı Kutular (OBB) Veri Kümelerine Genel Bakış#
Yönlendirilmiş sınırlayıcı kutular (OBB) kullanan hassas bir nesne algılama modelini eğitmek için kapsamlı bir veri kümesi gerekir. Bu kılavuzda Ultralytics YOLO modelleriyle uyumlu çeşitli OBB veri kümesi biçimleri açıklanır; yapıları, kullanım alanları ve biçim dönüştürme yöntemleri hakkında bilgi verilir.
Desteklenen OBB Veri Kümesi Biçimleri#
YOLO OBB Biçimi#
YOLO OBB biçiminde sınırlayıcı kutular, koordinatları 0 ile 1 arasında normalize edilmiş dört köşe noktasıyla tanımlanır. Biçim şu şekildedir:
class_index x1 y1 x2 y2 x3 y3 x4 y4YOLO, kayıpları ve çıktıları dahili olarak xywhr biçiminde işler; bu biçim, sınırlayıcı kutunun merkez noktasını (xy), genişliğini, yüksekliğini ve dönüşünü ifade eder.

Yukarıdaki görüntü için, OBB biçiminde 0 sınıfından bir nesne içeren *.txt etiket dosyası şöyle görünebilir:
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ımlayan bir YAML dosya biçimi kullanır. OBB veri kümesi tanımlamak için kullanılan YAML biçimine 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.ziptrain, val ve test öğelerinin her biri bir dizin, dizin listesi veya her satırda bir görüntü yolu bulunan *.txt dosyası kabul eder (./ ile başlayan yollar, *.txt dosyasına göre çözümlenir). *.txt dosyası; bir dizinin alt kümesiyle eğitim yapmak, etiketsiz görüntüleri atlamak veya birden fazla kaynaktaki görüntüleri tek bir bölüme birleştirmek için kullanışlıdır.
path: datasets/dota8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: planeKullanım#
Bu OBB biçimlerini kullanarak model eğitmek için:
from ultralytics import YOLO
# Önceden eğitilmiş bir YOLO26n-OBB modeli yükle
model = YOLO("yolo26n-obb.pt")
# Modeli DOTAv1 veri kümesinde eğit
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 destekleniyor. Bu veri kümelerinin çoğu, görüntülere ve açıklamalara göz atabileceğin, veri kümesi istatistiklerini görüntüleyebileceğin ve bulut üzerinde eğitim için veri kümelerini kopyalayabileceğin Ultralytics Platform üzerinde de barındırılıyor.
- DOTA-v1: DOTA veri kümesinin ilk sürümüdür; nesne algılama için yönlendirilmiş sınırlayıcı kutular içeren kapsamlı bir hava görüntüsü koleksiyonu sunar.
- DOTA-v1.5: DOTA veri kümesinin ara sürümüdür; gelişmiş nesne algılama görevleri için DOTA-v1'e kıyasla ek açıklamalar ve iyileştirmeler sunar.
- DOTA-v2: DOTA'nın (Hava Görüntülerinde Nesne Algılama için Büyük Ölçekli Veri Kümesi) 2. sürümüdür; hava perspektifinden algılamaya odaklanır ve 1,7 milyon örnek ile 11.268 görüntüden oluşan yönlendirilmiş sınırlayıcı kutular içerir.
- DOTA8: Tam DOTA veri kümesinin 8 görüntülük küçük bir alt kümesidir; iş akışlarını ve
ultralyticsdeposundaki OBB eğitimine yönelik Sürekli Tümleştirme (CI) kontrollerini sınamak için uygundur. - DOTA8 Multispectral: Ultralytics Platform'da çok bantlı OBB eğitimini sınamak için hazırlanmış, 8 görüntü ve 10 kanal içeren bir TIFF alt kümesidir.
- DOTA128: DOTA veri kümesinin, tüm görüntüleri train klasöründe bulunan (hem train hem de val için kullanılan) 128 görüntülük bir alt kümesidir; OBB modellerini sınamak için boyut ve çeşitlilik arasında iyi bir denge sunar.
Kendi OBB veri kümeni kullanma#
Yönlendirilmiş sınırlayıcı kutular içeren kendi veri kümelerini kullanmak istiyorsan yukarıda belirtilen "YOLO OBB biçimi" ile uyumlu olduklarından emin ol. Açıklamalarını bu gerekli biçime dönüştür ve yolları, sınıfları ve sınıf adlarını ilgili YAML yapılandırma dosyasında belirt.
Etiket Biçimlerini Dönüştürme#
DOTA Veri Kümesi Biçiminden YOLO OBB Biçimine#
Bu betiği kullanarak etiketleri DOTA veri kümesi biçiminden YOLO OBB biçimine dönüştürebilirsin:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")Bu dönüştürme yöntemi, DOTA biçimindeki veri kümeleri için önemlidir ve Ultralytics YOLO OBB biçimiyle uyum sağlar.
Veri kümesinin modelinle uyumlu olduğunu doğrulaman ve gerekli biçim kurallarına uyman çok önemlidir. İyi yapılandırılmış veri kümeleri, yönlendirilmiş sınırlayıcı kutular kullanan verimli nesne algılama modellerini eğitmek için kritik öneme sahiptir.
Sık Sorulan Sorular#
Yönlendirilmiş sınırlayıcı kutular (OBB), kutunun yalnızca eksenlere paralel olmak yerine algılanan nesneyle daha iyi hizalanacak şekilde döndürülebildiği bir sınırlayıcı kutu açıklaması türüdür. Bu özellik, nesnelerin görüntü eksenleriyle hizalı olmayabileceği hava veya uydu görüntülerinde özellikle kullanışlıdır. Ultralytics YOLO modellerinde OBB'ler, YOLO OBB biçiminde dört köşe noktasıyla gösterilir. Sınırlayıcı kutular nesnelere daha iyi uyacak şekilde döndürülebildiğinden bu yöntem daha doğru nesne algılamayı sağlar.
DOTA veri kümesi etiketlerini Ultralytics'ın
convert_dota_to_yolo_obbişlevini kullanarak YOLO OBB biçimine dönüştürebilirsin. Bu dönüşüm, Ultralytics YOLO modelleriyle uyumluluğu sağlayarak gelişmiş nesne algılama için OBB özelliklerinden yararlanmana olanak tanır. İş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 açıklamalarını YOLO uyumlu bir biçime dönüştürür.
OBB'li bir YOLO26 modelini eğitmek için veri kümenin YOLO OBB biçiminde olduğundan emin olmalı ve ardından modeli eğitmek için Ultralytics API kullanmalısın. İşte hem Python hem de CLI ile bir örnek:
Örnekfrom ultralytics import YOLO # Sıfırdan yeni bir YOLO26n-OBB modeli oluştur model = YOLO("yolo26n-obb.yaml") # Modeli özel veri kümesi üzerinde eğit 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 açıklamalarından yararlanmasını sağlar.
Ultralytics şu anda OBB eğitimi için aşağıdaki veri kümelerini destekliyor:
- DOTA-v1: DOTA veri kümesinin ilk sürümüdür; nesne algılama için yönlendirilmiş sınırlayıcı kutular içeren kapsamlı bir hava görüntüsü koleksiyonu sunar.
- DOTA-v1.5: DOTA veri kümesinin ara sürümüdür; gelişmiş nesne algılama görevleri için DOTA-v1'e kıyasla ek açıklamalar ve iyileştirmeler sunar.
- DOTA-v2: Bu veri kümesi, yönlendirilmiş sınırlayıcı kutular içeren 1,7 milyon örnek ve başlıca havadan nesne algılamaya odaklanan 11.268 görüntü içerir.
- DOTA8: Test ve sürekli tümleştirme (CI) kontrolleri için kullanılan, DOTA veri kümesinin 8 görüntülük daha küçük bir alt kümesi.
- DOTA128: Tüm görüntüleri train klasöründe bulunan (hem train hem de val için kullanılan) 128 görüntülük bir alt küme. DOTA8'den daha fazla çeşitlilik sunarken ilk OBB modeli geliştirme ve denemeleri için yönetilebilir boyutta kalır.
Bu veri kümeleri, OBB'lerin havadan ve uydu görüntülerinin analizi gibi senaryolarda önemli avantaj sağladığı durumlar için tasarlanmıştır.
Evet, YOLO26 eğitiminde yönlendirilmiş sınırlayıcı kutular içeren kendi veri kümeni kullanabilirsin. Sınırlayıcı kutuların dört köşe noktasıyla tanımlandığı YOLO OBB biçimine dönüştürülmüş veri kümesi açıklamalarını kullanmalısın. Ardından veri kümesi yollarını, sınıfları ve gerekli diğer ayrıntıları belirten bir YAML yapılandırma dosyası oluşturabilirsin. Veri kümelerini oluşturma ve yapılandırma hakkında daha fazla bilgi için Desteklenen Veri Kümeleri bölümüne bak.



