Ö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:
- 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.
- Nesne başına bir satır: Metin dosyasındaki her satır görüntüdeki bir nesne örneğine karşılık gelir.
- 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:
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.
Aşağıda, 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 yer almaktadır:
# 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
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 setinizi 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
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
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üne bakın.
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.