Ultralytics YOLO ile Nesne Tespiti#
Nesne tespiti, görüntü 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 puanlarından oluşur. Bir sahnedeki ilgili nesneleri tanımlaman gerektiğinde ancak nesnenin tam şeklini bilmen gerekmediğinde nesne tespiti iyi bir seçimdir.
İzle: Önceden Eğitilmiş Ultralytics YOLO Modeliyle Nesne Algılama.
YOLO26 Detect modelleri varsayılan YOLO26 modelleridir; yani yolo26n.pt şeklindedir ve COCO üzerinde önceden eğitilmiştir.
Modeller#
COCO veri kümesinde önceden eğitilmiş YOLO26 Detect 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) | mAPval 50-95 | mAPval 50-95(e2e) | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametre (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.5 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.9 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.4 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.8 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 194.4 |
- mAPval değerleri, COCO val2017 veri kümesinde tek model ve tek ölçek için verilmiştir.
yolo detect val data=coco.yaml device=0ile yeniden üret. E2E sütununu yeniden üretmek içinnms=Falseekle. - 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 detect 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.
Ön COCO tespit sonuçları için henüz yayımlanmamış YOLO27 önizlemesine göz at.
Eğit#
COCO8 veri kümesinde YOLO26n modelini, görüntü boyutu 640 olacak şekilde 100 epoch boyunca eğit. Kullanılabilir tüm bağımsız değişkenlerin listesi için Yapılandırma sayfasına bak.
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.yaml") # YAML'den yeni bir model oluştur
model = YOLO("yolo26n.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # YAML'den oluştur ve ağırlıkları aktar
# Modeli eğit
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)train kipinin tüm ayrıntıları için Eğitim sayfasına bak. Tespit modellerini Ultralytics Platform bulut eğitimi ile de eğitebilirsin.
Veri kümesi biçimi#
YOLO tespit veri kümesi biçiminin ayrıntılarını Veri Kümesi Kılavuzunda bulabilirsin. Mevcut bir COCO JSON veri kümesini YOLO biçimine dönüştürmek için COCO'dan YOLO'ya kılavuzunda açıklanan yerleşik convert_coco işlevini kullan. Ayrıca tespit veri kümelerini Ultralytics Platform'un yapay zekâ destekli etiketleme araçlarıyla etiketleyebilir ve yönetebilirsin.
Doğrula#
Eğitilmiş YOLO26n modelinin doğruluğunu doğrula. model, eğitim data değerini ve bağımsız değişkenlerini model öznitelikleri olarak koruduğundan bağımsız değişken gerekmez: Eğitim örneğindeki path/to/best.pt, COCO8 üzerinde doğrulama yapar. Resmî ağırlıklar, makinenizde bulunmayan bir eğitim veri kümesi yolu kaydeder; bu nedenle bir uyarıyla görevin varsayılan coco8.yaml değerine geri döner. Başka bir veri kümesinde doğrulama yapmak için data değerini ilet.
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.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
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # Her kategori için mAP50-95 içeren bir liste
metrics.box.image_metrics # Hassasiyet, geri çağırma, F1, TP, FP ve FN değerlerini içeren görüntü başına metrik sözlüğüTahmin#
Görüntüler üzerinde tahmin yapmak için eğitilmiş bir YOLO26n modeli kullan.
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.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:
xywh = result.boxes.xywh # merkez-x, merkez-y, genişlik, yükseklik
xywhn = result.boxes.xywhn # normalized
xyxy = result.boxes.xyxy # sol üst-x, sol üst-y, sağ alt-x, sağ alt-y
xyxyn = result.boxes.xyxyn # normalized
names = [result.names[cls.item()] for cls in result.boxes.cls.int()] # her kutunun sınıf adı
confs = result.boxes.conf # her kutunun güven puanıpredict kipinin tüm ayrıntıları için Tahmin sayfasına bak.
Sonuç Çıktısı#
Nesne tespiti, görüntü başına bir Results nesnesi döndürür. Birincil tahmin alanı, tespit edilen her nesnenin kutu koordinatlarını, sınıf kimliklerini ve güven puanlarını içeren result.boxes alanıdır.
| Öznitelik | Tür | Şekil | Açıklama |
|---|---|---|---|
result.boxes | Boxes | (N) | Algılama kutuları. |
result.boxes.data | torch.float32 | (N,6/7) | Ham [x1,y1,x2,y2,conf,cls] ve isteğe bağlı izleme kimliği. |
result.boxes.xyxy | torch.float32 | (N,4) | xyxy piksel kutuları. |
result.boxes.conf | torch.float32 | (N,) | Güven puanları. |
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.
Dışa aktar#
YOLO26n modelini ONNX, CoreML vb. farklı bir biçime aktar.
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.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 dışa aktarma biçimleri aşağıdaki tabloda verilmiştir. format bağımsız değişkenini kullanarak herhangi bir biçime aktarabilirsin; örneğin format='onnx' veya format='engine'. Dışa aktarılan modellerde doğrudan tahmin yapabilir veya doğrulama gerçekleştirebilirsin; örneğin yolo predict model=yolo26n.onnx. Dışa aktarma tamamlandıktan sonra modeline yönelik kullanım örnekleri gösterilir.
| Biçim | format bağımsız değişkeni | Model | Üst veriler | Bağımsız değişkenler |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou, device |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms, device |
| AMD Xilinx | xilinx | yolo26n_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#
Evet. Ultralytics Platform hızlı başlangıç kılavuzu, veri kümelerini etiketlemek, tespit modellerini bulut GPU'larında eğitmek ve çıkarım uç noktalarına dağıtmak için tarayıcı tabanlı bir iş akışını açıklar.
YOLO26 modelini özel bir veri kümesinde eğitmek birkaç adım içerir:
- Veri Kümesini Hazırla: Veri kümenin YOLO biçiminde olduğundan emin ol. Yönergeler için Veri Kümesi Kılavuzumuza bak.
- Modeli Yükle: Önceden eğitilmiş bir modeli yüklemek veya YAML dosyasından yeni bir model oluşturmak için Ultralytics YOLO kitaplığını kullan.
- Modeli Eğit: Python'da
trainyöntemini veya CLI'dayolo detect trainkomutunu çalıştır.
Örnekfrom ultralytics import YOLO # Önceden eğitilmiş bir modeli yükle model = YOLO("yolo26n.pt") # Modeli özel veri kümenle eğit 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 tespiti, örnek segmentasyonu, anlamsal segmentasyon, derinlik tahmini, sınıflandırma, poz tahmini ve yönlendirilmiş sınırlayıcı kutular için çeşitli önceden eğitilmiş modeller sunar. Bu modeller; nesne tespiti için COCO veri kümesinde, anlamsal segmentasyon için Cityscapes'te, derinlik tahmini için çoklu veri kümesi karışımında, sınıflandırma için ImageNet'te veya OBB için DOTAv1'de ö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'dayolo detect valkomutunu kullanabilirsin. Bu işlem mAP50-95, mAP50 ve daha fazlası gibi ölçümler sağlar.Örnekfrom ultralytics import YOLO # Modeli yükle model = YOLO("path/to/best.pt") # Modeli doğrula metrics = model.val() print(metrics.box.map) # mAP50-95Doğrulama hakkında daha fazla bilgi için Doğrulama sayfasını ziyaret et.
Ultralytics YOLO26, farklı platform ve cihazlarla uyumluluğu sağlamak için modelleri ONNX, TensorRT, CoreML ve daha birçok biçime aktarmana olanak tanır.
Örnekfrom ultralytics import YOLO # Modeli yükle model = YOLO("yolo26n.pt") # Modeli ONNX biçimine aktar model.export(format="onnx")Desteklenen biçimlerin tam listesi ve yönergeler için Dışa Aktarma sayfasına göz at.
Ultralytics YOLO26; nesne tespiti, örnek segmentasyonu, anlamsal segmentasyon ve poz tahmini alanlarında en gelişmiş performansı sunmak üzere tasarlanmıştır. Başlıca avantajları şunlardır:
- Önceden Eğitilmiş Modeller: Geliştirme sürecini hızlandırmak için COCO ve ImageNet gibi popüler veri kümelerinde önceden eğitilmiş modellerden yararlan.
- Yüksek Doğruluk: Güvenilir nesne tespiti sağlayan etkileyici mAP puanlarına ulaşır.
- Hız: Gerçek zamanlı çıkarım için optimize edilmiştir ve hızlı işlem gerektiren uygulamalar için idealdir.
- Esneklik: Modelleri ONNX ve TensorRT gibi çeşitli biçimlere aktararak birden fazla platformda dağıt.
YOLO26'nın kullanımda olduğu örnekleri ve başarı hikâyelerini görmek için Blogumuzu keşfet.