Ultralytics YOLO27:
Get Started

Ultralytics YOLO ile Örnek Bölütleme#

Ultralytics YOLO instance segmentation examples

Örnek bölütleme, nesne tespitinin bir adım ötesine geçer; görüntüdeki tek tek nesneleri tanımlamayı ve görüntünün geri kalanından ayırmayı içerir.

Örnek bölütleme modelinin çıktısı, görüntüdeki her nesnenin sınırlarını belirleyen maskeler veya konturların yanı sıra her nesneye ait sınıf etiketleri ve güven puanlarından oluşur. Örnek bölütleme, görüntüde nesnelerin yalnızca nerede olduğunu değil, tam şekillerinin ne olduğunu da bilmen gerektiğinde kullanışlıdır.



İzle: Python'da Önceden Eğitilmiş Ultralytics YOLO Modeliyle Segmentasyon Çalıştırma.
İpucu

YOLO26 Segment modelleri -seg son ekini kullanır; örneğin yolo26n-seg.pt ve COCO üzerinde önceden eğitilmiştir.

Modeller#

COCO veri kümesinde önceden eğitilmiş YOLO26 Segment modelleri aşağıda gösterilmiştir.

Modeller ilk kullanımda en güncel Ultralytics sürümünden otomatik olarak indirilir.

Modelboyut
(piksel)
mAPkutu
50-95(e2e)
mAPmaske
50-95(e2e)
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametre
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.3
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.5
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.7
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0140.1
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8314.0
  • mAPval değerleri, COCO val2017 veri kümesinde tek model ve tek ölçek için verilmiştir.
    yolo segment val data=coco.yaml device=0 nms=False ile yeniden üret
  • Hız değerleri, COCO val görüntülerinde CPU üzerinde ONNX ve NVIDIA T4 GPU üzerinde TensorRT10 kullanılarak hesaplanan ortalamalardır.
    yolo segment val data=coco.yaml batch=1 device=0|cpu nms=False ile yeniden üret.
  • Parametre ve FLOP değerleri; Conv/BatchNorm katmanları birleştirildikten ve kullanılmayan tespit dalı kaldırıldıktan sonraki füzyonlu modeller içindir. Önceden eğitilmiş kontrol noktaları, eğitim mimarisinin tamamını korur ve daha yüksek sayılar gösterebilir.

Bu kontrol noktaları, 80 COCO sınıfını bölütler. Yeniden eğitim yapmadan bu listedekilerin dışındaki kategorileri bölütlemek için sınıfları metin istemi, görsel örnek veya yerleşik sözlük olarak alan YOLOE sayfasına bak.

Ön COCO kutu ve maske sonuçları için yayınlanmamış YOLO27 önizlemesine bak.

Eğit#

YOLO26n-seg modelini, 640 görüntü boyutunda 100 epoch boyunca COCO8-seg veri kümesinde eğit. Kullanılabilir bağımsız değişkenlerin tam listesi için Yapılandırma sayfasına bak.

Örnek
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-seg.yaml")  # YAML'den yeni bir model oluştur
model = YOLO("yolo26n-seg.pt")  # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
model = YOLO("yolo26n-seg.yaml").load("yolo26n-seg.pt")  # YAML'den oluştur ve ağırlıkları aktar

# Modeli eğit
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)

train modunun tüm ayrıntıları için Eğitim sayfasına bak. Bölütleme modellerini Ultralytics Platform bulut eğitimi ile de eğitebilirsin.

Veri kümesi biçimi#

YOLO bölütleme veri kümesi biçiminin ayrıntılarını Veri Kümesi Kılavuzu sayfasında bulabilirsin. Mevcut bir COCO JSON veri kümesini YOLO biçimine dönüştürmek için COCO'dan YOLO'ya kılavuzunda açıklandığı gibi yerleşik convert_coco işlevini use_segments=True ile kullan. Çokgen araçlarını ve SAM destekli akıllı açıklamaları kullanarak Ultralytics Platform açıklama araçlarıyla bölütleme maskeleri de oluşturabilirsin.

Doğrula#

Eğitilmiş YOLO26n-seg modelinin doğruluğunu doğrula. model, eğitim data değerini ve bağımsız değişkenleri model öznitelikleri olarak sakladığından bağımsız değişken belirtmen gerekmez: Eğitim örneğindeki path/to/best.pt, COCO8-seg üzerinde doğrulama yapar. Resmî ağırlıklar, makinenizde bulunmayan bir eğitim veri kümesi yolu kaydeder; bu nedenle bir uyarıyla birlikte varsayılan görev coco8-seg.yaml değerine geri döner. Başka bir veri kümesinde doğrulama yapmak için data değerini geçir.

