Python Kullanımı#
Ultralytics YOLO Python Kullanımı belgelerine hoş geldin! Bu kılavuz, Ultralytics YOLO'yu Python projelerine kolayca entegre ederek nesne tespiti, örnek segmentasyonu, anlamsal segmentasyon, derinlik tahmini ve sınıflandırma yapmana yardımcı olmak için hazırlandı. Burada önceden eğitilmiş modelleri yüklemeyi ve kullanmayı, yeni modeller eğitmeyi ve görüntüler üzerinde tahminler yapmayı öğreneceksin. Kullanımı kolay Python arayüzü, YOLO'yu Python projelerine entegre etmek isteyen herkes için değerli bir kaynaktır ve gelişmiş nesne tespit özelliklerini hızla uygulamana olanak tanır. Hadi başlayalım!
İzle: Ultralytics YOLO'da Uzmanlaşma: Python
Örneğin, kullanıcılar birkaç satır kodla bir modeli yükleyebilir, eğitebilir, doğrulama kümesindeki performansını değerlendirebilir ve hatta ONNX biçimine aktarabilir.
from ultralytics import YOLO
# Sıfırdan yeni bir YOLO modeli oluştur
model = YOLO("yolo26n.yaml")
# Önceden eğitilmiş bir YOLO modeli yükle (eğitim için önerilir)
model = YOLO("yolo26n.pt")
# 'coco8.yaml' veri kümesini kullanarak modeli 3 epoch boyunca eğit
results = model.train(data="coco8.yaml", epochs=3)
# Modelin doğrulama kümesindeki performansını değerlendir
results = model.val()
# Modeli kullanarak bir görüntüde nesne tespiti yap
results = model("https://ultralytics.com/images/bus.jpg")
# Modeli ONNX biçimine aktar
success = model.export(format="onnx")Eğit#
Eğitim kipi, özel bir veri kümesinde YOLO modeli eğitmek için kullanılır. Bu kipte model, belirtilen veri kümesi ve hiperparametrelerle eğitilir. Eğitim sürecinde modelin parametreleri, görüntüdeki nesnelerin sınıflarını ve konumlarını doğru şekilde tahmin edebilmesi için optimize edilir.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # herhangi bir model türü ilet
results = model.train(epochs=5)Doğrula#
Val modu, eğitilmiş bir YOLO modelini doğrulamak için kullanılır. Bu modda model, doğruluğunu ve genelleme performansını ölçmek amacıyla bir doğrulama kümesinde değerlendirilir. Modelin performansını iyileştirmek için hiperparametreleri ayarlamak üzere bu modu kullanabilirsin.
from ultralytics import YOLO
# Bir YOLO modeli yükle
model = YOLO("yolo26n.yaml")
# Modeli eğit
model.train(data="coco8.yaml", epochs=5)
# Eğitim veri kümesinin doğrulama bölümünde doğrulama yap
model.val()Tahmin#
Predict modu, eğitilmiş bir YOLO modeliyle yeni görüntüler veya videolar üzerinde tahmin yapmak için kullanılır. Bu modda model bir kontrol noktası dosyasından yüklenir ve kullanıcı çıkarım yapmak için görüntü veya video sağlayabilir. Model, giriş görüntülerindeki veya videolarındaki nesnelerin sınıflarını ve konumlarını tahmin eder.
import cv2
from PIL import Image
from ultralytics import YOLO
model = YOLO("model.pt")
# tüm biçimleri kabul eder - görüntü/dizin/Path/URL/video/PIL/ndarray. Web kamerası için 0
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # preds'i görüntüle. Tüm YOLO predict bağımsız değişkenlerini kabul eder
# PIL'den
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True) # çizilmiş görüntüleri kaydet
# ndarray'den
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True) # tahminleri etiket olarak kaydet
# PIL/ndarray listesinden
results = model.predict(source=[im1, im2])Dışa aktar#
Export modu, bir YOLO modelini dağıtımda kullanılabilecek bir biçime aktarmak için kullanılır. Bu modda model, diğer yazılım uygulamalarında veya donanım aygıtlarında kullanılabilecek bir biçime dönüştürülür. Bu mod, modeli üretim ortamlarına dağıtırken kullanışlıdır.
Resmî bir YOLO modelini dinamik toplu iş boyutu ve görüntü boyutuyla ONNX biçimine aktar.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)Takip#
Track modu, bir YOLO modeli kullanarak nesneleri gerçek zamanlı izlemek için kullanılır. Bu modda model bir kontrol noktası dosyasından yüklenir ve kullanıcı gerçek zamanlı nesne takibi yapmak için canlı bir video akışı sağlayabilir. Bu mod, gözetim sistemleri veya otonom araçlar gibi uygulamalarda kullanışlıdır.
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.pt") # resmî bir algılama modeli yükle
model = YOLO("yolo26n-seg.pt") # resmî bir segmentasyon modeli yükle
model = YOLO("path/to/best.pt") # özel bir model yükle
# Modelle takip et
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")Kıyaslama#
Benchmark modu, YOLO için çeşitli dışa aktarma biçimlerinin hızını ve doğruluğunu profillemek amacıyla kullanılır. Kıyaslamalar; dışa aktarılan biçimin boyutu, nesne algılama ve segmentasyon için mAP50-95 metrikleri veya sınıflandırma için accuracy_top1 metrikleri ve ONNX, OpenVINO, TensorRT gibi çeşitli dışa aktarma biçimlerinde görüntü başına milisaniye cinsinden çıkarım süresi hakkında bilgi sağlar. Bu bilgiler, kullanıcıların hız ve doğruluk gereksinimlerine göre kendi kullanım alanları için en uygun dışa aktarma biçimini seçmelerine yardımcı olabilir.
Resmî bir YOLO modelini tüm dışa aktarma biçimlerinde kıyasla.
from ultralytics.utils.benchmarks import benchmark
# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)Trainer'ları kullanma#
YOLO model sınıfı, Trainer sınıfları için üst düzey bir sarmalayıcı görevi görür. Her YOLO görevinin, BaseTrainer sınıfından türeyen kendi Trainer sınıfı vardır. Bu mimari, makine öğrenimi iş akışlarında daha fazla esneklik ve özelleştirme olanağı sağlar.
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator
overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}
# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best # best.pt dosyasının yolu
# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)
# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")
# Kesintiye uğrayan bir eğitim çalışmasını son kontrol noktasından sürdür
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()Özel görevleri desteklemek veya araştırma ve geliştirme fikirlerini keşfetmek için Trainer sınıflarını kolayca özelleştirebilirsin. Ultralytics YOLO'nun modüler tasarımı, ister yeni bir bilgisayarlı görü görevi üzerinde çalış ister daha iyi performans için mevcut modelleri ince ayarla, çerçeveyi özel ihtiyaçlarına uyarlamana olanak tanır.
Sık Sorulan Sorular#
Ultralytics YOLO'yu Python projelerine bütünleştirmek kolaydır. Önceden eğitilmiş bir model yükleyebilir veya sıfırdan yeni bir model eğitebilirsin. Başlamak için şunları yap:
from ultralytics import YOLO # Önceden eğitilmiş bir YOLO modeli yükle model = YOLO("yolo26n.pt") # Bir görüntüde nesne algılama yap results = model("https://ultralytics.com/images/bus.jpg") # Sonuçları görselleştir for result in results: result.show()Daha ayrıntılı örnekler için Predict Modu bölümüne bak.
Ultralytics YOLO, farklı makine öğrenimi iş akışlarına yönelik çeşitli modlar sunar. Bunlar şunlardır:
- Train: Özel veri kümeleriyle model eğit.
- Val: Bir doğrulama kümesinde model performansını doğrula.
- Predict: Yeni görüntüler veya video akışları üzerinde tahmin yap.
- Export: Modelleri ONNX ve TensorRT gibi çeşitli biçimlere aktar.
- Track: Video akışlarında gerçek zamanlı nesne takibi yap.
- Benchmark: Farklı yapılandırmalarda model performansını kıyasla.
Her mod, model geliştirme ve dağıtımının farklı aşamalarına yönelik kapsamlı işlevler sunacak şekilde tasarlanmıştır.
Özel bir YOLO modeli eğitmek için veri kümeni ve diğer hiperparametreleri belirtmen gerekir. İşte kısa bir örnek:
from ultralytics import YOLO # YOLO modelini yükle model = YOLO("yolo26n.yaml") # Modeli özel veri kümesiyle eğit model.train(data="path/to/your/dataset.yaml", epochs=10)Eğitimle ilgili daha fazla ayrıntı ve örnek kullanıma bağlantılar için Train Modu sayfamızı ziyaret et.
YOLO modellerini dağıtıma uygun bir biçimde dışa aktarmak
exportişleviyle kolaydır. Örneğin, bir modeli ONNX biçimine aktarabilirsin:from ultralytics import YOLO # YOLO modelini yükle model = YOLO("yolo26n.pt") # Modeli ONNX biçimine aktar model.export(format="onnx")Çeşitli dışa aktarma seçenekleri için Export Modu belgelerine bak.
Evet, YOLO modellerini farklı veri kümelerinde doğrulamak mümkündür. Eğitimden sonra performansı değerlendirmek için doğrulama modunu kullanabilirsin:
from ultralytics import YOLO # Bir YOLO modeli yükle model = YOLO("yolo26n.yaml") # Modeli eğit model.train(data="coco8.yaml", epochs=5) # Modeli farklı bir veri kümesinde doğrula model.val(data="path/to/separate/data.yaml")Ayrıntılı örnekler ve kullanım bilgileri için Val Modu sayfasına bak.