Meet YOLO26: next-gen vision AI.

Link to this sectionYönlendirilmiş Sınırlayıcı Kutu (OBB) Veri Kümelerine Genel Bakış#

Hassas bir nesne algılama modelini yönlendirilmiş sınırlayıcı kutular (OBB) ile 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.

Link to this sectionDesteklenen OBB Veri Kümesi Formatları#

Link to this sectionYOLO OBB Formatı#

YOLO OBB formatı, sınırlayıcı kutuları 0 ile 1 arasında normalize edilmiş koordinatlara sahip dört köşe noktasıyla tanımlar. Ş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

Link to this sectionVeri kümesi YAML formatı#

Ultralytics çerçevesi, OBB modellerini eğitmek için veri kümesini ve model yapılandırmasını tanımlamak adına 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

Link to this sectionKullanı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)

Link to this sectionDesteklenen 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 sağlayan 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'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 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 olan, 8 görüntüden oluşan küçük bir DOTA veri kümesi alt kümesi.
  • DOTA128: OBB modellerini test etmek için boyut ve çeşitlilik arasında iyi bir denge sağlayan, tren klasöründeki (hem eğitim hem de doğrulama için kullanılan) tüm görüntüleri içeren 128 görüntülük bir DOTA veri kümesi alt kümesi.

Link to this sectionKendi OBB veri kümeni dahil etme#

Yönlendirilmiş sınırlayıcı kutulara sahip kendi veri kümelerini tanıtmak isteyenler için, yukarıda belirtilen "YOLO OBB formatı" ile uyumluluğu sağla. Açıklamalarını bu gerekli formata dönüştür ve ilgili bir YAML yapılandırma dosyasında yolları, sınıfları ve sınıf adlarını detaylandır.

Link to this sectionEtiket Formatlarını Dönüştürme#

Link to this sectionDOTA 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ı, DOTA formatındaki veri kümeleri için Ultralytics YOLO OBB formatıyla hizalamayı sağlayan önemli bir araçtır.

Veri kümesinin modelinle uyumluluğunu doğrulamak ve gerekli format kurallarına uymak 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 kritiktir.

Link to this sectionSSS#

Link to this sectionYönlendirilmiş Sınırlayıcı Kutular (OBB) nelerdir ve Ultralytics YOLO modellerinde nasıl kullanılırlar?#

Yönlendirilmiş Sınırlayıcı Kutular (OBB), kutunun yalnızca eksene hizalı olmak yerine algılanan nesneyle daha yakından hizalanacak şekilde döndürülebildiği bir sınırlayıcı kutu açıklaması 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ındaki dört köşe noktalarıyla temsil edilir. Sınırlayıcı kutular nesnelere daha iyi uyacak şekilde döndürülebildiğinden bu, daha doğru nesne algılamaya olanak tanır.

Link to this sectionMevcut DOTA veri kümesi etiketlerimi, Ultralytics YOLO26 ile kullanmak üzere nasıl YOLO OBB formatına dönüştürebilirim?#

DOTA veri kümesi etiketlerini, Ultralytics'ten convert_dota_to_yolo_obb fonksiyonunu kullanarak YOLO OBB formatına dönüştürebilirsin. Bu dönüştürme, Ultralytics YOLO modelleriyle uyumluluğu sağlar ve gelişmiş nesne algılama için OBB yeteneklerinden yararlanmana olanak tanır. İşte hızlı 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 formata yeniden biçimlendirecektir.

Link to this sectionVeri kümemde yönlendirilmiş sınırlayıcı kutular (OBB) ile nasıl bir YOLO26 modeli eğitebilirim?#

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 üzerinden 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 detaylı OBB açıklamalarından yararlanmasını sağlar.

Link to this sectionUltralytics 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 sağlayan 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 8 görüntü içeren daha küçük bir alt kümesi.
  • DOTA128: Başlangıç seviyesindeki OBB model geliştirme ve denemeleri için yönetilebilir kalırken DOTA8'den daha fazla çeşitlilik sunan, tren klasöründeki tüm görüntüleri içeren (hem eğitim hem de doğrulama için kullanılan) 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 önemli bir avantaj sağladığı senaryolar için özel olarak hazırlanmıştır.

Link to this sectionYOLO26 eğitimi için yönlendirilmiş sınırlayıcı kutulara sahip kendi veri kümemi kullanabilir miyim ve kullanabilirsem nasıl?#

Evet, YOLO26 eğitimi için yönlendirilmiş sınırlayıcı kutulara sahip kendi veri kümeni kullanabilirsin. Veri kümesi açıklamalarının, sınırlayıcı kutuların dört köşe noktasıyla tanımlanmasını 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 detayları 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