Örnek
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-seg.pt")  # Resmî bir modeli yükle
model = YOLO("path/to/best.pt")  # özel bir model yükle

# Modeli doğrula
metrics = model.val()  # Bağımsız değişken gerekmez; veri kümesi ve ayarlar hatırlanır
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # her kategori için mAP50-95(B) içeren bir liste
metrics.box.image_metrics  # det için precision, recall, F1, TP, FP ve FN değerlerini içeren görüntü başına metrik sözlüğü
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # her kategori için mAP50-95(M) içeren bir liste
metrics.seg.image_metrics  # seg için precision, recall, F1, TP, FP ve FN değerlerini içeren görüntü başına metrik sözlüğü

Tahmin#

Görüntülerde tahmin yapmak için eğitilmiş bir YOLO26n-seg modeli kullan.

Örnek
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-seg.pt")  # Resmî bir modeli yükle
model = YOLO("path/to/best.pt")  # özel bir model yükle

# Modelle tahmin yap
results = model("https://ultralytics.com/images/bus.jpg")  # bir görüntü üzerinde tahmin yap

# Sonuçlara eriş
for result in results:
    xy = result.masks.xy  # piksel koordinatlarındaki maske çokgenleri
    xyn = result.masks.xyn  # normalize edilmiş maske çokgenleri
    masks = result.masks.data  # ikili maskeler, şekil (N,H,W), dtype torch.uint8

predict kipinin tüm ayrıntıları için Tahmin sayfasına bak.

Sonuç Çıktısı#

YOLO örnek bölütleme, her görüntü için bir Results nesnesi döndürür. Her sonuç, nesne düzeyindeki tahminleri depolar; burada tespit edilen her örneğin kendine ait bir ikili maskesi, sınıfı, güven puanı ve kutusu vardır.

ÖznitelikTürŞekilAçıklama
result.masksMasks(N)Örnek maskeleri.
result.masks.datatorch.uint8(N,H,W)Değerleri 0 veya 1 olan ikili maskeler.
result.masks.xynp.float32list[(P,2)]Piksel poligonları.
result.masks.xynnp.float32list[(P,2)]Normalize edilmiş poligonlar.
result.boxesBoxes(N)Örnek kutuları/sınıfları/güven değerleri.
result.boxes.clstorch.float32(N,)Sınıf kimlikleri; adları almak için int türüne dönüştür.

Tüm görevlerde göreve özgü Results alanları için Göreve Göre Tahmin Sonuçları bölümüne bak.

Örnek Bölütleme ve Anlamsal Bölütleme#

Örnek bölütleme, nesne düzeyinde bölütlemedir: iki araba, iki maske, iki kutu ve iki güven puanı üretir. Anlamsal bölütleme, piksel düzeyinde sınıflandırmadır: aynı arabalar, nesne başına kutu, güven puanı veya varsayılan çokgen listesi olmadan, tek bir görüntü boyutundaki sınıf haritasında aynı sınıf kimliğine sahip piksellere dönüşür. Anlamsal bölütleme sayfasındaki alan alan karşılaştırmaya bak.

Dışa aktar#

YOLO26n-seg modelini ONNX, CoreML vb. farklı bir biçime aktar.

Örnek
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-seg.pt")  # Resmî bir modeli yükle
model = YOLO("path/to/best.pt")  # özel bir model yükle

# Modeli dışa aktar
model.export(format="onnx")

Kullanılabilir YOLO26-seg dışa aktarma biçimleri aşağıdaki tabloda verilmiştir. format bağımsız değişkenini, örneğin format='onnx' veya format='engine' değerini kullanarak istediğin biçime aktarabilirsin. Dışa aktarılan modellerde doğrudan tahmin veya doğrulama yapabilirsin; örneğin yolo predict model=yolo26n-seg.onnx. Dışa aktarma tamamlandıktan sonra modeline ait kullanım örnekleri gösterilir.

Not

CoreML; algılama, örnek bölütleme ve poz için sabit şekillerle gömülü NMS'yi (nms=True) destekler. Varsayılan bölütleme dışa aktarımları (nms=None), NMS'yi tüketiciye bırakır.

