Ultralytics YOLO27:

Ultralytics YOLO ile Nesne Algılama#

Ultralytics YOLO object detection with bounding boxes

Nesne algılama, bir görüntüdeki veya video akışındaki nesnelerin konumunu ve sınıfını belirlemeyi içeren bir görevdir.

Bir nesne algılayıcının çıktısı, görüntüdeki nesneleri çevreleyen sınırlayıcı kutuların yanı sıra her kutu için sınıf etiketleri ve güven skorlarından oluşur. Nesne algılama, bir sahnedeki ilgili nesneleri belirlemen gerektiğinde, ancak nesnenin tam olarak nerede olduğunu veya kesin şeklini bilmen gerekmediğinde iyi bir tercihtir.



Watch: Object Detection with Pretrained Ultralytics YOLO Model.
İpucu

YOLO26 Detect modelleri, varsayılan YOLO26 modelleridir; yani yolo26n.pt ve COCO üzerinde önceden eğitilmiştir.

Modeller#

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

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

Modelboyut
(piksel)
mAPval
50-95
mAPval
50-95(e2e)
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametre
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.5
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.9
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.4
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.8
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7194.4
  • mAPval değerleri, COCO val2017 veri kümesi üzerinde tek model ve tek ölçek içindir.
    Yeniden üretmek için yolo val detect data=coco.yaml device=0 kullan. uçtan uca (e2e) sütununu yeniden üretmek için nms=False ekle.
  • Hız, bir Amazon EC2 P4d örneği kullanılarak COCO val görüntüleri üzerinde ortalanmıştır.
    yolo val detect data=coco.yaml batch=1 device=0|cpu nms=False ile yeniden üretin
  • Parametreler ve FLOP değerleri, Conv/BatchNorm katlama işlemi ve kullanılmayan algılama dalının kaldırılmasından sonraki birleştirilmiş modeller içindir. Önceden eğitilmiş kontrol noktaları tam eğitim mimarisini korur ve daha yüksek sayılar gösterebilir.

COCO nesne tespiti ön sonuçları için yayınlanmamış YOLO27 önizlemesine göz at.

Eğit#

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

Örnek
from ultralytics import YOLO

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

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

Tam train modu ayrıntılarını Train sayfasında görebilirsin. Algılama modelleri Ultralytics Platform bulut eğitimi ile de eğitilebilir.

Veri kümesi biçimi#

YOLO nesne tespiti veri seti formatını Dataset Guide içinde ayrıntılı olarak bulabilirsin. Mevcut bir COCO JSON veri setini YOLO formatına dönüştürmek için COCO to YOLO guide içinde açıklanan yerleşik convert_coco fonksiyonunu kullanabilirsin. Ayrıca Ultralytics Platform's AI-assisted annotation tools ile nesne tespiti veri setlerini etiketleyebilir ve yönetebilirsin.

Doğrulama#

Eğitilmiş YOLO26n modelinin COCO8 veri kümesindeki doğruluğunu doğrula. model, eğitim data değerini ve bağımsız değişkenleri model öznitelikleri olarak koruduğundan herhangi bir bağımsız değişken gerekmez.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.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
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

Tahmin#

Görüntüler üzerinde tahminler yapmak için eğitilmiş bir YOLO26n modeli kullan.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.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:
    xywh = result.boxes.xywh  # center-x, center-y, width, height
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # top-left-x, top-left-y, bottom-right-x, bottom-right-y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # class name of each box
    confs = result.boxes.conf  # confidence score of each box

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

Sonuç çıktısı#

Nesne algılama, görüntü başına bir Results nesnesi döndürür. Birincil tahmin alanı, algılanan her nesne için kutu koordinatlarını, sınıf kimliklerini ve güven skorlarını içeren result.boxes alanıdır.

ÖznitelikTürŞekilAçıklama
result.boxesBoxes(N)Algılama kutuları.
result.boxes.datatorch.float32(N,6/7)İsteğe bağlı izleme kimliğiyle ham [x1,y1,x2,y2,conf,cls].
result.boxes.xyxytorch.float32(N,4)xyxy piksel kutuları.
result.boxes.conftorch.float32(N,)Güven skorları.
result.boxes.clstorch.float32(N,)Sınıf kimlikleri; adlar için int türüne dönüştür.

Her görevdeki göreve özgü Results alanlarının tamamı için Göreve Göre Tahmin Sonuçları bölümüne bak.

Dışa aktarma#

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

Örnek
from ultralytics import YOLO

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

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

