Örnek Bölütleme

Instance segmentation examples

Örnek bölütleme, nesne algılamadan bir adım daha ileri giderek bir görüntüdeki bireysel nesnelerin tanımlanmasını ve bunların görüntünün geri kalanından ayrıştırılmasını içerir.

Bir örnek bölütleme modelinin çıktısı, her nesne için sınıf etiketleri ve güven puanlarının yanı sıra görüntüdeki her bir nesnenin ana hatlarını çizen bir dizi maske veya konturdur. Örnek bölütleme, sadece nesnelerin bir görüntüde nerede olduğunu değil, aynı zamanda tam şekillerinin ne olduğunu da bilmen gerektiğinde kullanışlıdır.



Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
İpucu

YOLO26 Segment modelleri -seg sonekini kullanır, örneğin yolo26n-seg.pt ve COCO üzerinde önceden eğitilmişlerdir.

Modeller

YOLO26 önceden eğitilmiş Segment modelleri burada gösterilmiştir. Detect, Segment ve Pose modelleri COCO veri kümesinde, Semantic modeller Cityscapes üzerinde, Classify modeller ise ImageNet veri kümesinde önceden eğitilmiştir.

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

Modelboyut
(piksel)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametreler
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5
  • mAPval değerleri, COCO val2017 veri kümesi üzerinde tek model ve tek ölçek içindir.
    yolo val segment data=coco.yaml device=0 komutuyla yeniden oluşturabilirsin.
  • Hız, bir Amazon EC2 P4d örneği kullanılarak COCO val görüntüleri üzerinde ortalaması alınmıştır.
    yolo val segment data=coco.yaml batch=1 device=0|cpu komutuyla yeniden oluşturabilirsin.
  • Parametreler ve FLOPs değerleri, Conv ve BatchNorm katmanlarını birleştiren ve uçtan uca modeller için yardımcı bire çoklu tespit başlığını kaldıran model.fuse() işleminden sonraki birleştirilmiş model içindir. Önceden eğitilmiş kontrol noktaları tam eğitim mimarisini korur ve daha yüksek sayılar gösterebilir.

Eğit

YOLO26n-seg modelini COCO8-seg veri kümesi üzerinde 640 görüntü boyutunda 100 dönem boyunca eğit. Mevcut tüm argümanların tam listesi için Yapılandırma sayfasına bak.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.yaml")  # build a new model from YAML
model = YOLO("yolo26n-seg.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-seg.yaml").load("yolo26n-seg.pt")  # build from YAML and transfer weights

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

train moduyla ilgili tüm ayrıntıları Eğitim sayfasında bulabilirsin. Bölütleme modelleri ayrıca Ultralytics Platform aracılığıyla bulut GPU'larında da eğitilebilir.

Veri kümesi formatı

YOLO bölütleme veri kümesi biçiminin ayrıntılarını Veri Kümesi Kılavuzu sayfasında bulabilirsin. Mevcut veri kümeni diğer biçimlerden (COCO vb.) YOLO biçimine dönüştürmek için lütfen Ultralytics tarafından sağlanan JSON2YOLO aracını kullan. Ayrıca, çokgen araçlarını ve SAM destekli akıllı etiketlemeyi kullanarak Ultralytics Platform üzerinde bölütleme maskeleri oluşturabilirsin.

Doğrula

Eğitilmiş YOLO26n-seg modelinin doğruluğunu COCO8-seg veri kümesi üzerinde doğrula. model, eğitim data değerini ve argümanlarını model öznitelikleri olarak koruduğu için herhangi bir argüman eklemene gerek yoktur.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list containing mAP50-95(B) for each category
metrics.box.image_metrics  # per-image metrics dictionary for det with precision, recall, F1, TP, FP, and FN
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list containing mAP50-95(M) for each category
metrics.seg.image_metrics  # per-image metrics dictionary for seg with precision, recall, F1, TP, FP, and FN

Tahmin

Görüntüler üzerinde tahmin yürütmek için eğitilmiş bir YOLO26n-seg modeli kullan.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xy = result.masks.xy  # mask polygons in pixel coordinates
    xyn = result.masks.xyn  # normalized mask polygons
    masks = result.masks.data  # binary masks, shape (N,H,W), dtype torch.uint8

predict modu ile ilgili tüm detaylar için Tahmin Et sayfasına bak.

Sonuç Çıktısı

YOLO örnek bölütleme, görüntü başına bir Results nesnesi döndürür. Her sonuç nesne düzeyindeki tahminleri saklar; burada her algılanan örnek kendi ikili maskesine, sınıfına, güven puanına ve kutusuna sahiptir.

ÖznitelikTürŞekilAçıklama
result.masksMasks(N)Örnek maskeleri.
result.masks.datatorch.uint8(N,H,W)İkili maskeler, değerler 0 veya 1.
result.masks.xynp.float32list[(P,2)]Piksel çokgenleri.
result.masks.xynnp.float32list[(P,2)]Normalleştirilmiş çokgenler.
result.boxesBoxes(N)Örnek kutuları/sınıfları/güven puanları.
result.boxes.clstorch.float32(N,)Sınıf kimlikleri; isimler için int tipine dönüştürülür.

