Link to this sectionÖrnek Segmentasyonu#
Örnek bölümleme, nesne algılamadan bir adım daha ileri giderek 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ümleme modelinin çıktısı, görüntüdeki her bir nesnenin ana hatlarını çizen bir dizi maske veya kontur ile her nesne için sınıf etiketleri ve güven puanlarıdır. Örnek bölümleme, yalnızca nesnelerin görüntüde nerede olduğunu değil, aynı zamanda tam şekillerinin ne olduğunu da bilmeniz gerektiğinde kullanışlıdır.
Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
YOLO26 Segment modelleri -seg sonekini kullanır, yani yolo26n-seg.pt şeklindedir ve COCO üzerinde önceden eğitilmiştir.
Link to this sectionModeller#
YOLO26 önceden eğitilmiş Segment modelleri burada gösterilmektedir. Algılama (Detect), Bölümleme (Segment) ve Poz (Pose) modelleri COCO veri kümesi üzerinde, Anlamsal modeller Cityscapes üzerinde ve Sınıflandırma (Classify) modelleri ImageNet veri kümesi üzerinde önceden eğitilmiştir.
Modeller ilk kullanımda en son Ultralytics sürümünden otomatik olarak indirilir.
| Model | boyut (piksel) | mAPbox 50-95(e2e) | mAPmask 50-95(e2e) | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametreler (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-seg | 640 | 39.6 | 33.9 | 53.3 ± 0.5 | 2.1 ± 0.0 | 2.7 | 9.1 |
| YOLO26s-seg | 640 | 47.3 | 40.0 | 118.4 ± 0.9 | 3.3 ± 0.0 | 10.4 | 34.2 |
| YOLO26m-seg | 640 | 52.5 | 44.1 | 328.2 ± 2.4 | 6.7 ± 0.1 | 23.6 | 121.5 |
| YOLO26l-seg | 640 | 54.4 | 45.5 | 387.0 ± 3.7 | 8.0 ± 0.1 | 28.0 | 139.8 |
| YOLO26x-seg | 640 | 56.5 | 47.0 | 787.0 ± 6.8 | 16.4 ± 0.1 | 62.8 | 313.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=0ile yeniden üretebilirsin. - Hız 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|cpuile yeniden üretebilirsin. - Params (Parametreler) ve FLOPs değerleri, Conv ve BatchNorm katmanlarını birleştiren ve uçtan uca modeller için yardımcı bire-çok 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.
Link to this sectionEğit (Train)#
YOLO26n-seg modelini COCO8-seg veri kümesinde 640 görüntü boyutunda 100 epoch boyunca eğit. Mevcut argümanların tam listesi için Yapılandırma sayfasına bak.
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 modunun tüm detaylarını Eğitim sayfasında görebilirsin. Bölümleme modelleri ayrıca Ultralytics Platform aracılığıyla bulut GPU'larında eğitilebilir.
Link to this sectionVeri kümesi biçimi#
YOLO bölümleme veri kümesi formatı hakkında detaylı bilgiyi Veri Kümesi Kılavuzu bölümünde bulabilirsin. Mevcut veri kümeni diğer formatlardan (COCO gibi) YOLO formatına dönüştürmek için lütfen Ultralytics tarafından sağlanan JSON2YOLO aracını kullan. Ayrıca Ultralytics Platform üzerinde çokgen araçları ve SAM destekli akıllı etiketleme kullanarak bölümleme maskeleri oluşturabilirsin.
Link to this sectionDoğrula (Val)#
Eğitilmiş YOLO26n-seg modelinin doğruluğunu COCO8-seg veri kümesinde doğrula. model, kendi eğitim data'sını ve argümanlarını model öznitelikleri olarak koruduğu için herhangi bir argümana gerek yoktur.
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 FNLink to this sectionTahmin Et (Predict)#
Görüntüler üzerinde tahmin çalıştırmak için eğitilmiş bir YOLO26n-seg modeli kullan.
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.uint8Tüm predict modu ayrıntılarını Tahmin (Predict) sayfasında görebilirsin.
Link to this sectionSonuç Çıktısı#
YOLO örnek bölümleme, görüntü başına bir Results nesnesi döndürür. Her sonuç nesne düzeyindeki tahminleri saklar; burada her algılanan örneğin kendine ait ikili maskesi, sınıfı, güven puanı ve kutusu bulunur.
| Öznitelik | Tip | Şekil | Açıklama |
|---|---|---|---|
result.masks | Masks | (N) | Örnek maskeleri. |
result.masks.data | torch.uint8 | (N,H,W) | İkili maskeler, 0 veya 1 değerleri. |
result.masks.xy | np.float32 | list[(P,2)] | Piksel çokgenleri. |
result.masks.xyn | np.float32 | list[(P,2)] | Normalleştirilmiş çokgenler. |
result.boxes | Boxes | (N) | Örnek kutuları/sınıfları/güven skorları. |
result.boxes.cls | torch.float32 | (N,) | Sınıf kimlikleri; isimler için int türüne dönüştürülür. |
Her görev için göreve özel Results alanlarını görmek istersen, Göreve Göre Tahmin Sonuçları bölümüne bak.
Link to this sectionBunun Anlamsal Bölümlemeden Farkı Nedir?#
Örnek bölümleme, nesne düzeyinde bölümlemedir: iki araba iki maske, iki kutu ve iki güven puanı üretir. Anlamsal bölümleme ise piksel düzeyinde sınıflandırmadır: aynı arabalar, görüntü boyutunda bir sınıf haritasında nesne başına kutu, güven puanı veya varsayılan çokgen listesi olmaksızın aynı sınıf kimliğine sahip piksellere dönüşür.
Link to this sectionDışa Aktar (Export)#
Bir YOLO26n-seg modelini ONNX, CoreML gibi farklı bir formata dışa aktar.
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 formatları aşağıdaki tabloda yer almaktadır. format argümanını, yani format='onnx' veya format='engine' kullanarak herhangi bir formata dışa aktarabilirsin. Dışa aktarılan modellerde doğrudan tahmin yapabilir veya doğrulama yapabilirsin, yani yolo predict model=yolo26n-seg.onnx. Dışa aktarma tamamlandıktan sonra modelin için kullanım örnekleri gösterilir.
| Format | format Argümanı | Model | Meta veriler | Argümanlar |
|---|---|---|---|---|
| PyTorch | - | yolo26n-seg.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-seg.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-seg.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-seg_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-seg.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-seg.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-seg_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-seg.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-seg.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-seg_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-seg_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-seg_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-seg.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-seg_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-seg_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-seg_rknn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
| ExecuTorch | executorch | yolo26n-seg_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-seg_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DEEPX | deepx | yolo26n-seg_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-seg_qnn.onnx | ✅ | imgsz, batch, name, int8, data, fraction, device |
Tüm export ayrıntılarını Export sayfasında bulabilirsin.
Link to this sectionSSS#
Link to this sectionÖzel bir veri kümesinde nasıl YOLO26 bölümleme modeli eğitebilirim?#
Özel bir veri kümesinde YOLO26 bölümleme modeli eğitmek için öncelikle veri kümeni YOLO bölümleme formatında hazırlaman gerekir. Diğer formatlardan veri kümelerini dönüştürmek için JSON2YOLO gibi araçlar kullanabilirsin. Veri kümen hazır olduğunda, Python veya CLI komutlarını kullanarak modeli eğitebilirsin:
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.
Link to this sectionYOLO26'da nesne algılama ve örnek bölümleme arasındaki fark nedir?#
Nesne algılama, nesnelerin etrafına sınırlayıcı kutular çizerek görüntüdeki nesneleri tanımlar ve yerelleştirir; örnek bölümleme ise sadece sınırlayıcı kutuları tanımlamakla kalmaz, aynı zamanda her nesnenin tam şeklini de belirler. YOLO26 örnek bölümleme 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.
Link to this sectionNeden örnek bölümleme için YOLO26 kullanmalısın?#
Ultralytics YOLO26, yüksek doğruluğu ve gerçek zamanlı performansıyla tanınan son teknoloji bir modeldir ve bu da onu örnek bölümleme görevleri için ideal kılar. YOLO26 Segment modelleri, çeşitli nesnelerde güçlü performans sağlamak için COCO veri kümesi üzerinde önceden eğitilmiş olarak gelir. Ayrıca YOLO, eğitim, doğrulama, tahmin ve dışa aktarma işlevlerini sorunsuz entegrasyonla destekleyerek hem araştırma hem de endüstri uygulamaları için oldukça çok yönlü hale getirir.
Link to this sectionÖnceden eğitilmiş bir YOLO bölümleme modelini nasıl yükler ve doğrularım?#
Önceden eğitilmiş bir YOLO bölümleme modelini yüklemek ve doğrulamak kolaydır. İşte hem Python hem de CLI kullanarak bunu nasıl yapabileceğin:
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 Ortalama Hassasiyetin Ortalaması (mAP) gibi doğrulama metriklerini sana sağlayacaktır.
Link to this sectionBir YOLO bölümleme modelini nasıl ONNX formatına dışa aktarabilirim?#
Bir YOLO bölümleme modelini ONNX formatına dışa aktarmak basittir ve Python veya CLI komutları kullanılarak yapılabilir:
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 formatlara dışa aktarma hakkında daha fazla ayrıntı için Dışa Aktarma sayfasına başvur.