Biçimformat bağımsız değişkeniModelÜst verilerBağımsız değişkenler
PyTorch-yolo26n-seg.pt✅-
TorchScripttorchscriptyolo26n-seg.torchscript✅imgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n-seg.onnx✅imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-seg_openvino_model/✅imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-seg.engine✅imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-seg.mlpackage✅imgsz, dynamic, quantize, nms, batch, device
Apple Core AIcoreaiyolo26n-seg.aimodel✅imgsz, batch, quantize
TF SavedModelsaved_modelyolo26n-seg_saved_model/✅imgsz, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-seg.pb❌imgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n-seg_edgetpu.tflite✅imgsz, quantize, opset, data, fraction, device
LiteRTlitertyolo26n-seg.tflite✅imgsz, quantize, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-seg_paddle_model/✅imgsz, batch, device
MNNmnnyolo26n-seg.mnn✅imgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n-seg_ncnn_model/✅imgsz, quantize, batch, device
IMX500imxyolo26n-seg_imx_model/✅imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-seg_rknn_model/✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n-seg_executorch_model/✅imgsz, batch, device
Axeleraaxelerayolo26n-seg_axelera_model/✅imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-seg_deepx_model/✅imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n-seg_qnn.onnx✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
Hailohailoyolo26n-seg_hailo_model/✅imgsz, name, quantize, data, fraction, simplify, conf, iou, device
Huawei Ascendascendyolo26n-seg_ascend_model/✅imgsz, batch, name, quantize, opset, simplify, nms, device
AMD Xilinxxilinxyolo26n-seg_xilinx_model/✅imgsz, name, quantize, data, fraction, opset, simplify, device

nms=None, harici NMS için varsayılan olarak ham çıktılar üretir. Kullanılabilir bir NMS içermeyen başlık seçmek için nms=False değerini ayarla; desteklenmeyen biçimler yerel çıktı yoluna döner. Yukarıdaki nms girdileri, nms=True ile NMS içerebilen biçimleri tanımlar.

Ayrıntılı export bilgileri için Dışa Aktarma sayfasına bak.

Sık Sorulan Sorular#

  • Özel bir veri kümesinde YOLO26 bölütleme modelini eğitmek için önce veri kümeni YOLO bölütleme biçiminde hazırlaman gerekir. COCO JSON veri kümelerini dönüştürmek için yerleşik convert_coco yardımcı programını kullanabilirsin. Veri kümen hazır olduğunda modeli Python veya CLI komutlarıyla eğitebilirsin:

    Örnek
    from ultralytics import YOLO
    
    # Önceden eğitilmiş bir YOLO segment modelini yükle
    model = YOLO("yolo26n-seg.pt")
    
    # Modeli eğit
    results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

    Kullanılabilir diğer bağımsız değişkenler için Yapılandırma sayfasına bak.

  • Nesne tespiti, nesnelerin çevresine sınırlayıcı kutular çizerek görüntüdeki nesneleri tanımlar ve konumlarını belirler. Örnek bölütleme ise nesneleri tanımlamanın yanı sıra her nesnenin tam şeklini de belirler. YOLO26 örnek bölütleme modelleri, tespit edilen her nesnenin sınırlarını belirleyen maskeler veya konturlar sağlar. Bu özellik, tıbbi görüntüleme veya otonom sürüş gibi nesnelerin kesin şeklini bilmenin önemli olduğu görevlerde özellikle kullanışlıdır.

  • Ultralytics YOLO26, yüksek doğruluğu ve gerçek zamanlı performansıyla tanınan son teknoloji bir modeldir ve bu özellikleriyle örnek bölütleme görevleri için idealdir. YOLO26 Segment modelleri COCO veri kümesinde önceden eğitilmiş olarak gelir ve böylece çeşitli nesnelerde güçlü performans sunar. Ayrıca YOLO; sorunsuz entegrasyonla eğitim, doğrulama, tahmin ve dışa aktarma işlevlerini destekleyerek araştırma ve endüstri uygulamalarında yüksek esneklik sağlar.

  • Önceden eğitilmiş bir YOLO bölütleme modelini yüklemek ve doğrulamak kolaydır. Python ve CLI kullanarak bunu şu şekilde yapabilirsin:

    Örnek
    from ultralytics import YOLO
    
    # Önceden eğitilmiş bir modeli yükle
    model = YOLO("yolo26n-seg.pt")
    
    # Modeli doğrula
    metrics = model.val()
    print("Mean Average Precision for boxes:", metrics.box.map)
    print("Mean Average Precision for masks:", metrics.seg.map)

    Bu adımlar, model performansını değerlendirmek için kritik öneme sahip Ortalama Hassasiyet (mAP) gibi doğrulama metriklerini sağlar.

  • Bir YOLO bölütleme modelini ONNX biçimine aktarmak kolaydır ve Python veya CLI komutlarıyla yapılabilir:

    Örnek
    from ultralytics import YOLO
    
    # Önceden eğitilmiş bir modeli yükle
    model = YOLO("yolo26n-seg.pt")
    
    # Modeli ONNX biçimine aktar
    model.export(format="onnx")

    Çeşitli biçimlere dışa aktarma hakkında daha fazla bilgi için Dışa Aktarma sayfasına bak.

Yorumlar