Link to this sectionÖ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.
Link to this sectionDesteklenen Veri Kümesi Formatları#
Link to this sectionUltralytics YOLO formatı#
YOLO bölütleme modellerini eğitmek için kullanılan veri kümesi etiket formatı şu şekildedir:
- 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.
- Nesne başına bir satır: Metin dosyasındaki her satır, görseldeki bir nesne örneğine karşılık gelir.
- 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 formatta, <class-index> nesnenin sınıf dizinidir ve <x1> <y1> <x2> <y2> ... <xn> <yn> nesnenin bölütleme maskesinin normalleştirilmiş çokgen koordinatlarıdır (değerler, görüntü genişliği ve yüksekliğine göre [0, 1] aralığındadır). Koordinatlar boşluklarla ayrılı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- Her bir satırın uzunluğunun eşit olması gerek değildir.
- Her bölütleme etiketi en az 3
(x, y)noktasına sahip olmalıdır:<class-index> <x1> <y1> <x2> <y2> <x3> <y3>
Link to this sectionVeri 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 🚀 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.ziptrain ve val alanları, sırasıyla eğitim ve doğrulama görsellerini içeren dizinlerin yollarını belirtir.
names, sınıf adlarından oluşan bir sözlüktür. Adların sırası, YOLO veri kümesi dosyalarındaki nesne sınıfı indekslerinin sırasıyla eşleşmelidir.
Link to this sectionKullanım#
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)Link to this sectionDesteklenen 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, otomobil parçalarının bölütlenmesine odaklanmış özel bir veri kümesidir. Ayrı ayrı otomobil bileşenlerinin ayrıntılı açıklamalarını içeren çeşitli araçlar barındırır.
- COCO: Çok çeşitli kategorilerde 200 binden fazla etiketli görüntü içeren, nesne tespiti, 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ış,
ultralyticsdeposundaki CI kontrolleri ve iş akışı doğrulaması için ideal olan, 8 görüntülük kompakt bir COCO alt kümesidir. - COCO128-seg: Bölütleme açıklamalarına sahip 128 adet COCO görüntüsünden oluşan bir alt kümeyi 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 özel olarak hazırlanmış bir veri kümesidir. Altyapı bakımı ve kalite kontrolü için önemlidir ve modellerin yapısal zayıflıkları tanımlaması için eğitilmesini sağlayan ayrıntılı görüntüler sunar.
- Package-seg: Farklı ambalaj malzemesi türlerinin ve şekillerinin bölütlenmesine adanmış bir veri kümesidir. Özellikle lojistik ve depo otomasyonu için yararlıdır, paket elleçleme ve sınıflandırma sistemlerinin geliştirilmesine yardımcı olur.
Link to this sectionKendi veri kümeni ekleme#
Kendi veri kümen varsa ve onu Ultralytics YOLO formatıyla bölütleme modellerini eğitmek için kullanmak istiyorsan, "Ultralytics YOLO formatı" altında belirtilen formata uygun olduğundan emin ol. Açıklamalarını gerekli formata dönüştür ve YAML yapılandırma dosyasında yolları, sınıf sayısını ve sınıf adlarını belirt. images/ ve labels/ klasörlerini aynı seviyede ayrı klasörler olarak tut ve eşleşen alt klasör yapısını kullan; etiket .txt dosyalarını görüntü klasörüne yerleştirmek, modelin etiketleri kaçırmasına neden olabilir.
Link to this sectionEtiket Formatlarını Bağlama veya Dönüştürme#
Link to this sectionCOCO 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:
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.
Link to this sectionOtomatik Etiketleme#
Otomatik etiketleme, önceden eğitilmiş bir tespit modeli kullanarak bir bölütleme veri kümesi oluşturmanı sağlayan temel bir özelliktir. Manuel etiketlemeye gerek kalmadan çok sayıda görüntüyü hızlı ve doğru bir şekilde etiketlemeni sağlayarak zamandan ve emekten tasarruf ettirir.
Link to this sectionBir Tespit Modeli Kullanarak Bölütleme Veri Kümesi Oluşturma#
Ultralytics çerçevesini kullanarak veri kümeni otomatik etiketlemek için aşağıda gösterildiği gibi auto_annotate fonksiyonunu kullanabilirsin:
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam_b.pt")| Argüman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
data | str | gerekli | Açıklama veya segmentasyon için hedef görüntüleri içeren dizinin yolu. |
det_model | str | 'yolo26x.pt' | İlk nesne tespiti için YOLO tespit modeli yolu. |
sam_model | str | 'sam_b.pt' | Segmentasyon için SAM model yolu (SAM, SAM 2, MobileSAM ve SAM 3 ağırlıklarını destekler). |
device | str | '' | Hesaplama cihazı (örneğin, 'cuda:0', 'cpu' veya otomatik cihaz tespiti için boş bırak). |
conf | float | 0.25 | Zayıf algılamaları filtrelemek için YOLO algılama güven eşiği. |
iou | float | 0.45 | Çakışan kutuları filtrelemek için Non-Maximum Suppression (NMS) IoU eşiği. |
imgsz | int | 640 | Görüntüleri yeniden boyutlandırmak için giriş boyutu (32'nin katı olmalıdır). |
max_det | int | 300 | Bellek verimliliği için görüntü başına maksimum algılama sayısı. |
classes | list[int] | None | Algılanacak sınıf indekslerinin listesi (örneğin kişi ve bisiklet için [0, 1]). |
output_dir | str | None | Etiketler için kaydetme dizini (varsayılan: <data>_auto_annotate_labels kardeş dizini). |
auto_annotate fonksiyonu; önceden eğitilmiş tespit modellerini (örneğin YOLO26, YOLO11 veya diğer modeller) ve bölütleme modellerini (örneğin SAM, SAM 2, MobileSAM veya SAM 3), modellerin çalıştırılacağı cihazı ve etiketlenmiş sonuçları kaydetmek için çıktı dizinini belirten isteğe bağlı argümanlarla birlikte görüntülerin yolunu 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.
Link to this sectionVeri 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.
Link to this sectionBö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.
Link to this sectionSSS#
Link to this sectionUltralytics YOLO örnek bölütleme için hangi veri kümesi formatlarını destekler?#
Ultralytics YOLO, örnek bölütleme için kendi Ultralytics YOLO formatı başta olmak üzere birkaç veri kümesi formatını destekler. Veri kümenizdeki her görüntünün, sınıf dizinini ve normalleştirilmiş sınırlayıcı koordinatları listeleyen (nesne başına bir satır) birden fazla satıra bölümlenmiş nesne bilgileri içeren karşılık gelen bir metin dosyasına ihtiyacı vardır. YOLO veri kümesi formatı hakkında daha ayrıntılı talimatlar için Örnek Bölütleme Veri Kümelerine Genel Bakış bölümünü ziyaret edin.
Link to this sectionCOCO veri kümesi açıklamalarını YOLO formatına nasıl dönüştürebilirim?#
Converting COCO format annotations to YOLO format is straightforward using Ultralytics tools. You can use the convert_coco function from the ultralytics.data.converter module:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True)Bu betik, COCO veri kümesi açıklamalarını gerekli YOLO formatına dönüştürerek YOLO modellerini eğitmek için uygun hale getirir. Daha fazla ayrıntı için Etiket Formatlarını Taşıma veya Dönüştürme bölümüne bakabilirsin.
Link to this sectionUltralytics 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.zipYolları ve sınıf adlarını veri kümene göre güncellediğinden emin ol. Daha fazla bilgi için Veri Kümesi YAML Formatı bölümünü kontrol et.
Link to this sectionUltralytics YOLO'daki otomatik etiketleme özelliği nedir?#
Ultralytics YOLO'daki otomatik etiketleme, önceden eğitilmiş bir tespit modeli kullanarak veri kümen için bölütleme açıklamaları oluşturmanı sağlar. 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 ek açıklama sürecini otomatikleştirerek daha hızlı ve verimli hale getirir. Daha fazla detay için Auto-Annotate Referansını inceleyebilirsin.