Python Kullanımı#
Ultralytics YOLO Python Kullanım belgelerine hoş geldin! Bu kılavuz, Ultralytics YOLO'yu Python projelerine sorunsuz bir şekilde entegre etmene yardımcı olmak için nesne tespiti, örnek bölütleme, anlamsal bölütleme, derinlik tahmini ve sınıflandırma odaklı olarak tasarlanmıştır. Burada önceden eğitilmiş modelleri nasıl yükleyip kullanacağını, yeni modelleri nasıl eğiteceğini ve görseller üzerinde tahminler gerçekleştireceğini öğreneceksin. Kullanımı kolay Python arayüzü, YOLO'yu Python projelerine dahil etmek isteyen herkes için değerli bir kaynaktır ve gelişmiş nesne tespiti yeteneklerini hızlı bir şekilde uygulamana olanak tanır. Hadi başlayalım!
Watch: Mastering Ultralytics YOLO: Python
Örneğin kullanıcılar yalnızca birkaç satır kodla bir model yükleyebilir, eğitebilir, bir doğrulama kümesi üzerindeki performansını değerlendirebilir ve hatta modeli ONNX formatına dışarı aktarabilir.
from ultralytics import YOLO
# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")
# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)
# Evaluate the model's performance on the validation set
results = model.val()
# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")
# Export the model to ONNX format
success = model.export(format="onnx")Eğit (Train)#
Eğitim modu, özel bir veri kümesi üzerinde bir YOLO modeli eğitmek için kullanılır. Bu modda model, belirtilen veri kümesi ve hiperparametreler kullanılarak eğitilir. Eğitim süreci, modelin bir görseldeki nesnelerin sınıflarını ve konumlarını doğru bir şekilde tahmin edebilmesi için modelin parametrelerini optimize etmeyi içerir.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)Doğrula (Val)#
Doğrulama modu, eğitildikten sonra bir YOLO modelini doğrulamak için kullanılır. Bu modda model, doğruluk ve genelleştirme performansını ölçmek için bir doğrulama kümesi üzerinde değerlendirilir. Bu mod, modelin performansını artırmak için hiperparametrelerini ince ayar yapmak amacıyla kullanılabilir.
from ultralytics import YOLO
# Load a YOLO model
model = YOLO("yolo26n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=5)
# Validate on training data
model.val()Tahmin Et (Predict)#
Tahmin modu, eğitilmiş bir YOLO modelini kullanarak yeni görseller veya videolar üzerinde tahminler yapmak için kullanılır. Bu modda model bir kontrol noktası dosyasından yüklenir ve kullanıcı çıkarım gerçekleştirmek için görseller veya videolar sağlayabilir. Model, giriş görsellerindeki 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")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments
# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True) # save plotted images
# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True) # save predictions as labels
# from list of PIL/ndarray
results = model.predict(source=[im1, im2])Dışa Aktar (Export)#
Dışarı aktarma modu, bir YOLO modelini dağıtım için kullanılabilir bir forma dışarı aktarmak amacıyla kullanılır. Bu modda model, diğer yazılım uygulamaları veya donanım cihazları tarafından kullanılabilen bir formata dönüştürülür. Bu mod, model üretim ortamlarına dağıtılırken faydalıdır.
Resmi bir YOLO modelini dinamik yığın boyutu ve görsel boyutu ile ONNX formatına aktar.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)Takip et#
Takip modu, bir YOLO modeli kullanarak nesneleri gerçek zamanlı olarak takip etmek için kullanılır. Bu modda model bir kontrol noktası dosyasından yüklenir ve kullanıcı gerçek zamanlı nesne takibi gerçekleştirmek için canlı bir video akışı sağlayabilir. Bu mod, gözetim sistemleri veya sürücüsüz arabalar gibi uygulamalar için kullanışlıdır.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official detection model
model = YOLO("yolo26n-seg.pt") # load an official segmentation model
model = YOLO("path/to/best.pt") # load a custom model
# Track with the model
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#
Kıyaslama modu, YOLO için çeşitli dışarı aktarma formatlarının hızını ve doğruluğunu profillemek amacıyla kullanılır. Kıyaslamalar; dışarı aktarılan formatın boyutu, nesne tespiti ve bölütleme için mAP50-95 metrikleri veya sınıflandırma için accuracy_top1 metrikleri ile ONNX, OpenVINO, TensorRT ve diğerleri gibi çeşitli dışarı aktarma formatları genelinde görsel başına milisaniye cinsinden çıkarım süresi hakkında bilgi sağlar. Bu bilgi, kullanıcıların hız ve doğruluk gereksinimlerine göre özel kullanım senaryoları için en uygun dışarı aktarma formatını seçmesine yardımcı olabilir.
Resmi bir YOLO modelini tüm dışa aktarma formatlarında kıyasla.
from ultralytics.utils.benchmarks import benchmark
# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)Eğiticileri Kullanma#
YOLO model sınıfı, Eğitmen 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üretilen kendine ait bir eğitmeni vardır. Bu mimari, makine öğrenimi iş akışlarında daha büyük esneklik ve özelleştirme sağlar.
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator
# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best
# Validator
val = DetectionValidator(args=...)
val(model=trained_model)
# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)
# resume from last weight
overrides["resume"] = trainer.last
trainer = DetectionTrainer(overrides=overrides)Özel görevleri desteklemek veya araştırma ve geliştirme fikirlerini keşfetmek için Eğitmenleri kolayca özelleştirebilirsin. Ultralytics YOLO'nun modüler tasarımı; ister yeni bir bilgisayarlı görü görevi üzerinde çalışıyor ol ister daha iyi performans için mevcut modellerde ince ayar yapıyor ol, çerçeveyi kendi özel ihtiyaçlarına uyarlamana olanak tanır.
SSS#
YOLO'yu nesne algılama için Python projeme nasıl entegre edebilirim?#
Ultralytics YOLO'yu Python projelerine entegre etmek basittir. Önceden eğitilmiş bir modeli yükleyebilir veya sıfırdan yeni bir model eğitebilirsin. İşte başlaman için gerekenler:
from ultralytics import YOLO
# Load a pretrained YOLO model
model = YOLO("yolo26n.pt")
# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
for result in results:
result.show()Daha ayrıntılı örnekleri Tahmin Modu bölümümüzde inceleyebilirsin.
YOLO'da mevcut olan farklı modlar nelerdir?#
Ultralytics YOLO, farklı makine öğrenimi iş akışlarına hitap etmek için çeşitli modlar sunar. Bunlar şunları içerir:
- Eğit: Özel veri kümelerini kullanarak bir model eğit.
- Doğrula: Model performansını bir doğrulama kümesi üzerinde doğrula.
- Tahmin et: Yeni görseller veya video akışları üzerinde tahminler yap.
- Dışarı aktar: Modelleri ONNX ve TensorRT gibi çeşitli formatlara aktar.
- Takip et: Video akışlarında gerçek zamanlı nesne takibi.
- Kıyasla: Farklı yapılandırmalarda model performansını kıyasla.
Her mod, model geliştirme ve dağıtımının farklı aşamaları için kapsamlı işlevler sağlamak üzere tasarlanmıştır.
Veri kümemi kullanarak özel bir YOLO modelini nasıl eğitebilirim?#
Özel bir YOLO modeli eğitmek için veri kümeni ve diğer hiperparametreleri belirtmen gerekir. İşte hızlı bir örnek:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo26n.yaml")
# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)Eğitim hakkında daha fazla ayrıntı ve örnek kullanımlara bağlantılar için Eğitim Modu sayfamızı ziyaret et.
YOLO modellerini dağıtım için nasıl dışa aktarırım?#
YOLO modellerini dağıtıma uygun bir formatta dışarı aktarmak export fonksiyonu ile oldukça basittir. Örneğin, bir modeli ONNX formatına dışarı aktarabilirsin:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
model.export(format="onnx")Çeşitli dışarı aktarma seçenekleri için Dışarı aktarma Modu belgelerine göz at.
YOLO modelimi farklı veri kümeleri üzerinde doğrulayabilir miyim?#
Evet, YOLO modellerini farklı veri kümeleri üzerinde doğrulamak mümkündür. Eğitimden sonra, performansı değerlendirmek için doğrulama modunu kullanabilirsin:
from ultralytics import YOLO
# Load a YOLO model
model = YOLO("yolo26n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=5)
# Validate the model on a different dataset
model.val(data="path/to/separate/data.yaml")Ayrıntılı örnekler ve kullanım için Doğrulama Modu sayfasını kontrol et.