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 y4

Internally, YOLO processes losses and outputs in the xywhr format, which represents the bounding box's center point (xy), width, height, and rotation.

Oriented bounding box annotation format examples

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.749758

Veri 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/cfg/datasets/dota8.yaml
# 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.zip

Kullanım

Bu OBB formatlarını kullanarak bir model eğitmek için:

Örnek
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: ultralytics deposundaki 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:

Ö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ı, 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:

Ö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.

Yorumlar