İçeriğe geç

Python Kullanım

YOLOv8 Python Kullanım belgelerine hoş geldiniz! Bu kılavuz, nesne algılama, segmentasyon ve sınıflandırma için YOLOv8 adresini 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ü, YOLOv8 adresini Python projelerine dahil etmek isteyen herkes için değerli bir kaynaktır ve gelişmiş nesne algılama özelliklerini hızlı bir şekilde uygulamanıza olanak tanır. Haydi başlayalım!



İzle: Mastering Ultralytics YOLOv8 : 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('yolov8n.yaml')

# Load a pretrained YOLO model (recommended for training)
model = YOLO('yolov8n.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, özel bir veri kümesi üzerinde bir YOLOv8 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, 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

from ultralytics import YOLO

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

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

Tren Örnekleri

Val

Val modu, eğitildikten sonra bir YOLOv8 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

  from ultralytics import YOLO

  model = YOLO('yolov8n.yaml')
  model.train(data='coco8.yaml', epochs=5)
  model.val()  # It'll automatically evaluate the data you trained.
  from ultralytics import YOLO

  model = YOLO("model.pt")
  # It'll use the data YAML file in model.pt if you don't set data.
  model.val()
  # or you can set the data you want to val
  model.val(data='coco8.yaml')

Val Örnekleri

Tahmin Et

Tahmin modu, yeni görüntüler veya videolar üzerinde eğitilmiş bir YOLOv8 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

from ultralytics import YOLO
from PIL import Image
import cv2

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

Örnekleri Tahmin Et

İhracat

Dışa aktarma modu, bir YOLOv8 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 YOLOv8n modelini dinamik parti boyutu ve görüntü boyutu ile ONNX adresine aktarın.

  from ultralytics import YOLO

  model = YOLO('yolov8n.pt')
  model.export(format='onnx', dynamic=True)

Resmi bir YOLOv8n modelini TensorRT adresine aktarın device=0 CUDA cihazlarında hızlandırma için.

  from ultralytics import YOLO

  model = YOLO('yolov8n.pt')
  model.export(format='onnx', device=0)

İhracat Örnekleri

Parça

İzleme modu, bir YOLOv8 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('yolov8n.pt')  # load an official detection model
model = YOLO('yolov8n-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")

Parça Örnekleri

Benchmark

Benchmark modu YOLOv8 için çeşitli dışa aktarma formatlarının hız ve doğruluk profilini çıkarmak 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

Resmi bir YOLOv8n modelini tüm dışa aktarma biçimlerinde karşılaştırın.

from ultralytics.utils.benchmarks import benchmark

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

Benchmark Örnekleri

Kaşif

Explorer API, diğer özelliklerin yanı sıra gelişmiş semantik, vektör benzerliği ve SQL araması ile veri kümelerini keşfetmek için kullanılabilir. Ayrıca, LLM'lerin gücünden yararlanarak doğal dil kullanarak içeriklerine göre görüntülerin aranmasını da sağlar. Explorer API, veri kümelerinizle ilgili içgörüler elde etmek için kendi veri kümesi keşif not defterlerinizi veya komut dosyalarınızı yazmanıza olanak tanır.

Explorer Kullanarak Anlamsal Arama

from ultralytics import Explorer

# create an Explorer object
exp = Explorer(data='coco8.yaml', model='yolov8n.pt')
exp.create_embeddings_table()

similar = exp.get_similar(img='https://ultralytics.com/images/bus.jpg', limit=10)
print(similar.head())

# Search using multiple indices
similar = exp.get_similar(
                        img=['https://ultralytics.com/images/bus.jpg',
                             'https://ultralytics.com/images/bus.jpg'],
                        limit=10
                        )
print(similar.head())
from ultralytics import Explorer

# create an Explorer object
exp = Explorer(data='coco8.yaml', model='yolov8n.pt')
exp.create_embeddings_table()

similar = exp.get_similar(idx=1, limit=10)
print(similar.head())

# Search using multiple indices
similar = exp.get_similar(idx=[1,10], limit=10)
print(similar.head())

Kaşif

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

```python
from ultralytics.models.yolo import DetectionTrainer, DetectionValidator, DetectionPredictor

# 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.

Özelleştirme eğitimleri



Oluşturuldu 2023-11-12, Güncellendi 2024-04-18
Yazarlar: glenn-jocher (9), AyushExel (1), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)

Yorumlar