Ultralytics YOLO27:
Get Started

Roboflow 100 Veri Kümesi#

Intel sponsorluğundaki Roboflow 100, çığır açan bir nesne algılama kıyaslama veri kümesidir. 100 farklı veri kümesi içerir. Bu kıyaslama, Ultralytics YOLO modelleri gibi bilgisayarlı görü modellerinin sağlık hizmetleri, havadan görüntüler ve video oyunları dâhil olmak üzere çeşitli alanlara uyum sağlama becerisini sınamak için özel olarak tasarlanmıştır.

Roboflow 100 diverse object detection benchmark

Temel Özellikler#

  • Çeşitli Alanlar: Havadan görüntüler, video oyunları, mikroskopi, su altı, belgeler, elektromanyetik ve gerçek dünya olmak üzere yedi farklı alana yayılmış 100 veri kümesi içerir.
  • Ölçek: Kıyaslama, 805 sınıfta 224.714 görüntü içerir ve veri etiketleme için 11.170 saati aşkın emek gerektirir.
  • Standartlaştırma: Tutarlı değerlendirme için tüm görüntüler ön işleme tabi tutulur ve 640x640 piksele yeniden boyutlandırılır.
  • Temiz Değerlendirme: Daha temiz bir model değerlendirmesi sağlamak için sınıf belirsizliğini ortadan kaldırmaya odaklanır ve yeterince temsil edilmeyen sınıfları filtreler.
  • Açıklamalar: mAP gibi ölçütlerle nesne algılama modellerini eğitmeye ve değerlendirmeye uygun nesneler için sınırlayıcı kutular içerir.

Veri Kümesi Yapısı#

Roboflow 100 veri kümesi, her biri kendine özgü veri kümeleri, görüntüler ve sınıflar içeren yedi kategoriye ayrılmıştır:

  • Havadan Görüntüler: 7 veri kümesi, 9.683 görüntü, 24 sınıf.
  • Video Oyunları: 7 veri kümesi, 11.579 görüntü, 88 sınıf.
  • Mikroskopi: 11 veri kümesi, 13.378 görüntü, 28 sınıf.
  • Su Altı: 5 veri kümesi, 18.003 görüntü, 39 sınıf.
  • Belgeler: 8 veri kümesi, 24.813 görüntü, 90 sınıf.
  • Elektromanyetik: 12 veri kümesi, 36.381 görüntü, 41 sınıf.
  • Gerçek Dünya: 50 veri kümesi, 110.615 görüntü, 495 sınıf.

Bu yapı, çeşitli Ultralytics Çözümleri içinde karşılaşılan çok çeşitli gerçek dünya uygulama senaryolarını yansıtarak nesne algılama modelleri için zengin ve kapsamlı bir test ortamı sağlar.

Kıyaslama#

Veri kümesi kıyaslaması, standartlaştırılmış ölçütler kullanarak belirli veri kümeleri üzerindeki makine öğrenimi modellerinin performansını değerlendirmeyi içerir. Yaygın ölçütler arasında doğruluk, ortalama Hassasiyet (mAP) ve F1 puanı bulunur. Bunlar hakkında daha fazla bilgiyi YOLO Performans Ölçütleri kılavuzumuzda bulabilirsin.

Kıyaslama Sonuçları

Her çıktı tek bir runs/<task>/multitrain/ dizini altında gruplandırılır: her veri kümesi kendi alt dizininde (kendine ait bir results.png ile) ince ayardan geçirilir ve veri kümesi başına ölçümler ile ortalama ölçümler, multitrain_results.png çubuk grafiğinin yanında multitrain_results.json dosyasına yazılır. model.train() çağrısı, programlı erişim için {dataset: metrics} sözlüğü de döndürür.

Kıyaslama Örneği

Aşağıdaki betik, Roboflow'dan datasets_links.txt içinde listelenen Roboflow 100 veri kümelerini indirir, ardından tek bir temel modeli (ör. YOLO26n) tüm koleksiyon üzerinde tek bir model.train() çağrısıyla ince ayardan geçirir. Veri kümelerinin listesini iletmek, temel modeli her veri kümesinde sırayla ince ayardan geçirir ve veri kümeleri arası sonuçları otomatik olarak görselleştirir.