Kullanılabilir YOLO26 aktarım biçimleri aşağıdaki tabloda yer almaktadır. format bağımsız değişkenini kullanarak herhangi bir biçime aktarabilirsin; örneğin format='onnx' veya format='engine'. Dışa aktarılan modeller üzerinde doğrudan tahmin yapabilir veya doğrulama gerçekleştirebilirsin; örneğin yolo predict model=yolo26n.onnx. Kullanım örnekleri, aktarım tamamlandıktan sonra modelin için gösterilir.

Biçimformat bağımsız değişkeniModelMeta verilerBağımsız değişkenler
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, batch, quantize

nms=None, harici NMS için varsayılan olarak ham çıktıları kullanır. Mevcut bir NMS'siz başlığı seçmek için nms=False değerini ayarla; desteklenmeyen formatlar yerel çıktı yollarına geri döner. Yukarıdaki nms girdileri, NMS'yi nms=True ile gömebilen formatları tanımlar.

Ayrıntıların tamamı için Dışa aktarma sayfasındaki export bilgilerine bak.

SSS#

  • Evet. Ultralytics Platform hızlı başlangıcı, veri kümelerine açıklama ekleme, algılama modellerini bulut GPU'larında eğitme ve bunları çıkarım uç noktalarına dağıtma işlemleri için tarayıcı tabanlı bir iş akışını kapsar.

  • Özel bir veri kümesinde YOLO26 modelini eğitmek birkaç adım içerir:

    1. Veri Kümesini Hazırla: Veri kümenin YOLO biçiminde olduğundan emin ol. Rehber için Veri Kümesi Kılavuzu sayfamıza bak.
    2. Modeli Yükle: Önceden eğitilmiş bir modeli yüklemek veya bir YAML dosyasından yeni bir model oluşturmak için Ultralytics YOLO kütüphanesini kullan.
    3. Modeli Eğit: Python'da train yöntemini veya CLI'da yolo detect train komutunu çalıştır.
    Örnek
    from ultralytics import YOLO
    
    # Load a pretrained model
    model = YOLO("yolo26n.pt")
    
    # Train the model on your custom dataset
    model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)

    Ayrıntılı yapılandırma seçenekleri için Yapılandırma sayfasını ziyaret et.

  • Ultralytics YOLO26; nesne algılama, örnek bölütleme, anlamsal bölütleme ve poz tahmini için çeşitli önceden eğitilmiş modeller sunar. Bu modeller, COCO veri kümesi, anlamsal bölütleme için Cityscapes veya sınıflandırma görevleri için ImageNet üzerinde önceden eğitilmiştir. Kullanılabilir modellerden bazıları şunlardır:

    Ayrıntılı liste ve performans ölçümleri için Modeller bölümüne bak.

  • Eğittiğin YOLO26 modelinin doğruluğunu doğrulamak için Python'da .val() yöntemini veya CLI'da yolo detect val komutunu kullanabilirsin. Bu işlem mAP50-95, mAP50 ve daha fazlası gibi ölçümler sağlar.

    Örnek
    from ultralytics import YOLO
    
    # Load the model
    model = YOLO("path/to/best.pt")
    
    # Validate the model
    metrics = model.val()
    print(metrics.box.map)  # mAP50-95

    Daha fazla doğrulama ayrıntısı için Val sayfasını ziyaret et.

  • Ultralytics YOLO26, farklı platform ve cihazlar arasında uyumluluğu sağlamak için modellerin ONNX, TensorRT, CoreML gibi çeşitli biçimlere ve daha fazlasına aktarılmasına olanak tanır.

    Örnek
    from ultralytics import YOLO
    
    # Load the model
    model = YOLO("yolo26n.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

    Desteklenen biçimlerin ve talimatların tam listesini Export sayfasında incele.

  • Ultralytics YOLO26; nesne algılama, örnek bölütleme, anlamsal bölütleme ve poz tahmini için son teknoloji performans sunmak üzere tasarlanmıştır. Öne çıkan avantajlarından bazıları şunlardır:

    1. Önceden Eğitilmiş Modeller: Daha hızlı geliştirme için COCO ve ImageNet gibi popüler veri kümelerinde önceden eğitilmiş modellerden yararlan.
    2. Yüksek Doğruluk: Güvenilir nesne algılama sağlayan etkileyici mAP skorlarına ulaşır.
    3. Hız: Gerçek zamanlı çıkarım için optimize edilmiştir ve hızlı işlem gerektiren uygulamalar için idealdir.
    4. Esneklik: Birden fazla platformda dağıtım için modelleri ONNX ve TensorRT gibi çeşitli biçimlere aktar.

    YOLO26'nın kullanımdaki örneklerini sergileyen kullanım alanları ve başarı öyküleri için Blogumuzu keşfet.

Yorumlar