İçeriğe geç

OBB ile DOTA Veri Kümesi

DOTA, hava görüntülerinde nesne tespitini vurgulayan özel bir veri kümesi olarak duruyor. DOTA veri kümeleri serisinden kaynaklanan bu veri kümesi, Yönlendirilmiş Sınırlayıcı Kutular (OBB) ile çeşitli hava sahnelerini yakalayan açıklamalı görüntüler sunmaktadır.

DOTA sınıfları görseli

Temel Özellikler

  • Görüntü boyutları 800 × 800 ila 20.000 × 20.000 piksel arasında değişen çeşitli sensörlerden ve platformlardan toplama.
  • 18 kategoride 1,7 milyondan fazla Yönlendirilmiş Sınırlayıcı Kutu içerir.
  • Çok ölçekli nesne algılamayı kapsar.
  • Örnekler, uzmanlar tarafından rastgele (8 d.o.f.) dörtgen kullanılarak, farklı ölçek, yön ve şekillerdeki nesneler yakalanarak notlandırılır.

Veri Kümesi Sürümleri

DOTA-v1.0

  • 15 ortak kategori içerir.
  • 188.282 örnek ile 2.806 görüntüden oluşmaktadır.
  • Bölünmüş oranlar: Eğitim için 1/2, doğrulama için 1/6 ve test için 1/3.

DOTA-v1.5

  • DOTA-v1.0 ile aynı görüntüleri içerir.
  • Çok küçük örneklere de (10 pikselden az) açıklama eklenmiştir.
  • Yeni bir kategori eklenmesi: "konteyner vinci".
  • Toplam 403.318 örnek.
  • Hava Görüntülerinde Nesne Algılama konulu DOAI Challenge 2019 için yayınlandı.

DOTA-v2.0

  • Google Earth, GF-2 Uydusu ve diğer hava görüntülerinden koleksiyonlar.
  • 18 ortak kategori içerir.
  • Tam 1.793.658 örnekle 11.268 görüntüden oluşmaktadır.
  • Yeni kategoriler tanıtıldı: "havaalanı" ve "helikopter pisti".
  • Görüntü bölünüyor:
    • Eğitim: 268.627 örnek ile 1.830 görüntü.
    • Doğrulama: 81.048 örnek ile 593 görüntü.
    • Test-dev: 353.346 örnek ile 2.792 görüntü.
    • Test mücadelesi: 1.090.637 örnek ile 6.053 görüntü.

Veri Kümesi Yapısı

DOTA, OBB nesne algılama zorlukları için özel olarak tasarlanmış yapılandırılmış bir düzen sergiler:

  • Görüntüler: Çeşitli arazileri 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: Uçak, gemi ve bina gibi nesneleri yakalamak için ideal olan, yönlerine bakılmaksızın nesneleri kapsayan döndürülmüş dikdörtgenler biçimindeki ek açıklamalar.

Uygulamalar

DOTA, havadan görüntü analizi için özel olarak tasarlanmış modelleri eğitmek ve değerlendirmek için bir ölçüt görevi görür. OBB ek açıklamalarının 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 sağlar.

Veri Kümesi YAML

Tipik olarak veri kümeleri, veri kümesinin yapılandırmasını detaylandıran bir YAML (Yet Another Markup Language) dosyası içerir. DOTA v1 ve DOTA v1.5 için Ultralytics şunları sağlar DOTAv1.yaml ve DOTAv1.5.yaml dosyaları. Bunlar ve DOTA v2 hakkında daha fazla ayrıntı için lütfen DOTA'nın resmi deposuna ve belgelerine bakın.

DOTAv1.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 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 (2GB)

# 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: ../datasets/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

Bölünmüş DOTA görüntüleri

DOTA veri kümesini eğitmek için, yüksek çözünürlüklü orijinal DOTA görüntülerini çok ölçekli bir şekilde 1024x1024 çözünürlüklü görüntülere ayırdık.

Bölünmüş görüntüler

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,
)

Kullanım

DOTA v1 veri kümesi üzerinde bir modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz. Kullanılabilir argümanların kapsamlı bir listesi için her zaman modelinizin belgelerine bakın.

Uyarı