import re
from pathlib import Path

from roboflow import Roboflow

from ultralytics import YOLO
from ultralytics.utils import ASSETS_URL, LOGGER, YAML
from ultralytics.utils.downloads import safe_download

# Download the RF100 datasets (requires a Roboflow API key)
rf = Roboflow(api_key="YOUR_ROBOFLOW_API_KEY")
safe_download(f"{ASSETS_URL}/datasets_links.txt")  # list of RF100 dataset links

datasets = []
for line in Path("datasets_links.txt").read_text().splitlines():
    try:
        _, _url, workspace, project, version = re.split("/+", line.strip())
        location = f"rf-100/{project}-{version}"
        rf.workspace(workspace).project(project).version(version).download("yolov8", location=location)
        yaml = Path(location) / "data.yaml"
        cfg = YAML.load(yaml)  # point train/val at the downloaded image folders
        cfg["train"], cfg["val"] = "train/images", "valid/images"
        YAML.save(yaml, cfg)
        datasets.append(str(yaml))
    except Exception as e:
        LOGGER.warning(f"Failed to prepare dataset from {line!r}: {e}")

# Fine-tune one base model across all RF100 datasets and visualize the cross-dataset results
model = YOLO("yolo26n.pt")
results = model.train(data=datasets, epochs=100, imgsz=640)  # {dataset: metrics}

# Per-dataset runs, multitrain_results.json (per-dataset + mean), and multitrain_results.png are saved
# together under runs/detect/multitrain. Read results in-memory or from the JSON for custom post-processing.
for dataset, metrics in results.items():
    if metrics:  # None if that dataset failed to train
        print(f"{dataset}: mAP50-95 = {metrics['metrics/mAP50-95(B)']:.4f}")

Uygulamalar#

Roboflow 100, bilgisayarlı görü ve derin öğrenme ile ilgili çeşitli uygulamalar için paha biçilmezdir. Araştırmacılar ve mühendisler bu kıyaslamadan şu amaçlarla yararlanabilir:

  • Nesne algılama modellerinin performansını çok alanlı bir bağlamda değerlendirmek.
  • Modellerin COCO veya PASCAL VOC gibi yaygın kıyaslama veri kümelerinin ötesindeki gerçek dünya senaryolarına uyarlanabilirliğini ve sağlamlığını sınamak.
  • Sağlık hizmetleri, havadan görüntüler ve video oyunları gibi özel alanlar dâhil olmak üzere farklı veri kümelerinde nesne algılama modellerinin yeteneklerini kıyaslamak.
  • Model performansını farklı sinir ağı mimarileri ve optimizasyon teknikleri arasında karşılaştırmak.
  • Uzmanlaşmış model eğitimi ipuçları veya aktararak öğrenme gibi ince ayar yaklaşımları gerektirebilecek alana özgü zorlukları belirlemek.

Gerçek dünya uygulamalarına yönelik daha fazla fikir ve ilham için uygulamalı projeler hakkındaki kılavuzlarımızı inceleyebilir veya kolaylaştırılmış model eğitimi ve dağıtım için Ultralytics Platform'u ziyaret edebilirsin.

Kullanım#

Roboflow 100 veri kümesi; meta veriler ve indirme bağlantılarıyla birlikte resmî Roboflow 100 GitHub deposunda bulunur. Kıyaslama ihtiyaçların için veri kümesine doğrudan buradan erişip kullanabilirsin. Veri kümeleri yukarıda gösterildiği gibi indirilip hazırlandıktan sonra, veri kümesi YAML dosyalarının listesini ileterek Ultralytics modellerini tüm koleksiyonda tek bir model.train() çağrısıyla ince ayardan geçirebilirsin.

Örnek Veriler ve Açıklamalar#

