Ultralytics YOLO27:

OBB'li DOTA Veri Kümesi#

DOTA veri kümesi, havadan çekilmiş görüntülerde nesne algılama için kullanılan büyük ölçekli bir kıyaslama veri kümesidir. Üç sürüm (v1.0, v1.5, v2.0) hâlinde yayımlanmıştır ve çeşitli hava sensörleri ile platformlardan elde edilen, 18 kategoriye yayılan 1,7 milyona kadar Yönlendirilmiş Sınırlayıcı Kutu (OBB) açıklaması içerir.

Yönlendirilmiş açıklamalarını önizlemek, istatistikleri incelemek ve eğitim için klonlamak üzere Ultralytics Platform'da resmî olarak barındırılan DOTA v1.5 ve DOTA v1.0 veri kümelerini keşfet.

Havadan algılama için DOTA veri kümesi nesne sınıfları

Temel Özellikler#



İzle: Google Colab'de Yönlendirilmiş Sınırlayıcı Kutular İçin Ultralytics YOLO DOTA Veri Kümesinde Nasıl Eğitilir
  • 800 × 800 ile 20.000 × 20.000 piksel arasında değişen görüntü boyutlarıyla çeşitli sensörlerden ve platformlardan derlenmiştir.
  • 18 kategori genelinde 1,7 milyondan fazla yönlendirilmiş sınırlayıcı kutu içerir.
  • Görüntü başına nesne boyutlarının geniş aralığı sayesinde çok ölçekli nesne algılamayı kapsar.
  • Örnekler, farklı ölçek, yönelim ve şekillerdeki nesneleri yakalamak için uzmanlar tarafından keyfî dörtgenlerle (8 serbestlik derecesi) etiketlenmiştir.

Veri Kümesi Sürümleri#

DOTA-v1.0#

  • 15 yaygın kategori içerir.
  • 188.282 örnek içeren 2.806 görüntüden oluşur.
  • Bölünme oranları: 1/2 eğitim için (1.411 görüntü), 1/6 doğrulama için (458 görüntü) ve 1/3 test için (937 görüntü).

DOTA-v1.5#

DOTA-v2.0#

  • Google Earth, GF-2 Satellite ve diğer havadan çekilmiş görüntülerden derlenmiştir.
  • 18 yaygın kategori içerir.
  • 1.793.658 örnek içeren 11.268 görüntüden oluşur.
  • Yeni kategoriler eklendi: "havaalanı" ve "helikopter pisti".
  • Görüntü bölünmeleri:
    • Eğitim: 268.627 örnek içeren 1.830 görüntü.
    • Doğrulama: 81.048 örnek içeren 593 görüntü.
    • Test-dev: 353.346 örnek içeren 2.792 görüntü.
    • Test-challenge: 1.090.637 örnek içeren 6.053 görüntü.

Veri Kümesi Yapısı#

DOTA, OBB nesne algılama görevleri için tasarlanmış yapılandırılmış bir düzene sahiptir:

  • Görüntüler: Çeşitli arazi ve yapıları yakalayan, yüksek çözünürlüklü hava görüntülerinden oluşan geniş bir koleksiyon.
  • Yönlendirilmiş Sınırlayıcı Kutular: Nesneleri yönelimlerinden bağımsız olarak çevreleyen, döndürülmüş dikdörtgenler biçimindeki açıklamalar; uçak, gemi ve bina gibi nesneleri yakalamak için idealdir.

Uygulamalar#

DOTA, özellikle hava görüntülerini analiz etmek için tasarlanmış modellerin eğitimi ve değerlendirilmesinde bir kıyaslama veri kümesi görevi görür. OBB açıklamalarının dahil edilmesiyle, hava görüntülerinin özelliklerine yönelik özelleştirilmiş nesne algılama modellerinin geliştirilmesini sağlayan benzersiz bir zorluk sunar. Veri kümesi; uzaktan algılama, gözetim ve çevresel izleme uygulamaları için özellikle değerlidir.

Veri Kümesi YAML Dosyası#

