İçeriğe geç

Örnek Segmentasyon Veri Kümelerine Genel Bakış

Desteklenen Veri Kümesi Formatları

Ultralytics YOLO Biçim

YOLO segmentasyon modellerinin eğitimi için kullanılan veri seti etiket formatı aşağıdaki gibidir:

  1. Görüntü başına bir metin dosyası: Veri kümesindeki her görüntünün, görüntü dosyasıyla aynı ada ve ".txt" uzantısına sahip karşılık gelen bir metin dosyası vardır.
  2. Nesne başına bir satır: Metin dosyasındaki her satır görüntüdeki bir nesne örneğine karşılık gelir.
  3. Satır başına nesne bilgisi: Her satır, nesne örneği hakkında aşağıdaki bilgileri içerir:
    • Nesne sınıfı indeksi: Nesnenin sınıfını temsil eden bir tamsayı (örneğin, kişi için 0, araba için 1, vb.).
    • Nesne sınırlayıcı koordinatları: Maske alanının etrafındaki sınırlayıcı koordinatlar, 0 ile 1 arasında olacak şekilde normalleştirilir.

Segmentasyon veri kümesi dosyasındaki tek bir satırın formatı aşağıdaki gibidir:

<class-index> <x1> <y1> <x2> <y2> ... <xn> <yn>

Bu formatta, <class-index> nesne için sınıfın indeksidir ve <x1> <y1> <x2> <y2> ... <xn> <yn> nesnenin segmentasyon maskesinin sınırlayıcı koordinatlarıdır. Koordinatlar boşluklarla ayrılmıştır.

Burada, 3 noktalı segment ve 5 noktalı segmentten oluşan iki nesne içeren tek bir görüntü için YOLO veri kümesi formatının bir örneği yer almaktadır.

0 0.681 0.485 0.670 0.487 0.676 0.487
1 0.504 0.000 0.501 0.004 0.498 0.004 0.493 0.010 0.492 0.0104

İpucu

  • Her satırın uzunluğu eşit olmak zorunda değildir.
  • Her segmentasyon etiketinin bir en az 3 xy noktası: <class-index> <x1> <y1> <x2> <y2> <x3> <y3>

Veri kümesi YAML biçimi

Ultralytics çerçevesi, Tespit Modellerinin eğitimi için veri kümesini ve model yapılandırmasını tanımlamak üzere bir YAML dosya biçimi kullanır. Burada bir algılama veri kümesini tanımlamak için kullanılan YAML formatının bir örneği verilmiştir:

# 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/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Classes (80 COCO classes)
names:
    0: person
    1: bicycle
    2: car
    # ...
    77: teddy bear
    78: hair drier
    79: toothbrush

Bu train ve val alanları sırasıyla eğitim ve doğrulama görüntülerini içeren dizinlerin yollarını belirtir.

names sınıf adlarından oluşan bir sözlüktür. İsimlerin sırası, YOLO veri kümesi dosyalarındaki nesne sınıfı indekslerinin sırası ile eşleşmelidir.

Kullanım

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.pt epochs=100 imgsz=640

Desteklenen Veri Setleri

Desteklenen Veri Setleri

  • COCO: Çok çeşitli kategorilerde 200 binden fazla etiketli görüntü içeren nesne algılama, segmentasyon ve başlıklandırma için kapsamlı bir veri kümesi.
  • COCO8-seg: COCO'nun segmentasyon modeli eğitiminin hızlı bir şekilde test edilmesi için tasarlanmış kompakt, 8 görüntülük bir alt kümesi, CI kontrolleri ve iş akışı doğrulaması için ideal ultralytics Depo.
  • COCO128-seg: Örnek segmentasyon görevleri için, segmentasyon ek açıklamalarına sahip 128 COCO görüntüsünün bir alt kümesini içeren daha küçük bir veri kümesi.
  • Carparts-seg: Otomotiv uygulamaları için ideal olan, araba parçalarının segmentasyonuna odaklanan özel bir veri kümesi. Bireysel araba bileşenlerinin ayrıntılı açıklamalarını içeren çeşitli araçlar içerir.
  • Crack-seg: Çeşitli yüzeylerdeki çatlakların segmentasyonu için özel olarak tasarlanmış bir veri kümesi. Altyapı bakımı ve kalite kontrolü için gerekli olan bu veri seti, yapısal zayıflıkları belirlemeye yönelik eğitim modelleri için ayrıntılı görüntüler sağlar.
  • Package-seg: Farklı ambalaj malzemelerinin ve şekillerinin segmentasyonuna adanmış bir veri kümesi. Özellikle lojistik ve depo otomasyonu için kullanışlıdır ve paket taşıma ve ayırma sistemlerinin geliştirilmesine yardımcı olur.

Kendi veri kümenizi ekleme

Kendi veri kümeniz varsa ve bunu Ultralytics YOLO biçimiyle segmentasyon modellerini eğitmek için kullanmak istiyorsanız, yukarıda "Ultralytics YOLO biçimi" altında belirtilen biçime uygun olduğundan emin olun. Ek açıklamalarınızı gerekli biçime dönüştürün ve YAML yapılandırma dosyasında yolları, sınıf sayısını ve sınıf adlarını belirtin.

Etiket Formatlarını Taşıyın veya Dönüştürün

COCO Veri Seti Formatından YOLO Formatına

Aşağıdaki kod parçacığını kullanarak etiketleri popüler COCO veri kümesi biçiminden YOLO biçimine kolayca dönüştürebilirsiniz:

Örnek

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True)

