YOLO Vision 2026:

Örnek Bölütleme Veri Kümelerine Genel Bakış#

Örnek bölütleme, bir görüntüdeki nesneleri tek tek tanımlamayı ve sınırlarını belirlemeyi içeren bir bilgisayarlı görü görevidir. Bu kılavuz, Ultralytics YOLO tarafından örnek bölütleme görevleri için desteklenen veri kümesi formatlarına genel bir bakış sunar ve bu veri kümelerinin modellerini eğitmek için nasıl hazırlanacağı, dönüştürüleceği ve kullanılacağı konusunda talimatlar verir.

Desteklenen Veri Kümesi Formatları#

Ultralytics YOLO formatı#

YOLO bölütleme modellerini eğitmek için kullanılan veri kümesi etiket formatı şu şekildedir:

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

Bölütleme veri kümesi dosyasındaki tek bir satırın formatı şu şekildedir:

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

Bu biçimde, <class-index> nesnenin sınıf indeksidir ve <x1> <y1> <x2> <y2> ... <xn> <yn> nesnenin bölütleme maskesinin normalleştirilmiş çokgen koordinatlarıdır (değerler resim genişliği ve yüksekliğine göre [0, 1] içindedir). Koordinatlar boşluklarla ayrılmıştır.

İşte 3 noktalı bir bölüt ve 5 noktalı bir bölütten oluşan iki nesneye sahip tek bir görüntü için YOLO veri kümesi formatı örneği.

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 bir satırın uzunluğunun eşit olması gerek değildir.
  • Her bölütleme etiketinin en az 3 (x, y) noktası olmalıdır: <class-index> <x1> <y1> <x2> <y2> <x3> <y3>

Veri kümesi YAML formatı#

Ultralytics çerçevesi, Bölütleme Modellerini eğitmek için veri kümesini ve model yapılandırmasını tanımlamak amacıyla YAML dosya formatını kullanır. İşte bir bölütleme veri kümesini tanımlamak için kullanılan YAML formatına bir örnek:

ultralytics/cfg/datasets/coco8-seg.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-seg dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/segment/coco8-seg
# Example usage: yolo train data=coco8-seg.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-seg ← 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: 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
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-seg.zip

train, val ve test alanları eğitim, doğrulama ve test resimlerini gösterir. Her biri bir dizini, bir dizin listesini veya satır başına bir resim yolu listeleyen bir *.txt dosyasını kabul eder (./ ile başlayan yollar *.txt dosyasına göre çözümlenir). Bir *.txt dosyası, bir dizinin alt kümesi üzerinde eğitmek, etiketlenmemiş resimleri atlamak veya birden fazla kaynaktan gelen resimleri tek bir bölüme birleştirmek için yararlıdır.

`*.txt` dosyası olarak görüntü yolları
path: datasets/coco8-seg # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: person

names sınıf adlarının bir sözlüğüdür. Adların sırası, YOLO veri kümesi dosyalarındaki nesne sınıfı indekslerinin sırasıyla eşleşmelidir.

Kullanım#

Örnek
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)

Desteklenen Veri Kümeleri#

Ultralytics YOLO, örnek bölütleme görevleri için çeşitli veri kümelerini destekler. İşte en sık kullanılanların bir listesi:

  • Carparts-seg: Otomotiv uygulamaları için ideal olan, araba parçalarının bölütlenmesine odaklanmış özel bir veri kümesidir. Bireysel araba bileşenlerinin ayrıntılı açıklamalarını içeren çeşitli araçlar içerir.
  • COCO: Çok çeşitli kategorilerde 200 binden fazla etiketlenmiş resim içeren, nesne algılama, bölütleme ve altyazı oluşturma için kapsamlı bir veri kümesidir.
  • COCO8-seg, bölütleme modeli eğitiminin hızlı testi için tasarlanmış COCO'nun kompakt, 8 resimlik bir alt kümesidir; ultralytics deposundaki CI kontrolleri ve iş akışı doğrulaması için idealdir.
  • COCO128-seg: Bölütleme ek açıklamaları içeren 128 COCO resminin bir alt kümesini içeren, örnek bölütleme görevleri için daha küçük bir veri kümesidir.
  • Crack-seg: Çeşitli yüzeylerdeki çatlakların bölütlenmesi için uyarlanmış bir veri kümesidir. Altyapı bakımı ve kalite kontrolü için esastır; yapısal zayıflıkları belirlemek üzere modelleri eğitmek için ayrıntılı görüntüler sağlar.
  • Package-seg: Farklı ambalaj malzemesi ve şekil türlerinin bölütlenmesine adanmış bir veri kümesidir. Lojistik ve depo otomasyonu için özellikle yararlıdır; paket taşıma ve sıralama sistemlerinin geliştirilmesine yardımcı olur.

