İçeriğe geç

Python Kullanımı

Ultralytics YOLO Python Kullanım belgelerine hoş geldiniz! Bu kılavuz, nesne algılama, segmentasyon ve sınıflandırma için Ultralytics YOLO'yu Python projelerinize sorunsuz bir şekilde entegre etmenize yardımcı olmak üzere 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 nasıl tahminler yapacağınızı öğreneceksiniz. 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 algılama yeteneklerini hızla uygulamanıza olanak tanır. Başlayalım!



İzle: Ultralytics YOLO'da Uzmanlaşmak: Python

Örneğin, kullanıcılar bir modeli yükleyebilir, eğitebilir, bir doğrulama kümesindeki performansını değerlendirebilir ve hatta yalnızca 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")

Eğit

Eğitim modu, özel bir veri kümesinde bir YOLO modelini 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örüntüdeki nesnelerin sınıflarını ve konumlarını doğru bir şekilde tahmin edebilmesi için modelin parametrelerini optimize etmeyi içerir.

Eğit

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # pass any model type
results = model.train(epochs=5)
from ultralytics import YOLO

model = YOLO("yolo11n.yaml")
results = model.train(data="coco8.yaml", epochs=5)
model = YOLO("last.pt")
results = model.train(resume=True)

Eğitim Örnekleri

Doğrula

Val modu, bir YOLO modelini eğitildikten sonra doğrulamak için kullanılır. Bu modda, modelin doğruluğunu ve genelleme performansını ölçmek için bir doğrulama kümesinde değerlendirilir. Bu mod, modelin performansını artırmak için hiperparametrelerini ayarlamak için kullanılabilir.

Doğrula

from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo11n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()
from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo11n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on separate data
model.val(data="path/to/separate/data.yaml")

Doğrulama Örnekleri

Tahmin et

Tahmin modu, yeni resimler veya videolar üzerinde eğitilmiş bir YOLO modeli kullanarak 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 resim veya video sağlayabilir. Model, girdi resimlerindeki veya videolardaki 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()

Tahmin Örnekleri

Dışa aktar

Dışa aktarma modu, bir YOLO 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 formata dönüştürülür. Bu mod, modeli üretim ortamlarına dağıtırken kullanışlıdır.

Dışa aktar

Resmi bir YOLO modelini dinamik toplu iş boyutu ve görüntü boyutu ile ONNX'e aktarın.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx", dynamic=True)

Resmi bir YOLO modelini şuraya aktarın: TensorRT açık device=0 CUDA cihazlarında hızlandırma için.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="engine", device=0)

Dışa Aktarma Örnekleri

İzle

İzleme modu, bir YOLO modeli kullanılarak 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 izleme gerçekleştirmek için canlı bir video akışı sağlayabilir. Bu mod, gözetim sistemleri veya otonom sürüşlü arabalar gibi uygulamalar için kullanışlıdır.

İzle

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")

İzleme Örnekleri

Kıyaslama

Kıyaslama modu YOLO için çeşitli dışa aktarma biçimlerinin hızını ve doğruluğunu profillemek için kullanılır. Kıyaslamalar, dışa aktarılan biçimin boyutu, onun mAP50-95 metrikler (nesne algılama ve segmentasyon için) veya accuracy_top5 metrikler (sınıflandırma için) ve ONNX gibi çeşitli dışa aktarma formatlarında görüntü başına milisaniye cinsinden çıkarım süresi, OpenVINO, TensorRT ve diğerleri. Bu bilgiler, kullanıcıların hız ve doğruluk gereksinimlerine göre belirli kullanım durumları için en uygun dışa aktarım biçimini seçmelerine yardımcı olabilir.

Kıyaslama

Resmi bir YOLO modelini tüm dışa aktarma formatlarında kıyaslayın.

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

Kıyaslama Örnekleri

Eğitmenleri Kullanarak

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, şuradan miras alan kendi eğitmeni vardır: BaseTrainer. Bu mimari, daha fazla esneklik ve özelleştirme sağlar. makine öğrenimi iş akışları.

Tespit Eğiticisi Ö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 = DetectionTrainer(overrides=overrides)

Özel görevleri desteklemek veya araştırma ve geliştirme fikirlerini keşfetmek için Eğitmenleri kolayca özelleştirebilirsiniz. Ultralytics YOLO'nun modüler tasarımı, ister yeni bir bilgisayarla görme görevi üzerinde çalışıyor olun, ister mevcut modelleri daha iyi performans için ince ayar yapıyor olun, çerçeveyi özel ihtiyaçlarınıza göre uyarlamanıza olanak tanır.

Özelleştirme eğitimleri

SSS

Nesne tespiti için YOLO'yu Python projeme nasıl entegre edebilirim?

Ultralytics YOLO'yu python projelerinize entegre etmek basittir. Önceden eğitilmiş bir modeli yükleyebilir veya sıfırdan yeni bir model eğitebilirsiniz. Başlamak için:

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ı örneklere bakın.

YOLO'da bulunan 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ümeleri kullanarak bir model eğitin.
  • Değerlendir: Bir doğrulama kümesinde model performansını doğrulayın.
  • Tahmin Et: Yeni görüntüler veya video akışları üzerinde tahminler yapın.
  • Dışa Aktar: Modelleri ONNX ve TensorRT gibi çeşitli formatlara aktarın.
  • İzle: Video akışlarında gerçek zamanlı nesne takibi.
  • Kıyaslama: Farklı yapılandırmalarda model performansını kıyaslayın.

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ğitirim?

Özel bir YOLO modeli 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 ve örnek kullanımlara ilişkin köprüler hakkında daha fazla bilgi için Eğitim Modu sayfamızı ziyaret edin.

Dağıtım için YOLO modellerini nasıl dışa aktarırım?

YOLO modellerini dağıtıma uygun bir formatta dışa aktarmak export fonksiyonu. Örneğin, bir modeli ONNX biçimine 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.

YOLO modelimi farklı veri kümelerinde doğrulayabilir miyim?

Evet, YOLO modellerini farklı veri kümelerinde doğrulamak mümkündür. Eğitimden sonra, performansı değerlendirmek için doğrulama modunu kullanabilirsiniz:

from ultralytics import YOLO

# Load a YOLO 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ına bakın.



📅 1 yıl önce oluşturuldu ✏️ 3 ay önce güncellendi

Yorumlar