Ultralytics YOLO ile Nesne Algılama#
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.
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.
| 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ümesi üzerinde tek model ve tek ölçek içindir.
Yeniden üretmek içinyolo val detect data=coco.yaml device=0kullan. uçtan uca (e2e) sütununu yeniden üretmek içinnms=Falseekle. - 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=Falseile 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.
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.
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 FNTahmin#
Görüntüler üzerinde tahminler yapmak için eğitilmiş bir YOLO26n modeli kullan.
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 boxpredict 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.
| Öznitelik | Tür | Şekil | Açıklama |
|---|---|---|---|
result.boxes | Boxes | (N) | Algılama kutuları. |
result.boxes.data | torch.float32 | (N,6/7) | İsteğe bağlı izleme kimliğiyle ham [x1,y1,x2,y2,conf,cls]. |
result.boxes.xyxy | torch.float32 | (N,4) | xyxy piksel kutuları. |
result.boxes.conf | torch.float32 | (N,) | Güven skorları. |
result.boxes.cls | torch.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.
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çim | format bağımsız değişkeni | Model | Meta 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 |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, 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 |
| 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 |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, 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:
- 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.
- 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.
- Modeli Eğit: Python'da
trainyöntemini veya CLI'dayolo detect trainkomutunu çalıştır.
Örnekfrom 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'dayolo detect valkomutunu kullanabilirsin. Bu işlem mAP50-95, mAP50 ve daha fazlası gibi ölçümler sağlar.Örnekfrom ultralytics import YOLO # Load the model model = YOLO("path/to/best.pt") # Validate the model metrics = model.val() print(metrics.box.map) # mAP50-95Daha 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.
Örnekfrom 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:
- Ö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.
- Yüksek Doğruluk: Güvenilir nesne algılama sağlayan etkileyici mAP skorları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: 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.