Roboflow 100, çeşitli açılardan ve alanlardan çekilmiş farklı görüntüler içeren veri kümelerinden oluşur. Aşağıda, nesne ve sahne çeşitliliğini gösteren RF100 kıyaslamasına dâhil açıklamalı görüntülerden örnekler yer alıyor. Veri artırma gibi teknikler, eğitim sırasında çeşitliliği daha da artırabilir.

Roboflow 100 sample images with annotations

Roboflow 100 kıyaslamasında görülen çeşitlilik, genellikle sınırlı bir alanda tek bir ölçütü optimize etmeye odaklanan geleneksel kıyaslamalara kıyasla önemli bir ilerlemeyi temsil eder. Bu kapsamlı yaklaşım, çok sayıda farklı senaryoda iyi performans gösterebilen daha sağlam ve çok yönlü bilgisayarlı görü modellerinin geliştirilmesine yardımcı olur.

Atıflar ve Teşekkürler#

Roboflow 100 veri kümesini araştırma veya geliştirme çalışmalarında kullanıyorsan lütfen özgün makaleye atıfta bulun:

Alıntı
@misc{rf100benchmark,
    Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
    Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
    Year = {2022},
    Eprint = {arXiv:2211.13523},
    url = {https://arxiv.org/abs/2211.13523}
}

Bilgisayarlı görü topluluğu için değerli bir kaynak olan Roboflow 100 veri kümesini oluşturma ve sürdürme konusundaki önemli çabaları için Roboflow ekibine ve tüm katkıda bulunanlara teşekkür ederiz.

Nesne algılama ve makine öğrenimi projelerini geliştirmek için daha fazla veri kümesi keşfetmek istersen, çeşitli başka algılama veri kümelerini içeren kapsamlı veri kümesi koleksiyonumuzu ziyaret edebilirsin.

Sık Sorulan Sorular#

  • Roboflow 100 veri kümesi, nesne algılama modelleri için bir kıyaslama veri kümesidir. Sağlık hizmetleri, havadan görüntüler ve video oyunları gibi alanları kapsayan 100 farklı veri kümesinden oluşur. Önemi, geleneksel ve çoğunlukla alanla sınırlı kıyaslamaların ötesine geçerek modelin uyarlanabilirliğini ve sağlamlığını çok çeşitli gerçek dünya senaryolarında sınamak için standartlaştırılmış bir yöntem sunmasından kaynaklanır.

  • Roboflow 100 veri kümesi, nesne algılama modelleri için farklı zorluklar sunan yedi çeşitli alanı kapsar:

    1. Havadan Görüntüler: 7 veri kümesi (ör. uydu görüntüleri, drone görüntüleri).
    2. Video Oyunları: 7 veri kümesi (ör. çeşitli oyun ortamlarından nesneler).
    3. Mikroskopi: 11 veri kümesi (ör. hücreler, parçacıklar).
    4. Su Altı: 5 veri kümesi (ör. deniz canlıları, su altındaki nesneler).
    5. Belgeler: 8 veri kümesi (ör. metin bölgeleri, form öğeleri).
    6. Elektromanyetik: 12 veri kümesi (ör. radar izleri, spektral veri görselleştirmeleri).
    7. Gerçek Dünya: 50 veri kümesi (gündelik nesneler, sahneler, perakende vb. içeren geniş bir kategori).

    Bu çeşitlilik, RF100'ü bilgisayarlı görü modellerinin genellenebilirliğini değerlendirmek için mükemmel bir kaynak hâline getirir.

  • Roboflow 100 veri kümesini kullanırken, oluşturuculara haklarını vermek için lütfen özgün makaleye atıfta bulun. Önerilen BibTeX atfı şöyledir:

    Alıntı
    @misc{rf100benchmark,
        Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
        Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
        Year = {2022},
        Eprint = {arXiv:2211.13523},
        url = {https://arxiv.org/abs/2211.13523}
    }

    Daha fazla keşif için kapsamlı veri kümesi koleksiyonumuzu ziyaret edebilir veya Ultralytics modelleriyle uyumlu diğer algılama veri kümelerine göz atabilirsin.

Yorumlar