Python Kullanım
YOLO11 Python Kullanım belgelerine hoş geldiniz! Bu kılavuz, nesne algılama, segmentasyon ve sınıflandırma için YOLO11'i Python projelerinize sorunsuz bir şekilde entegre etmenize yardımcı olmak için tasarlanmıştır. Burada, önceden eğitilmiş modelleri nasıl yükleyeceğinizi ve kullanacağınızı, yeni modelleri nasıl eğiteceğinizi ve görüntüler üzerinde tahminleri nasıl gerçekleştireceğinizi öğreneceksiniz. Kullanımı kolay Python arayüzü, YOLO11'i Python projelerine dahil etmek isteyen herkes için değerli bir kaynaktır ve gelişmiş nesne algılama yeteneklerini hızlı bir şekilde uygulamanıza olanak tanır. Haydi başlayalım!
İzle: Mastering Ultralytics YOLO11: Python
Örneğin, kullanıcılar bir modeli yükleyebilir, eğitebilir, bir doğrulama kümesi üzerindeki performansını değerlendirebilir ve hatta sadece birkaç satır kodla ONNX formatına aktarabilir.
Python
from ultralytics import YOLO
# Create a new YOLO model from scratch
model = YOLO("yolo11n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.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")
Tren
Train modu, bir YOLO11 modelini özel bir veri kümesi üzerinde eğitmek için kullanılır. Bu modda model, belirtilen veri kümesi ve hiperparametreler kullanılarak eğitilir. Eğitim süreci, bir görüntüdeki nesnelerin sınıflarını ve konumlarını doğru bir şekilde tahmin edebilmesi için modelin parametrelerinin optimize edilmesini içerir.
Tren
Val
Val modu, eğitildikten sonra bir YOLO11 modelini doğrulamak için kullanılır. Bu modda model, doğruluğunu ve genelleme performansını ölçmek için bir doğrulama kümesi üzerinde değerlendirilir. Bu mod, performansını artırmak için modelin hiperparametrelerini ayarlamak için kullanılabilir.
Val
Tahmin Et
Tahmin modu, yeni görüntüler veya videolar üzerinde eğitilmiş bir YOLO11 modeli kullanarak tahminler 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üleri veya videolarındaki nesnelerin sınıflarını ve konumlarını tahmin eder.
Tahmin Et
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])
# results would be a list of Results object including all the predictions by default
# but be careful as it could occupy a lot memory when there're many images,
# especially the task is segmentation.
# 1. return as a list
results = model.predict(source="folder")
# results would be a generator which is more friendly to memory by setting stream=True
# 2. return as a generator
results = model.predict(source=0, stream=True)
for result in results:
# Detection
result.boxes.xyxy # box with xyxy format, (N, 4)
result.boxes.xywh # box with xywh format, (N, 4)
result.boxes.xyxyn # box with xyxy format but normalized, (N, 4)
result.boxes.xywhn # box with xywh format but normalized, (N, 4)
result.boxes.conf # confidence score, (N, 1)
result.boxes.cls # cls, (N, 1)
# Segmentation
result.masks.data # masks, (N, H, W)
result.masks.xy # x,y segments (pixels), List[segment] * N
result.masks.xyn # x,y segments (normalized), List[segment] * N
# Classification
result.probs # cls prob, (num_class, )
# Each result is composed of torch.Tensor by default,
# in which you can easily use following functionality:
result = result.cuda()
result = result.cpu()
result = result.to("cpu")
result = result.numpy()
İhracat
Dışa aktarma modu, bir YOLO11 modelini dağıtım için kullanılabilecek bir formata aktarmak için kullanılır. Bu modda model, diğer yazılım uygulamaları veya donanım cihazları tarafından kullanılabilecek bir biçime dönüştürülür. Bu mod, modeli üretim ortamlarına dağıtırken kullanışlıdır.
İhracat
Resmi bir YOLO11n modelini dinamik parti boyutu ve görüntü boyutu ile ONNX adresine aktarın.
Parça
İzleme modu, bir YOLO11 modeli kullanarak nesneleri gerçek zamanlı olarak izlemek 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özetleme sistemleri veya sürücüsüz arabalar gibi uygulamalar için kullanışlıdır.
Parça
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load an official detection model
model = YOLO("yolo11n-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")
Benchmark
Kıyaslama modu, YOLO11 için çeşitli dışa aktarma formatlarının hızını ve doğruluğunu profillemek için kullanılır. Kıyaslamalar, dışa aktarılan formatın boyutu, hızı ve doğruluğu hakkında bilgi sağlar. mAP50-95
metrikleri (nesne algılama ve segmentasyon için) veya accuracy_top5
metrikleri (sınıflandırma için) ve ONNX, OpenVINO, TensorRT ve diğerleri gibi çeşitli dışa aktarma biçimlerinde görüntü başına milisaniye cinsinden çıkarım süresi. Bu bilgiler, kullanıcıların hız ve doğruluk gereksinimlerine göre kendi özel kullanım durumları için en uygun dışa aktarma biçimini seçmelerine yardımcı olabilir.
Benchmark
Eğitmenleri Kullanma
YOLO
model sınıfı, Trainer sınıfları üzerinde üst düzey bir sarmalayıcıdır. Her YOLO görevinin, şu sınıftan miras alan kendi eğitmeni vardır BaseTrainer
.
Algılama Eğitmeni Örneği
from ultralytics.models.yolo 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 = detect.DetectionTrainer(overrides=overrides)
Özel görevleri desteklemek veya Ar-Ge fikirlerini keşfetmek için Eğitmenleri kolayca özelleştirebilirsiniz. Özelleştirme hakkında daha fazla bilgi edinin Trainers
, Validators
ve Predictors
Özelleştirme Bölümünde proje ihtiyaçlarınıza uyacak şekilde ayarlayın.
SSS
YOLO11'i nesne algılama için Python projeme nasıl entegre edebilirim?
Ultralytics YOLO11'i Python projelerinize entegre etmek basittir. Önceden eğitilmiş bir modeli yükleyebilir veya sıfırdan yeni bir modeli eğitebilirsiniz. İşte nasıl başlayacağınız:
from ultralytics import YOLO
# Load a pretrained YOLO model
model = YOLO("yolo11n.pt")
# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
for result in results:
result.show()
Tahmin Modu bölümümüzde daha ayrıntılı örnekler görebilirsiniz.
YOLO11'de mevcut olan farklı modlar nelerdir?
Ultralytics YOLO11, farklı makine öğrenimi iş akışlarını karşılamak için çeşitli modlar sunar. Bunlar şunları içerir:
- Tren: Özel veri kümeleri kullanarak bir modeli eğitin.
- Val: Model performansını bir doğrulama seti üzerinde doğrulayın.
- Tahmin Et: Yeni görüntüler veya video akışları hakkında tahminlerde bulunun.
- İhracat: Modelleri ONNX, TensorRT gibi çeşitli formatlara aktarın.
- Parça: Video akışlarında gerçek zamanlı nesne izleme.
- Benchmark: Farklı konfigürasyonlarda kıyaslama modeli performansı.
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 YOLO11 modelini nasıl eğitebilirim?
Özel bir YOLO11 modelini eğitmek için veri kümenizi ve diğer hiperparametreleri belirtmeniz gerekir. İşte hızlı bir örnek:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo11n.yaml")
# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)
Eğitim hakkında daha fazla bilgi ve örnek kullanım bağlantıları için Tren Modu sayfamızı ziyaret edin.
YOLO11 modellerini dağıtım için nasıl dışa aktarabilirim?
YOLO11 modellerini dağıtım için uygun bir formatta dışa aktarmak export
işlevini kullanabilirsiniz. Örneğin, bir modeli ONNX formatında dışa aktarabilirsiniz:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx")
Çeşitli dışa aktarma seçenekleri için Dışa Aktarma Modu belgelerine bakın.
YOLO11 modelimi farklı veri kümeleri üzerinde doğrulayabilir miyim?
Evet, YOLO11 modellerini farklı veri kümeleri üzerinde doğrulamak mümkündür. Eğitimden sonra, performansı değerlendirmek için doğrulama modunu kullanabilirsiniz:
from ultralytics import YOLO
# Load a YOLO11 model
model = YOLO("yolo11n.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 Val Modu sayfasını kontrol edin.