Ultralytics YOLO27:

Yönlendirilmiş Sınırlayıcı Kutu (OBB) Veri Kümelerine Genel Bakış#

Yönlendirilmiş sınırlayıcı kutularla (OBB) 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çıklayarak bunların yapısı, uygulaması ve biçim dönüştürme yöntemleri hakkında bilgi sunar.

Desteklenen OBB Veri Kümesi Biçimleri#

YOLO OBB Biçimi#

YOLO OBB biçimi, sınırlayıcı kutuları 0 ile 1 arasında normalize edilmiş koordinatlara sahip dört köşe noktasıyla tanımlar. Şu biçimi izler:

class_index x1 y1 x2 y2 x3 y3 x4 y4

YOLO, kayıpları ve çıktıları dahili olarak, sınırlayıcı kutunun merkez noktasını (xy), genişliğini, yüksekliğini ve döndürmesini temsil eden xywhr biçiminde işler.

Oriented bounding box annotation format examples

Yukarıdaki görüntü için *.txt etiket dosyasının, OBB biçiminde 0 sınıfına ait bir nesne içerdiğinde örneği şöyle olabilir:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Veri Kümesi YAML Biçimi#

Ultralytics framework'ü, OBB modellerini eğitmek üzere veri kümesi ve model yapılandırmasını tanımlamak için YAML dosya biçimini kullanır. OBB veri kümesini tanımlamak için kullanılan YAML biçimine 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

train, val ve test öğelerinin her biri bir dizini, dizin listesini veya satır başına bir görüntü yolu listeleyen bir *.txt dosyasını kabul eder (./ ile başlayan yollar, *.txt dosyasına göre çözümlenir). *.txt dosyası; bir dizinin alt kümesiyle eğitim yapmak, etiketlenmemiş 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.

`*.txt` dosyası olarak görüntü yolları
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: plane

Kullanım#

Bu OBB biçimlerini kullanarak bir modeli eğitmek için:

Örnek
from ultralytics import YOLO

# Load a pretrained YOLO26n-OBB model
model = YOLO("yolo26n-obb.pt")

# 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. Bu veri kümelerinin çoğu, görselleri ve etiketlemeleri inceleyebileceğin, veri kümesi istatistiklerini görüntüleyebileceğin ve bulutta eğitim için bunları klonlayabileceğin Ultralytics Platform üzerinde de barındırılmaktadır.

  • DOTA-v1: Nesne algılama için yönlendirilmiş sınırlayıcı kutular içeren kapsamlı bir hava görüntüleri kümesi sunan DOTA veri kümesinin ilk sürümü.
  • DOTA-v1.5: Geliştirilmiş nesne algılama görevleri için DOTA-v1'e kıyasla ek açıklamalar ve iyileştirmeler sunan, DOTA veri kümesinin ara sürümü.
  • 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ü, hava perspektiflerinden 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 deposunda iş akışlarını ve OBB eğitiminin Sürekli Entegrasyon (CI) denetimlerini test etmek için uygun, tam DOTA veri kümesinin 8 görüntülük küçük bir alt kümesi.
  • DOTA8 Multispectral: Ultralytics Platform'da multispektral OBB eğitimini test etmek için kullanılan, 8 görüntüden ve 10 kanaldan oluşan bir TIFF alt kümesi.
  • DOTA128: Tüm görüntüleri train klasöründe bulunan (hem train hem de val için kullanılan), OBB modellerini test etmek üzere boyut ve çeşitlilik arasında iyi bir denge sunan, DOTA veri kümesinin 128 görüntülük alt kümesi.

Kendi OBB Veri Kümeni Entegre Etme#

Yönlendirilmiş sınırlayıcı kutular içeren kendi veri kümelerini eklemek isteyenlerin, yukarıda belirtilen "YOLO OBB formatı" ile uyumluluğu sağlaması gerekir. Açıklamalarını bu gerekli biçime dönüştür ve yolları, sınıfları ve sınıf adlarını ilgili bir YAML yapılandırma dosyasında ayrıntılı olarak belirt.

Etiket Biçimlerini Dönüştürme#

DOTA Veri Kümesi Biçiminden YOLO OBB Biçimine#

Etiketleri DOTA veri kümesi biçiminden YOLO OBB biçimine şu betikle dönüştürebilirsin:

Ö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 biçimindeki veri kümeleri için büyük önem taşır ve Ultralytics YOLO OBB biçimiyle uyumluluğu sağlar.

Veri kümesinin modelinle uyumluluğunu doğrulaman ve gerekli biçim kurallarına uyman 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 kritik öneme sahiptir.

SSS#

  • Yönlendirilmiş Sınırlayıcı Kutular (OBB), yalnızca eksenlere hizalanmak yerine algılanan nesneyle daha yakından hizalanacak şekilde döndürülebilen bir sınırlayıcı kutu açıklaması türüdür. Bu, özellikle nesnelerin görüntü eksenleriyle hizalanmayabileceği hava veya uydu görüntülerinde kullanışlıdır. Ultralytics YOLO modellerinde OBB'ler, YOLO OBB biçiminde dört köşe noktalarıyla temsil edilir. Bu, sınırlayıcı kutuların nesnelere daha iyi uyacak şekilde döndürülebilmesi sayesinde daha doğru nesne algılama sağlar.

  • DOTA veri kümesi etiketlerini, Ultralytics'teki convert_dota_to_yolo_obb işlevini kullanarak YOLO OBB biçimine dönüştürebilirsin. Bu dönüştürme, Ultralytics YOLO modelleriyle uyumluluğu sağlayarak gelişmiş nesne algılama için OBB özelliklerinden yararlanmanı mümkün kılar. 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çimde yeniden düzenler.

  • OBB'lere sahip bir YOLO26 modelini eğitmek için veri kümenin YOLO OBB biçiminde olduğundan emin olman ve ardından modeli eğitmek üzere Ultralytics API'yi kullanman gerekir. Python ve CLI ile 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 ayrıntılı OBB açıklamalarından yararlanarak algılama doğruluğunu artırmasını sağlar.

  • Ultralytics şu anda 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 kümesi sunan DOTA veri kümesinin ilk sürümü.
    • DOTA-v1.5: Geliştirilmiş nesne algılama görevleri için DOTA-v1'e kıyasla ek açıklamalar ve iyileştirmeler sunan, DOTA veri kümesinin ara sürümü.
    • DOTA-v2: Bu veri kümesi, yönlendirilmiş sınırlayıcı kutulara sahip 1,7 milyon örnek ve 11.268 görüntü içerir ve temel olarak hava görüntülerinde nesne algılamaya odaklanır.
    • DOTA8: Test ve sürekli entegrasyon (CI) denetimleri 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), DOTA8'den daha fazla çeşitlilik sunarken ilk OBB modeli geliştirme ve denemeleri için yönetilebilir kalmaya devam eden 128 görüntülük bir alt küme.

    Bu veri kümeleri, OBB'lerin hava ve uydu görüntüsü analizi gibi alanlarda önemli avantaj sağladığı senaryolar için tasarlanmıştır.

  • Evet, yönlendirilmiş sınırlayıcı kutulara sahip kendi veri kümeni YOLO26 eğitimi için kullanabilirsin. Veri kümesi açıklamalarının, sınırlayıcı kutuların dört köşe noktasıyla tanımlanmasını gerektiren YOLO OBB biçimine dönüştürüldüğünden emin ol. 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.

Yorumlar