Bu dönüştürme aracı COCO veri setini veya COCO formatındaki herhangi bir veri setini Ultralytics YOLO formatına dönüştürmek için kullanılabilir.

Kullanmak istediğiniz veri kümesinin modelinizle uyumlu olup olmadığını ve gerekli biçim kurallarına uyup uymadığını iki kez kontrol etmeyi unutmayın. Düzgün biçimlendirilmiş veri kümeleri, başarılı nesne algılama modellerinin eğitimi için çok önemlidir.

Otomatik Notlandırma

Otomatik açıklama, önceden eğitilmiş bir algılama modeli kullanarak bir segmentasyon veri kümesi oluşturmanıza olanak tanıyan önemli bir özelliktir. Manuel etiketlemeye gerek kalmadan çok sayıda görüntüye hızlı ve doğru bir şekilde açıklama eklemenizi sağlayarak zamandan ve emekten tasarruf etmenizi sağlar.

Algılama Modeli Kullanarak Segmentasyon Veri Kümesi Oluşturma

Veri kümenize Ultralytics çerçevesini kullanarak otomatik açıklama eklemek için auto_annotate fonksiyonu aşağıda gösterildiği gibi:

Örnek

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="sam_b.pt")
Tartışma Tip Açıklama Varsayılan
data str Açıklama eklenecek görüntüleri içeren bir klasörün yolu. None
det_model str, optional Önceden eğitilmiş YOLO algılama modeli. Varsayılan değer 'yolo11x.pt'. 'yolo11x.pt'
sam_model str, optional Önceden eğitilmiş SAM segmentasyon modeli. Varsayılan değer 'sam_b.pt'. 'sam_b.pt'
device str, optional Modellerin çalıştırılacağı cihaz. Varsayılan olarak boş bir dizedir (CPU veya GPU, varsa). ''
output_dir str or None, optional Açıklamalı sonuçların kaydedileceği dizin. Varsayılan olarak 'labels' klasörü ile aynı dizinde 'data'. None

Bu auto_annotate işlevi, resimlerinizin yolunu ve önceden eğitilmiş algılamayı belirtmek için isteğe bağlı bağımsız değişkenleri alır ve SAM segmentasyon modelleri, modellerin çalıştırılacağı cihaz ve açıklamalı sonuçların kaydedileceği çıktı dizini.

Otomatik açıklama, önceden eğitilmiş modellerin gücünden yararlanarak, yüksek kaliteli segmentasyon veri kümeleri oluşturmak için gereken zamanı ve çabayı önemli ölçüde azaltabilir. Bu özellik, büyük görüntü koleksiyonlarıyla çalışan araştırmacılar ve geliştiriciler için özellikle yararlıdır, çünkü manuel açıklama yerine model geliştirme ve değerlendirmeye odaklanmalarını sağlar.

SSS

Ultralytics YOLO örnek segmentasyonu için hangi veri kümesi formatlarını destekliyor?

Ultralytics YOLO örnek segmentasyonu için çeşitli veri kümesi formatlarını destekler, birincil format kendi Ultralytics YOLO formatıdır. Veri kümenizdeki her görüntü, sınıf indeksini ve normalleştirilmiş sınırlayıcı koordinatları listeleyen, birden fazla satıra (nesne başına bir satır) bölünmüş nesne bilgilerini içeren karşılık gelen bir metin dosyasına ihtiyaç duyar. YOLO veri kümesi formatı hakkında daha ayrıntılı talimatlar için Örnek Segmentasyon Veri Kümelerine Genel Bakış bölümünü ziyaret edin.

COCO veri seti ek açıklamalarını YOLO formatına nasıl dönüştürebilirim?

COCO formatındaki ek açıklamaları YOLO formatına dönüştürmek Ultralytics araçları kullanılarak kolayca yapılabilir. Kullanabileceğiniz convert_coco fonksiyonundan ultralytics.data.converter Modül:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True)

Bu kod, COCO veri kümesi ek açıklamalarınızı gerekli YOLO biçimine dönüştürerek YOLO modellerinizin eğitimi için uygun hale getirir. Daha fazla ayrıntı için Etiket Biçimlerini Bağlama veya Dönüştürme bölümüne bakın.

Ultralytics YOLO modellerini eğitmek için bir YAML dosyasını nasıl hazırlarım?

Ultralytics ile YOLO modellerini eğitmek üzere bir YAML dosyası hazırlamak için veri kümesi yollarını ve sınıf adlarını tanımlamanız gerekir. İşte örnek bir YAML yapılandırması:

path: ../datasets/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')

names:
    0: person
    1: bicycle
    2: car
    # ...

Yolları ve sınıf adlarını veri kümenize göre güncellediğinizden emin olun. Daha fazla bilgi için Veri Kümesi YAML Formatı bölümünü kontrol edin.

Ultralytics YOLO adresindeki otomatik açıklama özelliği nedir?

Ultralytics YOLO adresindeki otomatik ek açıklama, önceden eğitilmiş bir algılama modeli kullanarak veri kümeniz için segmentasyon ek açıklamaları oluşturmanıza olanak tanır. Bu, manuel etiketleme ihtiyacını önemli ölçüde azaltır. Kullanabileceğiniz auto_annotate aşağıdaki gibi işlev görür:

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="sam_b.pt")

Bu işlev ek açıklama sürecini otomatikleştirerek daha hızlı ve verimli hale getirir. Daha fazla ayrıntı için Otomatik Ek Açıklama bölümünü inceleyin.

📅1 yıl önce oluşturuldu ✏️ 2 ay önce güncellendi

Yorumlar