Kendi veri kümeni ekleme#

Kendi veri kümenize sahipseniz ve bunu Ultralytics YOLO biçimiyle bölütleme modellerini eğitmek için kullanmak istiyorsanız, bunun "Ultralytics YOLO format" altında yukarıda belirtilen biçimi izlediğinden 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. images/ ve labels/ klasörlerini aynı düzeyde, eşleşen alt klasör yapısıyla ayrı klasörler olarak tutun; etiket .txt dosyalarını resim klasörüne yerleştirmek, modelin etiketleri kaçırmasına neden olabilir.

Etiket Formatlarını Bağlama veya Dönüştürme#

COCO Veri Kümesi Formatından YOLO Formatına#

Popüler COCO veri kümesi formatındaki etiketleri aşağıdaki kod parçacığını kullanarak kolayca YOLO formatına dönüştürebilirsin:

Ö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 kümesini veya COCO formatındaki herhangi bir veri kümesini Ultralytics YOLO formatına dönüştürmek için kullanılabilir.

Kullanmak istediğin veri kümesinin modelinle uyumlu olup olmadığını ve gerekli format kurallarına uyup uymadığını tekrar kontrol etmeyi unutma. Doğru şekilde biçimlendirilmiş veri kümeleri, başarılı bölütleme modelleri eğitmek için çok önemlidir.

Otomatik Etiketleme#

Auto-annotation, önceden eğitilmiş bir algılama modeli kullanarak bir bölütleme veri kümesi oluşturmanıza olanak tanıyan temel bir özelliktir. Manuel etiketlemeye gerek kalmadan çok sayıda resmi hızlı ve doğru bir şekilde etiketlemenizi sağlayarak zaman ve emek tasarrufu sağlar.

Bir Tespit Modeli Kullanarak Bölütleme Veri Kümesi Oluşturma#

Ultralytics çerçevesini kullanarak veri kümenize otomatik etiket eklemek için aşağıda gösterildiği gibi auto_annotate fonksiyonunu kullanabilirsin:

Örnek
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam_b.pt")
ArgümanTipVarsayılanAçıklama
datastrgerekliAçıklama veya segmentasyon için hedef görüntüleri içeren dizinin yolu.
det_modelstr'yolo26x.pt'İlk nesne tespiti için YOLO tespit modeli yolu.
sam_modelstr'sam_b.pt'Segmentasyon için SAM model yolu (SAM, SAM 2, MobileSAM ve SAM 3 ağırlıklarını destekler).
devicestr''Hesaplama cihazı (örneğin, 'cuda:0', 'cpu' veya otomatik cihaz tespiti için boş bırak).
conffloat0.25Zayıf algılamaları filtrelemek için YOLO algılama güven eşiği.
ioufloat0.45Çakışan kutuları filtrelemek için Non-Maximum Suppression (NMS) IoU eşiği.
imgszint640Görüntüleri yeniden boyutlandırmak için giriş boyutu (32'nin katı olmalıdır).
max_detint300Bellek verimliliği için görüntü başına maksimum algılama sayısı.
classeslist[int]NoneAlgılanacak sınıf indekslerinin listesi (örn. insan ve bisiklet için [0, 1]).
output_dirstrNoneAçıklamalar için kaydetme dizini (varsayılan: <data>_auto_annotate_labels kardeşi).

auto_annotate fonksiyonu, resimlerinizin yolunu ve önceden eğitilmiş algılama modellerini (ör. YOLO26, YOLO11 veya diğer models) ve bölütleme modellerini (ör. SAM, SAM 2, MobileSAM veya SAM 3) belirtmek için isteğe bağlı argümanları, modellerin çalıştırılacağı cihazı ve etiketlenen sonuçların kaydedileceği çıktı dizinini alır.

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

Veri Seti Açıklamalarını Görselleştir#

Modelini eğitmeden önce, doğru olduklarından emin olmak için veri kümesi açıklamalarını görselleştirmek genellikle faydalıdır. Ultralytics bu amaç için bir yardımcı fonksiyon sağlar:

from ultralytics.data.utils import visualize_image_annotations

label_map = {  # Define the label map with all annotated class labels.
    0: "person",
    1: "car",
}

# Visualize
visualize_image_annotations(
    "path/to/image.jpg",  # Input image path.
    "path/to/annotations.txt",  # Annotation file path for the image.
    label_map,
)

Bu fonksiyon sınırlayıcı kutuları çizer, nesneleri sınıf adlarıyla etiketler ve metin rengini daha iyi okunabilirlik için ayarlar, böylece eğitim öncesinde herhangi bir etiketleme hatasını belirleyip düzeltmene yardımcı olur.

Bölütleme Maskelerini YOLO Formatına Dönüştürme#

İkili formatta bölütleme maskelerin varsa, bunları kullanarak YOLO bölütleme formatına dönüştürebilirsin:

from ultralytics.data.converter import convert_segment_masks_to_yolo_seg

# For datasets like COCO with 80 classes
convert_segment_masks_to_yolo_seg(masks_dir="path/to/masks_dir", output_dir="path/to/output_dir", classes=80)

Bu yardımcı program, ikili maske görüntülerini YOLO bölütleme formatına dönüştürür ve bunları belirtilen çıktı dizinine kaydeder.

SSS#

Ultralytics YOLO örnek bölütleme için hangi veri kümesi formatlarını destekler?#

Ultralytics YOLO, örnek bölütleme için çeşitli veri kümesi biçimlerini destekler; birincil biçim kendi Ultralytics YOLO format biçimidir. Veri kümenizdeki her resmin, nesne bilgilerinin birden çok satıra (nesne başına bir satır) bölütlendiği, sınıf indeksini ve normalleştirilmiş sınırlama koordinatlarını listeleyen karşılık gelen bir metin dosyasına ihtiyacı vardır. YOLO veri kümesi biçimi hakkında daha ayrıntılı talimatlar için Instance Segmentation Datasets Overview sayfasını ziyaret et.

COCO veri kümesi açıklamalarını YOLO formatına nasıl dönüştürebilirim?#

Ultralytics araçlarını kullanarak COCO formatındaki etiketleri YOLO formatına dönüştürmek oldukça basittir. ultralytics.data.converter modülünden convert_coco fonksiyonunu kullanabilirsin:

from ultralytics.data.converter import convert_coco

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

Bu komut dosyası, COCO veri kümesi ek açıklamalarınızı gerekli YOLO biçimine dönüştürerek YOLO modellerinizi eğitmek için uygun hale getirir. Daha fazla ayrıntı için Port or Convert Label Formats konusuna göz at.

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

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

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-seg dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/segment/coco8-seg
# Example usage: yolo train data=coco8-seg.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-seg ← 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: 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
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-seg.zip

Yolları ve sınıf adlarını veri kümenize göre güncellediğinden emin ol. Daha fazla bilgi için Dataset YAML Format bölümünü incele.

Ultralytics YOLO'daki otomatik etiketleme özelliği nedir?#

Ultralytics YOLO içinde otomatik etiketleme, önceden eğitilmiş bir algılama modeli kullanarak veri kümeniz için bölütleme ek açıklamaları oluşturmanıza olanak tanır. Bu, manuel etiketleme ihtiyacını önemli ölçüde azaltır. auto_annotate fonksiyonunu şu şekilde kullanabilirsin:

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam_b.pt")  # or sam_model="mobile_sam.pt"

Bu fonksiyon etiketleme sürecini otomatize ederek daha hızlı ve daha verimli hale getirir. Daha fazla ayrıntı için Auto-Annotate Reference bölümünü keşfet.

Yorumlar