Bir veri kümesi YAML dosyası; görüntü/etiket kök dizinlerini, sınıf adlarını ve diğer önemli meta verileri belirtir. Ultralytics, en yaygın kullanılan iki sürüm için resmi YAML dosyalarını sunar:

İndirdiğin sürümle eşleşen YAML dosyasını kullan veya DOTA-v2 ya da başka bir türev üzerinde çalışıyorsan özel bir YAML dosyası oluştur. Her iki sürüm de ilk kez eğitim yaptığında Ultralytics GitHub varlıklarından otomatik olarak indirilir (2 GB).

DOTAv1.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA 1.0 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
# Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2
# Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── DOTAv1 ← downloads here (2 GB)

# 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: DOTAv1 # dataset root dir
train: images/train # train images (relative to 'path') 1411 images
val: images/val # val images (relative to 'path') 458 images
test: images/test # test images (optional) 937 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/DOTAv1.zip

DOTA görüntülerini bölme#

Ham görüntüler genellikle bir kenarda 10.000 pikseli aşar; bu nedenle verileri YOLO'ya vermeden önce parçalara ayırman önerilir. Kaynak görüntüleri, açıklamaları eşzamanlı tutarak birden çok ölçekte, örtüşen 1024 × 1024 kırpımlara ayırmak için aşağıdaki yardımcı kodu kullan.

Görüntüleri böl
from ultralytics.data.split_dota import split_test, split_trainval

# Etiketlerle birlikte eğitim ve doğrulama kümelerini böl.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# Etiketsiz test kümesini böl.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
İpucu

Çıktı dizinini standart YOLO düzeninde (images/train, labels/train vb.) tut; böylece dizine doğrudan veri kümesi YAML dosyasından başvurabilirsin.

Kullanım#

DOTA v1 veri kümesinde model eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Mevcut bağımsız değişkenlerin kapsamlı listesi için daima modelinin belgelerine başvur. Önce daha küçük bir alt kümede deneme yapmak istiyorsan, hızlı test için yalnızca 8 görüntü içeren ve Ultralytics Platform üzerinde görüntülenebilen DOTA8 veri kümesini kullanabilirsin.

Uyarı

DOTAv1 veri kümesindeki tüm görüntülerin ve bunlarla ilişkili açıklamaların akademik amaçlarla kullanılabileceğini, ancak ticari kullanımın yasak olduğunu lütfen unutma. Veri kümesini oluşturanların isteklerini anlayışla karşılaman ve bunlara saygı göstermen çok takdir ediliyor!

Eğitim Örneği
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)

Örnek Veriler ve Açıklamalar#

Veri kümesine kısaca göz atmak, kapsamını ortaya koyar:

Yönlendirilmiş sınırlayıcı kutu açıklamaları içeren DOTA veri kümesi

  • DOTA örnekleri: Bu görüntü, hava sahnelerinin karmaşıklığını ve nesneleri doğal yönelimlerinde yakalayan yönlendirilmiş Sınırlayıcı Kutu açıklamalarının önemini vurgular.

Veri kümesinin zenginliği, yalnızca hava görüntülerinde görülen nesne algılama zorluklarına dair paha biçilmez bilgiler sunar. DOTA-v2.0 veri kümesi, kapsamlı açıklamaları ve çeşitli nesne kategorileri sayesinde uzaktan algılama ve hava gözetimi projelerinde özellikle popüler hâle gelmiştir.

Atıflar ve Teşekkürler#

Çalışmanda DOTA'yı kullanıyorsan lütfen ilgili araştırma makalelerine atıfta bulun:

Alıntı
@article{9560031,
  author={Ding, Jian and Xue, Nan and Xia, Gui-Song and Bai, Xiang and Yang, Wen and Yang, Michael and Belongie, Serge and Luo, Jiebo and Datcu, Mihai and Pelillo, Marcello and Zhang, Liangpei},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Object Detection in Aerial Images: A Large-Scale Benchmark and Challenges},
  year={2022},
  volume={44},
  number={11},
  pages={7778-7796},
  doi={10.1109/TPAMI.2021.3117983}
}