Her görev için göreve özgü Results alanları hakkında bilgi almak için Göreve Göre Tahmin Sonuçları bölümüne bak.

Anlamsal Bölütlemeden Farkı Nedir?

Ö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 ise piksel düzeyinde sınıflandırmadır: aynı arabalar, nesne başına kutu, güven puanı veya varsayılan çokgen listesi olmadan, görüntü boyutunda bir sınıf haritasında aynı sınıf kimliğine sahip piksellere dönüşür.

Dışa Aktar

Bir YOLO26n-seg modelini ONNX, CoreML vb. gibi farklı bir biçime dışa aktar.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")

Mevcut YOLO26-seg dışa aktarma biçimleri aşağıdaki tablodadır. format argümanını kullanarak, örneğin format='onnx' veya format='engine' ile herhangi bir biçime dışa aktarabilirsin. Dışa aktarılan modeller üzerinde doğrudan tahmin yürütebilir veya doğrulama yapabilirsin, örneğin yolo predict model=yolo26n-seg.onnx. Dışa aktarma tamamlandıktan sonra modelin için kullanım örnekleri gösterilecektir.

Formatformat ArgümanıModelMeta veriArgümanlar
PyTorch-yolo26n-seg.pt-
TorchScripttorchscriptyolo26n-seg.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-seg.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n-seg_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-seg.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-seg.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-seg_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-seg.pbimgsz, batch, device
TF Litetfliteyolo26n-seg.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-seg_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-seg_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-seg_paddle_model/imgsz, batch, device
MNNmnnyolo26n-seg.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-seg_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-seg_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-seg_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n-seg_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-seg_axelera_model/imgsz, batch, int8, data, fraction, device
DeepXdeepxyolo26n-seg_deepx_model/imgsz, int8, data, optimize, device

Eksiksiz export detaylarını Export sayfasında incele.

SSS

Özel bir veri kümesi üzerinde YOLO26 bölütleme modelini nasıl eğitirim?

Özel bir veri kümesi üzerinde YOLO26 bölütleme modelini eğitmek için önce veri kümeni YOLO bölütleme biçiminde hazırlaman gerekir. Diğer biçimlerden dönüştürme yapmak için JSON2YOLO gibi araçlar kullanabilirsin. Veri kümen hazır olduğunda, Python veya CLI komutlarını kullanarak modeli eğitebilirsin:

Örnek
from ultralytics import YOLO

# Load a pretrained YOLO26 segment model
model = YOLO("yolo26n-seg.pt")

# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

Daha fazla mevcut argüman için Yapılandırma sayfasına göz at.

Nesne algılama ile YOLO26'daki örnek bölütleme arasındaki fark nedir?

Nesne algılama, nesnelerin etrafına sınırlayıcı kutular çizerek görüntü içindeki nesneleri tanımlar ve konumlandırır; örnek bölütleme ise sadece sınırlayıcı kutuları tanımlamakla kalmaz, aynı zamanda her nesnenin tam şeklini de belirler. YOLO26 örnek bölütleme modelleri, algılanan her nesnenin ana hatlarını çizen maskeler veya konturlar sağlar; bu, tıbbi görüntüleme veya otonom sürüş gibi nesnelerin kesin şeklini bilmenin önemli olduğu görevler için özellikle yararlıdır.

Neden örnek bölütleme için YOLO26 kullanmalıyım?

Ultralytics YOLO26, yüksek doğruluğu ve gerçek zamanlı performansıyla tanınan son teknoloji bir modeldir; bu da onu örnek bölütleme görevleri için ideal kılar. YOLO26 Segment modelleri, çeşitli nesnelerde sağlam performans sağlamak üzere COCO veri kümesi üzerinde önceden eğitilmiş olarak gelir. Ek olarak YOLO; eğitim, doğrulama, tahmin ve dışa aktarma işlevlerini sorunsuz entegrasyonla destekler, bu da onu hem araştırma hem de endüstri uygulamaları için oldukça çok yönlü kılar.

Önceden eğitilmiş bir YOLO bölütleme modelini nasıl yükler ve doğrularım?

Önceden eğitilmiş bir YOLO bölütleme modelini yüklemek ve doğrulamak basittir. Bunu Python ve CLI kullanarak şu şekilde yapabilirsin:

Örnek
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-seg.pt")

# Validate the model
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 olan Mean Average Precision (mAP) gibi doğrulama metriklerini sana sunacaktır.

Bir YOLO bölütleme modelini nasıl ONNX biçimine aktarabilirim?

Bir YOLO bölütleme modelini ONNX biçimine aktarmak basittir ve Python veya CLI komutları kullanılarak yapılabilir:

Örnek
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-seg.pt")

# Export the model to ONNX format
model.export(format="onnx")

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

Yorumlar