OBB ile DOTA Veri Kümesi

DOTA, hava görüntülerinde nesne algılama konusuna odaklanan özel bir veri kümesidir. DOTA veri kümesi serisinden türetilmiş olup, Yönlendirilmiş Sınırlayıcı Kutular (OBB) içeren çeşitli hava sahnelerini yakalayan etiketlenmiş görüntüler sunar.

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

Temel Özellikler



Watch: How to Train Ultralytics YOLO26 on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
  • 800 × 800 ile 20.000 × 20.000 piksel arasında değişen görüntü boyutları ile çeşitli sensör ve platformlardan toplanmıştır.
  • 18 kategoride 1,7 milyondan fazla yönlendirilmiş sınırlayıcı kutu içerir.
  • Görüntü başına geniş nesne boyutu dağılımı sayesinde çok ölçekli nesne algılamayı kapsar.
  • Örnekler, uzmanlar tarafından farklı ölçek, yönelim ve şekillerdeki nesneleri yakalamak için rastgele (8 serbestlik dereceli) dörtgenler kullanılarak 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ölme oranları: Eğitim için 1/2, doğrulama için 1/6 ve test için 1/3.

DOTA-v1.5

DOTA-v2.0

  • Google Earth, GF-2 Uydu görüntüleri ve diğer hava görüntülerinden derlemeler içerir.
  • 18 yaygın kategori içerir.
  • 1.793.658 gibi devasa sayıda örnek içeren 11.268 görüntüden oluşur.
  • Yeni tanıtılan kategoriler: "havalimanı" ve "helikopter pisti".
  • Görüntü bölümleri:
    • 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 zorluklarına göre tasarlanmış yapılandırılmış bir düzen sergiler:

  • Görüntüler: Çeşitli arazileri ve yapıları yakalayan geniş bir yüksek çözünürlüklü hava görüntüsü koleksiyonu.
  • Yönlendirilmiş Sınırlayıcı Kutular: Nesneleri yönelimlerinden bağımsız olarak kapsayan döndürülmüş dikdörtgenler şeklindeki etiketler; uçak, gemi ve bina gibi nesneleri yakalamak için idealdir.

Uygulamalar

DOTA, özellikle hava görüntü analizi için tasarlanmış modellerin eğitilmesi ve değerlendirilmesi için bir kıstas görevi görür. OBB etiketlerinin dahil edilmesiyle, hava görüntülerinin nüanslarına hitap eden özel nesne algılama modellerinin geliştirilmesine olanak tanıyan benzersiz bir zorluk sunar. Veri kümesi, özellikle uzaktan algılama, gözetim ve çevresel izleme alanlarındaki uygulamalar için değerlidir.

Veri Kümesi YAML Dosyası

Bir veri kümesi YAML (Yet Another Markup Language) 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ı bulundurur:

İndirdiğiniz sürüme uygun YAML dosyasını kullanın veya DOTA-v2 ya da başka bir türevle çalışıyorsanız özel bir YAML oluşturun.

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
#     └── dota1 ← 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 kenar başına 10.000 pikseli aşar, bu nedenle veriler YOLO'ya beslenmeden önce döşeme (tiling) yapılması gerekir. Kaynak görüntüleri, etiketlerle eşgüdümlü kalarak çoklu ölçeklerde örtüşen 1024 × 1024'lük kırpıntılara ayırmak için aşağıdaki yardımcıyı kullanın.

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

# Split train and val set, with labels.
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,
)
# Split test set, without labels.
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.) tutun, böylece veri kümesi YAML'inden doğrudan referans verebilirsiniz.

Kullanım

DOTA v1 veri kümesi üzerinde bir model eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz. Mevcut argümanların kapsamlı bir listesi için her zaman modelinizin belgelerine başvurun. İlk önce daha küçük bir alt küme ile deneme yapmak isteyenler için, hızlı test amacıyla sadece 8 görüntü içeren DOTA8 veri kümesini kullanmayı düşünebilirsiniz.

Uyarı

Lütfen DOTAv1 veri kümesindeki tüm görüntülerin ve ilişkili etiketlerin akademik amaçlarla kullanılabileceğini, ancak ticari kullanımın yasak olduğunu unutmayın. Veri kümesi oluşturucularının isteklerine gösterdiğiniz anlayış ve saygı için çok teşekkür ederiz!

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

Örnek Veriler ve Açıklamalar

Veri kümesine göz atmak derinliğini ortaya koyar:

Yönlendirilmiş sınırlayıcı kutu etiketlerine sahip DOTA veri kümesi

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

Veri kümesinin zenginliği, hava görüntülerine özel nesne algılama zorluklarına dair paha biçilmez içgörüler sunar. DOTA-v2.0 veri kümesi, kapsamlı etiketleri ve çeşitli nesne kategorileri nedeniyle özellikle uzaktan algılama ve hava gözetleme projeleri için popüler hale gelmiştir.

Alıntılar ve Teşekkür

DOTA'yı çalışmalarınızda kullanırsanız, lütfen ilgili araştırma makalelerine atıfta bulunun:

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={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3117983}
}

DOTA veri kümelerinin arkasındaki ekibe, bu veri kümesini düzenleme konusundaki övgüye değer çabalarından dolayı özel bir teşekkür ederiz. Veri kümesini ve inceliklerini kapsamlı bir şekilde anlamak için lütfen resmi DOTA web sitesini ziyaret et.

SSS

DOTA veri kümesi nedir ve hava görüntülerinde nesne algılama için neden önemlidir?

DOTA veri kümesi, hava görüntülerinde nesne algılama konusuna odaklanan özel bir veri kümesidir. Yönlendirilmiş Sınırlayıcı Kutular (OBB) içerir ve çeşitli hava sahnelerinden etiketlenmiş görüntüler sağlar. DOTA'nın 1,7 milyon etiket ve 18 kategori genelindeki nesne yönelimi, ölçeği ve şeklindeki çeşitliliği; gözetim, çevresel izleme ve afet yönetimi gibi alanlarda kullanılanlar gibi, hava görüntüsü analizi için uyarlanmış modelleri geliştirmek ve değerlendirmek için onu ideal kılar.

DOTA veri kümesi, görüntülerdeki farklı ölçek ve yönelimleri nasıl ele alır?

DOTA, etiketleme için, nesneleri yönelimlerinden bağımsız olarak kapsayan döndürülmüş dikdörtgenlerle temsil edilen Yönlendirilmiş Sınırlayıcı Kutuları (OBB) kullanır. Bu yöntem, nesnelerin küçük veya farklı açılarda olsalar dahi doğru şekilde yakalanmasını sağlar. 800 × 800 ile 20.000 × 20.000 piksel arasında değişen veri kümesinin çok ölçekli görüntüleri, hem küçük hem de büyük nesnelerin etkili bir şekilde 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ümesini kullanarak nasıl model eğitebilirim?

DOTA veri kümesi üzerinde model eğitmek için Ultralytics YOLO ile aşağıdaki örneği kullanabilirsiniz:

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

DOTA görüntülerini nasıl böleceğiniz ve ön işleme tabi tutacağınız hakkında daha fazla ayrıntı için DOTA görüntülerini bölme bölümüne bakın.

DOTA-v1.0, DOTA-v1.5 ve DOTA-v2.0 arasındaki farklar nelerdir?

  • DOTA-v1.0: 188.282 örnek içeren 2.806 görüntüde 15 yaygın kategoriyi kapsar. Veri kümesi eğitim, doğrulama ve test setlerine ayrılmıştır.
  • DOTA-v1.5: Çok küçük örnekleri (10 pikselden küçük) etiketleyerek ve "konteyner vinci" adlı yeni bir kategori ekleyerek DOTA-v1.0'ın üzerine inşa edilir; toplam 403.318 örneğe ulaşır.
  • DOTA-v2.0: 11.268 görüntü ve 1.793.658 örnek ile Google Earth ve GF-2 Uydu verilerinden gelen etiketlerle daha da genişler. "havalimanı" ve "helikopter pisti" gibi yeni kategoriler içerir.

Detaylı bir karşılaştırma ve ek özellikler için veri kümesi sürümleri bölümüne göz atın.

Eğitim için yüksek çözünürlüklü DOTA görüntülerini nasıl hazırlayabilirim?

Çok büyük olabilen DOTA görüntüleri, yönetilebilir bir eğitim için daha küçük çözünürlüklere bölünür. Görüntüleri bölmek için Python kod parçacığı şöyledir:

Örnek
from ultralytics.data.split_dota import split_test, split_trainval

# split train and val set, with labels.
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,
)
# split test set, without labels.
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ğitimin verimliliğini ve model performansını artırır. Detaylı talimatlar için DOTA görüntülerini bölme bölümünü ziyaret edin.

Yorumlar