Nesne Algılama

YOLO object detection with bounding boxes

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

Bir nesne dedektörünün çıktısı, görüntüdeki nesneleri çevreleyen sınırlayıcı kutular kümesi ile birlikte her kutu için sınıf etiketleri ve güven skorlarıdır. Nesne algılama, bir sahnedeki ilgilendiğin nesneleri tanımlaman gerektiğinde, ancak nesnenin tam olarak nerede olduğunu veya kesin şeklini bilmene ihtiyaç duymadığında iyi bir tercihtir.



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

YOLO26 Detect modelleri varsayılan YOLO26 modelleridir, yani yolo26n.pt dosyalarıdır ve COCO üzerinde önceden eğitilmişlerdir.

Modeller

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

Modeller, ilk kullanımda en son 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.4
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.7
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.2
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.4
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7193.9
  • mAPval değerleri COCO val2017 veri kümesindeki tek model, tek ölçek değerleridir.
    yolo val detect data=coco.yaml device=0 ile yeniden oluşturabilirsin.
  • Hız, Amazon EC2 P4d örneği kullanılarak COCO val görüntüleri üzerinde ortalaması alınmıştır.
    yolo val detect data=coco.yaml batch=1 device=0|cpu ile yeniden oluşturabilirsin.
  • Params 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() sonrası 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 (Train)

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

Ö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)

train moduna dair tüm detayları Train sayfasında bulabilirsin. Algılama modelleri, Ultralytics Platform aracılığıyla bulut GPU'larında da eğitilebilir.

Veri kümesi formatı

YOLO algılama veri kümesi formatının detaylarını Veri Kümesi Kılavuzu sayfasında bulabilirsin. Mevcut veri kümeni diğer formatlardan (COCO gibi) YOLO formatına dönüştürmek için lütfen Ultralytics tarafından sunulan JSON2YOLO aracını kullan. Ayrıca, yapay zeka destekli etiketleme araçlarıyla Ultralytics Platform üzerinde doğrudan algılama veri kümelerini etiketleyebilir ve yönetebilirsin.

Doğrula (Val)

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

Ö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 çalıştırmak 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 moduna dair tüm detayları Predict sayfasında bulabilirsin.

Dışa Aktar (Export)

Bir YOLO26n modelini ONNX, CoreML vb. farklı bir formata dışa 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")

Mevcut YOLO26 dışa aktarma formatları aşağıdaki tabloda yer almaktadır. format argümanını kullanarak, yani format='onnx' veya format='engine' şeklinde herhangi bir formata dışa aktarım yapabilirsin. Dışa aktarılan modeller üzerinde doğrudan tahmin veya doğrulama yapabilirsin, örneğin yolo predict model=yolo26n.onnx. Kullanım örnekleri, dışa aktarma tamamlandıktan sonra modelin için gösterilir.

Formatformat ArgümanıModelMeta veriArgümanlar
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, batch, device
TF Litetfliteyolo26n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, int8, data, fraction, device
DeepXdeepxyolo26n_deepx_model/imgsz, int8, data, optimize, device

Tam export ayrıntıları için Dışa Aktarma sayfasına bak.

SSS

Kod yazmadan algılama modellerini eğitebilir ve dağıtabilir miyim?

Evet. Ultralytics Platform, veri kümelerini etiketlemek, bulut GPU'larında algılama modelleri eğitmek ve bunları çıkarım uç noktalarına dağıtmak için tarayıcı tabanlı bir iş akışı sunar. Başlamak için Platform hızlı başlangıç kılavuzuna bak.

Kendi özel veri kümem üzerinde YOLO26 modelini nasıl eğitirim?

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

  1. Veri Kümesini Hazırla: Veri kümenin YOLO formatında olduğundan emin ol. Rehberlik için Veri Kümesi Kılavuzu sayfamıza başvur.
  2. Modeli Yükle: Önceden eğitilmiş bir model 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 metodunu 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)

Detaylı yapılandırma seçenekleri için Yapılandırma sayfasını ziyaret et.

YOLO26'da hangi önceden eğitilmiş modeller mevcuttur?

Ultralytics YOLO26, nesne algılama, segmentasyon ve poz tahmini için çeşitli önceden eğitilmiş modeller sunar. Bu modeller, sınıflandırma görevleri için COCO veri kümesi veya ImageNet üzerinde önceden eğitilmiştir. İşte mevcut modellerden bazıları:

Detaylı bir liste ve performans metrikleri için Modeller bölümüne bak.

Eğitilmiş YOLO modelimin doğruluğunu nasıl doğrulayabilirim?

Eğitilmiş YOLO26 modelinin doğruluğunu doğrulamak için Python'da .val() metodunu veya CLI'da yolo detect val komutunu kullanabilirsin. Bu, mAP50-95, mAP50 ve daha fazlası gibi metrikler sağlayacaktır.

Ö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 detayı için Val sayfasını ziyaret et.

Bir YOLO26 modelini hangi formatlara aktarabilirim?

Ultralytics YOLO26, farklı platformlar ve cihazlar arasında uyumluluk sağlamak için modellerin ONNX, TensorRT, CoreML ve daha fazlası gibi çeşitli formatlara dışa 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 formatların tam listesini ve talimatları Export sayfasında incele.

Nesne algılama için neden Ultralytics YOLO26 kullanmalıyım?

Ultralytics YOLO26, nesne algılama, segmentasyon ve poz tahmini için en son teknoloji performans sunacak şekilde tasarlanmıştır. İşte bazı temel avantajlar:

  1. Önceden Eğitilmiş Modeller: Daha hızlı geliştirme için COCO ve ImageNet gibi popüler veri kümeleri üzerinde önceden eğitilmiş modellerden faydalan.
  2. Yüksek Doğruluk: Etkileyici mAP skorlarına ulaşarak güvenilir nesne algılama sağlar.
  3. Hız: Gerçek zamanlı çıkarım için optimize edilmiştir, bu da onu hızlı işlem gerektiren uygulamalar için ideal kılar.
  4. Esneklik: Modelleri birden fazla platformda dağıtım için ONNX ve TensorRT gibi çeşitli formatlara aktar.

YOLO26'nın iş başında olduğu kullanım örnekleri ve başarı hikayeleri için Blog sayfamızı keşfet.

Yorumlar