DOTAv1 veri setindeki tüm görüntülerin ve ilgili açıklamaların akademik amaçlarla kullanılabileceğini, ancak ticari kullanımın yasak olduğunu lütfen unutmayın. Veri setinin yaratıcılarının isteklerine göstereceğiniz anlayış ve saygı büyük takdir toplayacaktır!

Tren Örneği

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO("yolov8n-obb.yaml")

# Train the model on the DOTAv2 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo obb train data=DOTAv1.yaml model=yolov8n-obb.pt epochs=100 imgsz=640

Örnek Veriler ve Açıklamalar

Veri setine bir göz atmak, derinliğini göstermektedir:

Veri kümesi örnek görüntüsü

  • DOTA örnekleri: Bu anlık görüntü, hava sahnelerinin karmaşıklığının ve nesneleri doğal yönlerinde yakalayan Yönlendirilmiş Sınırlayıcı Kutu açıklamalarının öneminin altını çizmektedir.

Veri setinin zenginliği, hava görüntülerine özel nesne algılama zorlukları hakkında paha biçilmez bilgiler sunuyor.

Atıflar ve Teşekkür

Çalışmalarında DOTA'dan yararlananlar için ilgili araştırma makalelerine atıfta bulunmak yerinde olacaktır:

@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 setlerinin arkasındaki ekibe, bu veri setinin küratörlüğünde gösterdikleri övgüye değer çaba için özel bir teşekkür notu. Veri setini ve nüanslarını kapsamlı bir şekilde anlamak için lütfen resmi DOTA web sitesini ziyaret edin.

SSS

DOTA veri seti nedir ve hava görüntülerinde nesne tespiti için neden önemlidir?

DOTA veri küm esi, hava görüntülerinde nesne tespitine odaklanan özel bir veri kümesidir. Yönlendirilmiş Sınırlayıcı Kutular (OBB) içerir ve çeşitli hava sahnelerinden açıklamalı görüntüler sağlar. DOTA'nın 1,7 milyon ek açıklaması ve 18 kategorisi boyunca nesne yönelimi, ölçeği ve şeklindeki çeşitliliği, onu gözetim, çevresel izleme ve afet yönetiminde kullanılanlar gibi hava görüntüleri analizi için uyarlanmış modeller geliştirmek ve değerlendirmek için ideal hale getirir.

DOTA veri seti görüntülerdeki farklı ölçekleri ve yönelimleri nasıl ele alıyor?

DOTA ek açıklama için Yönlendirilmiş Sınırlayıcı Kutular (OBB) kullanır; bu kutular, yönlerinden bağımsız olarak nesneleri içine alan döndürülmüş dikdörtgenlerle temsil edilir. Bu yöntem, ister küçük ister farklı açılarda olsun, nesnelerin doğru bir şekilde yakalanmasını sağlar. Veri setinin 800 × 800 ila 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 bir şekilde tespit edilmesine olanak tanır.

DOTA veri kümesini kullanarak bir modeli nasıl eğitebilirim?

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

Tren Örneği

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO("yolov8n-obb.yaml")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolov8n-obb.pt epochs=100 imgsz=640

DOTA görüntülerinin nasıl bölüneceği ve ön işlemden geçirileceği hakkında daha fazla bilgi 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 örnekle 2.806 görüntüde 15 ortak kategori 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 az) açıklama ekleyerek ve yeni bir kategori olan "konteyner vinci" ekleyerek DOTA-v1.0 üzerine inşa edilmiştir ve toplam 403.318 örnek içermektedir.

  • DOTA-v2.0: Google Earth ve GF-2 Satellite'dan alınan ek açıklamalarla daha da genişleyerek 11.268 görüntü ve 1.793.658 örnek içeriyor. "Havaalanı" ve "helikopter pisti" gibi yeni kategoriler içermektedir.

Ayrıntılı bir karşılaştırma ve ek ayrıntılar için veri seti sürümleri bölümüne bakı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 eğitim için daha küçük çözünürlüklere bölünür. İşte görüntüleri bölmek için bir Python snippet:

Ö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 daha iyi eğitim verimliliği ve model performansı sağlar. Ayrıntılı talimatlar için bölünmüş DOTA görüntüleri bölümünü ziyaret edin.



Oluşturuldu 2023-11-12, Güncellendi 2024-07-04
Yazarlar: glenn-jocher (10), Laughing-q (1)

Yorumlar