Yönlendirilmiş Sınırlayıcı Kutu (OBB) Veri Kümelerine Genel Bakış
Yönlendirilmiş sınırlayıcı kutular (OBB) ile 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 biçimlerini açıklar ve bunların yapısı, uygulaması ve biçim dönüştürme yöntemleri hakkında bilgiler sunar.
Desteklenen OBB Veri Kümesi Biçimleri
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 belirtir. Şu formatı izler:
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üşü.
Bir örneği *.txt
yukarıdaki resim için sınıf nesnesi içeren etiket dosyası 0
OBB biçiminde şöyle görünebilir:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758
Veri Kümesi YAML formatı
Ultralytics çatısı, OBB Modellerini eğitmek için veri seti ve model yapılandırmasını tanımlamak üzere bir YAML dosya biçimi kullanır. İşte bir OBB veri setini 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 split DOTAv1 dataset 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 (1MB)
# 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.zip
Kullanım
Bu OBB formatlarını kullanarak bir model eğitmek için:
Örnek
from ultralytics import YOLO
# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt 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ı kutularla kapsamlı bir hava görüntüleri seti sağlayan DOTA veri kümesinin ilk sürümü.
- DOTA-v1.5: Gelişmiş nesne algılama görevleri için DOTA veri kümesinin ara bir sürümü olup, DOTA-v1'e göre ek açıklamalar ve iyileştirmeler sunar.
- DOTA-v2: DOTA (Hava Görüntülerinde Nesne Algılama için Geniş Ölçekli Bir Veri Kümesi) sürüm 2, hava perspektiflerinden algılamayı vurgular ve 1,7 milyon örnek ve 11.268 görüntü ile yönlendirilmiş sınırlayıcı kutular içerir.
- DOTA8: Tam DOTA veri kümesinin küçük, 8 görüntülük bir alt kümesi; iş akışlarını test etmek ve OBB eğitiminin Sürekli Entegrasyon (CI) kontrolleri için uygundur.
ultralytics
deposu.
Kendi OBB veri kümenizi dahil etme
Kendi yönlendirilmiş sınırlayıcı kutularına sahip veri kümelerini tanıtmak isteyenler için, yukarıda bahsedilen "YOLO OBB formatı" ile uyumluluğu sağlayın. Açıklamalarınızı bu gerekli formata dönüştürün ve ilgili bir YAML yapılandırma dosyasında yolları, sınıfları ve sınıf adlarını detaylandırın.
Etiket Biçimlerini Dönüştür
DOTA Veri Kümesi Formatından YOLO OBB Formatına
DOTA veri kümesi formatındaki etiketleri YOLO OBB formatına dönüştürme, bu komut dosyasıyla gerçekleştirilebilir:
Örnek
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")
Bu dönüştürme mekanizması, DOTA formatındaki veri kümeleri için çok önemlidir ve Ultralytics YOLO OBB formatıyla uyum sağlar.
Veri kümesinin modelinizle uyumluluğunu doğrulamak ve gerekli format kurallarına uymak zorunludur. Düzgün yapılandırılmış veri kümeleri, yönlendirilmiş sınırlayıcı kutulara sahip verimli nesne algılama modellerini eğitmek için çok önemlidir.
SSS
Yönlendirilmiş Sınırlayıcı Kutular (OBB) nelerdir ve Ultralytics YOLO modellerinde nasıl kullanılır?
Yönlendirilmiş Sınırlandırma Kutuları (OBB), kutunun sadece eksenlere hizalı olmak yerine, algılanan nesneyle daha yakından hizalanmak üzere döndürülebildiği bir tür sınırlandırma kutusu etiketlemesidir. Bu, 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 formatındaki dört köşe noktasıyla temsil edilir. Bu, sınırlandırma kutuları nesnelere daha iyi uyacak şekilde dönebildiğinden, daha doğru nesne algılamaya olanak tanır.
Mevcut DOTA veri seti etiketlerimi Ultralytics YOLO11 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 fonksiyonunu kullanarak YOLO OBB biçimine dönüştürebilirsiniz. convert_dota_to_yolo_obb
Ultralytics'ten bir fonksiyon. Bu dönüştürme, Ultralytics YOLO modelleriyle uyumluluğu sağlayarak, gelişmiş nesne tespiti için OBB özelliklerinden yararlanmanıza olanak tanır. İşte hızlı 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ızı YOLO uyumlu bir biçime yeniden biçimlendirecektir.
Veri kümem üzerinde yönlendirilmiş sınırlayıcı kutular (OBB) ile bir YOLO11 modeli nasıl eğitirim?
OBB'lerle bir YOLO11 modelini eğitmek, veri kümenizin YOLO OBB formatında olduğundan emin olmayı ve ardından modeli eğitmek için Ultralytics API'sini kullanmayı içerir. İşte hem Python hem de CLI'da bir örnek:
Örnek
from ultralytics import YOLO
# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")
# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLO11n-OBB model on the custom dataset
yolo obb train data=your_dataset.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640
Bu, modelinizin iyileştirilmiş 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ı kutularla kapsamlı bir hava görüntüleri seti sağlayan DOTA veri kümesinin ilk sürümü.
- DOTA-v1.5: Gelişmiş nesne algılama görevleri için DOTA veri kümesinin ara bir sürümü olup, DOTA-v1'e göre ek açıklamalar ve iyileştirmeler sunar.
- DOTA-v2: Bu veri kümesi, öncelikle hava nesne algılamaya odaklanan 1,7 milyon örnek ve yönlendirilmiş sınırlayıcı kutulara sahip 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ülük bir alt kümesi.
Bu veri kümeleri, OBB'lerin hava ve uydu görüntü analizi gibi önemli bir avantaj sağladığı senaryolar için özel olarak tasarlanmıştır.
YOLO11 eğitimi için yönlendirilmiş sınırlayıcı kutularla kendi veri kümemi kullanabilir miyim ve eğer kullanabilirsem, nasıl?
Evet, YOLO11 eğitimi için yönlendirilmiş sınırlayıcı kutularla kendi veri kümenizi kullanabilirsiniz. Veri kümesi açıklamalarınızın, sınırlayıcı kutuları dört köşe noktasıyla tanımlamayı içeren YOLO OBB biçimine dönüştürüldüğünden emin olun. Daha sonra veri kümesi yollarını, sınıflarını ve diğer gerekli ayrıntıları belirten bir YAML yapılandırma dosyası oluşturabilirsiniz. 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ın.