Ultralytics YOLO ile Örnek Bölütleme#
Ö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.
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.
| Model | boyut (piksel) | mAPkutu 50-95(e2e) | mAPmaske 50-95(e2e) | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametre (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-seg | 640 | 39.6 | 33.9 | 53.3 ± 0.5 | 2.1 ± 0.0 | 2.7 | 9.3 |
| YOLO26s-seg | 640 | 47.3 | 40.0 | 118.4 ± 0.9 | 3.3 ± 0.0 | 10.4 | 34.5 |
| YOLO26m-seg | 640 | 52.5 | 44.1 | 328.2 ± 2.4 | 6.7 ± 0.1 | 23.6 | 121.7 |
| YOLO26l-seg | 640 | 54.4 | 45.5 | 387.0 ± 3.7 | 8.0 ± 0.1 | 28.0 | 140.1 |
| YOLO26x-seg | 640 | 56.5 | 47.0 | 787.0 ± 6.8 | 16.4 ± 0.1 | 62.8 | 314.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=Falseile 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=Falseile 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.
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.
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.
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.uint8predict 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.
| Öznitelik | Tür | Şekil | Açıklama |
|---|---|---|---|
result.masks | Masks | (N) | Örnek maskeleri. |
result.masks.data | torch.uint8 | (N,H,W) | Değerleri 0 veya 1 olan ikili maskeler. |
result.masks.xy | np.float32 | list[(P,2)] | Piksel poligonları. |
result.masks.xyn | np.float32 | list[(P,2)] | Normalize edilmiş poligonlar. |
result.boxes | Boxes | (N) | Örnek kutuları/sınıfları/güven değerleri. |
result.boxes.cls | torch.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.
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.
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çim | format bağımsız değişkeni | Model | Üst veriler | Bağımsız değişkenler |
|---|---|---|---|---|
| PyTorch | - | yolo26n-seg.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-seg.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n-seg.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-seg_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-seg.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-seg.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| Apple Core AI | coreai | yolo26n-seg.aimodel | ✅ | imgsz, batch, quantize |
| TF SavedModel | saved_model | yolo26n-seg_saved_model/ | ✅ | imgsz, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-seg.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n-seg_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| LiteRT | litert | yolo26n-seg.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-seg_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-seg.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n-seg_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n-seg_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n-seg_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n-seg_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-seg_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n-seg_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-seg_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| Hailo | hailo | yolo26n-seg_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou, device |
| Huawei Ascend | ascend | yolo26n-seg_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms, device |
| AMD Xilinx | xilinx | yolo26n-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_cocoyardımcı programını kullanabilirsin. Veri kümen hazır olduğunda modeli Python veya CLI komutlarıyla eğitebilirsin:Örnekfrom 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:
Örnekfrom 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:
Örnekfrom 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.