Bu veri kümesini derlemek için gösterdikleri takdire değer çaba nedeniyle DOTA veri kümelerinin arkasındaki ekibe özel teşekkürlerimizi sunarız. Veri kümesini ve inceliklerini kapsamlı biçimde anlamak için resmî DOTA web sitesini ziyaret et.

Sık Sorulan Sorular#

  • DOTA veri kümesi, hava görüntülerinde nesne algılamaya odaklanan özel bir veri kümesidir. Çeşitli hava sahnelerinden alınan, açıklama eklenmiş görüntülerde Yönlendirilmiş Sınırlayıcı Kutular (OBB) bulunur. DOTA'nın 1,7 milyon açıklama ve 18 kategori genelindeki nesne yönelimi, ölçeği ve şekil çeşitliliği; gözetim, çevresel izleme ve afet yönetiminde kullanılanlar gibi hava görüntülerini analiz etmek üzere tasarlanmış modellerin geliştirilmesi ve değerlendirilmesi için veri kümesini ideal kılar.

  • DOTA, açıklama eklemek için Yönlendirilmiş Sınırlayıcı Kutular (OBB) kullanır. Bu kutular, nesneleri yönelimlerinden bağımsız olarak çevreleyen döndürülmüş dikdörtgenlerle gösterilir. Bu yöntem, nesnelerin küçük veya farklı açılarda olmasına bakılmaksızın doğru şekilde yakalanmasını sağlar. Veri kümesinin 800 × 800 ile 20.000 × 20.000 piksel arasında değişen çok ölçekli görüntüleri, hem küçük hem de büyük nesnelerin etkili biçimde algılanmasına olanak tanır. Bu yaklaşım, nesnelerin çeşitli açılarda ve ölçeklerde göründüğü hava görüntüleri için özellikle değerlidir.

  • DOTA veri kümesinde model eğitmek için Ultralytics YOLO ile aşağıdaki örneği kullanabilirsin:

    Eğitim Örneği
    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)

    DOTA görüntülerini bölme ve ön işleme hakkında daha fazla bilgi için DOTA görüntülerini bölme bölümüne bak.

    • DOTA-v1.0: 2.806 görüntüde 15 yaygın kategoriyi ve 188.282 örneği içerir. Veri kümesi eğitim, doğrulama ve test kümelerine ayrılmıştır.
    • DOTA-v1.5: Çok küçük örneklere (10 pikselden küçük) açıklamalar ekleyerek ve "konteyner vinci" adlı yeni bir kategori ekleyerek DOTA-v1.0'ı genişletir; toplam örnek sayısı 403.318'dir.
    • DOTA-v2.0: Google Earth ve GF-2 Satellite kaynaklarından alınan açıklamalarla kapsamı daha da genişletir; 11.268 görüntü ve 1.793.658 örnek içerir. "Havaalanı" ve "helikopter pisti" gibi yeni kategoriler de bulunur.

    Ayrıntılı bir karşılaştırma ve ek bilgiler için veri kümesi sürümleri bölümüne bak.

  • Çok büyük olabilen DOTA görüntüleri, eğitim sürecini yönetilebilir kılmak için daha küçük boyutlara bölünür. Görüntüleri bölmek için kullanabileceğin bir Python kodu:

    Örnek
    from ultralytics.data.split_dota import split_test, split_trainval
    
    # Etiketlerle birlikte eğitim ve doğrulama kümelerini böl.
    split_trainval(
        data_root="path/to/DOTAv1.0/",
        save_dir="path/to/DOTAv1.0-split/",
        rates=[0.5, 1.0, 1.5],  # multiscale
        gap=500,
    )
    # Etiketsiz test kümesini böl.
    split_test(
        data_root="path/to/DOTAv1.0/",
        save_dir="path/to/DOTAv1.0-split/",
        rates=[0.5, 1.0, 1.5],  # multiscale
        gap=500,
    )

    Bu işlem, eğitim verimliliğini ve model performansını artırır. Ayrıntılı talimatlar için DOTA görüntülerini bölme bölümünü ziyaret et.

Yorumlar