İçeriğe geç

Ultralytics YOLO ile Model Tahmini

Ultralytics YOLO ekosistemi ve entegrasyonları

Giriş

Makine öğrenimi ve bilgisayar görüşü dünyasında, görsel verilerden anlam çıkarma işlemine 'çıkarım' veya 'tahmin' denir. Ultralytics YOLO11, çok çeşitli veri kaynaklarında yüksek performanslı, gerçek zamanlı çıkarım için uyarlanmış tahmin modu olarak bilinen güçlü bir özellik sunar.



İzle: Özel Projeler için Ultralytics YOLO Modelinden Çıktılar Nasıl Çıkarılır?

Gerçek Dünya Uygulamaları

ÜretimSporGüvenlik
Araç Yedek Parça TespitiFutbol Oyuncusu Tespitiİnsan Düşme Tespiti
Araç Yedek Parça TespitiFutbol Oyuncusu Tespitiİnsan Düşme Tespiti

Çıkarım için Neden Ultralytics YOLO Kullanılır?

İşte çeşitli çıkarım ihtiyaçlarınız için neden YOLO11'in tahmin modunu düşünmeniz gerektiği:

  • Çok yönlülük: Görüntüler, videolar ve hatta canlı yayınlar üzerinde çıkarım yapma yeteneğine sahiptir.
  • Performans: Doğruluktan ödün vermeden gerçek zamanlı, yüksek hızlı işleme için tasarlanmıştır.
  • Kullanım Kolaylığı: Hızlı dağıtım ve test için sezgisel Python ve CLI arayüzleri.
  • Yüksek Oranda Özelleştirilebilir: Modelin çıkarım davranışını özel gereksinimlerinize göre ayarlamak için çeşitli ayarlar ve parametreler.

Tahmin Modunun Temel Özellikleri

YOLO11'in tahmin modu, sağlam ve çok yönlü olacak şekilde tasarlanmıştır ve şu özelliklere sahiptir:

  • Çoklu Veri Kaynağı Uyumluluğu: Verileriniz ister tek tek görüntüler, ister görüntü koleksiyonu, video dosyaları veya gerçek zamanlı video akışları şeklinde olsun, tahmin modu sizi kapsar.
  • Akış Modu: Bellek açısından verimli bir üreteç oluşturmak için akış özelliğini kullanın: Results nesneler. Bunu ayarlayarak etkinleştirin stream=True tahmin edicinin çağırma yönteminde.
  • Toplu İşleme: Birden fazla görüntü veya video karesini tek bir grupta işleyerek toplam çıkarım süresini daha da kısaltın.
  • Entegrasyon Dostu: Esnek API'si sayesinde mevcut veri işlem hatları ve diğer yazılım bileşenleriyle kolayca entegre olur.

Ultralytics YOLO modelleri, bir python listesi veya Results nesneleri veya bellek açısından verimli bir Results olduğunda nesneler stream=True çıkarım sırasında modele iletilir:

Tahmin et

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # pretrained YOLO11n model

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"])  # return a list of Results objects

# Process results list
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk
from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # pretrained YOLO11n model

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"], stream=True)  # return a generator of Results objects

# Process results generator
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk

Çıkarım Kaynakları

YOLO11, aşağıdaki tabloda gösterildiği gibi çıkarım için farklı türde girdi kaynaklarını işleyebilir. Kaynaklar, statik görüntüler, video akışları ve çeşitli veri formatlarını içerir. Tablo ayrıca, her kaynağın bağımsız değişkeniyle akış modunda kullanılıp kullanılamayacağını da gösterir. stream=True ✅ Akış modu, tüm çerçeveleri belleğe yüklemek yerine bir sonuç üreteci oluşturduğu için videoları veya canlı yayınları işlemek için faydalıdır.

İpucu

Kullanım stream=True belleği verimli bir şekilde yönetmek için uzun videoları veya büyük veri kümelerini işlemek için. Ne zaman stream=False, tüm kareler veya veri noktaları için sonuçlar bellekte saklanır; bu da hızla artabilir ve büyük girişler için bellek yetersiz hatalarına neden olabilir. Aksine, stream=True bir üreteç kullanır, bu da yalnızca mevcut kare veya veri noktasının sonuçlarını bellekte tutar, bu da bellek tüketimini önemli ölçüde azaltır ve bellek yetersizliği sorunlarını önler.

KaynakÖrnekTürNotlar
görüntü'image.jpg'str veya PathTek resim dosyası.
URL'https://ultralytics.com/images/bus.jpg'strBir resmin URL'si.
ekran görüntüsü'screen'strEkran görüntüsü yakalayın.
PILImage.open('image.jpg')PIL.ImageRGB kanallarıyla HWC formatı.
OpenCVcv2.imread('image.jpg')np.ndarrayBGR kanallarıyla HWC formatı uint8 (0-255).
numpynp.zeros((640,1280,3))np.ndarrayBGR kanallarıyla HWC formatı uint8 (0-255).
torchtorch.zeros(16,3,320,640)torch.TensorRGB kanallarıyla BCHW formatı float32 (0.0-1.0).
CSV'sources.csv'str veya PathGörüntülerin, videoların veya dizinlerin yollarını içeren CSV dosyası.
video ✅'video.mp4'str veya PathMP4, AVI vb. formatlarda video dosyası
dizini ✅'path/'str veya PathGörüntüler veya videolar içeren bir dizinin yolu.
glob ✅'path/*.jpg'strBirden çok dosyayı eşleştirmek için Glob deseni. Şunu kullanın: * karakteri joker karakter olarak.
YouTube ✅'https://youtu.be/LNwODJXcvt4'strBir YouTube videosunun URL'si.
akış ✅'rtsp://example.com/media.mp4'strRTSP, RTMP, TCP gibi akış protokolleri veya bir IP adresi için URL.
çoklu akış ✅'list.streams'str veya Path*.streams satır başına bir akış URL'si içeren metin dosyası, yani 8 akış 8 toplu iş boyutunda çalışacaktır.
web kamerası ✅0intÜzerinde çıkarım yapılacak bağlı kamera cihazının dizini.

Aşağıda, her kaynak türünü kullanmak için kod örnekleri bulunmaktadır:

Tahmin kaynakları

Bir resim dosyası üzerinde çıkarım çalıştırın.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to the image file
source = "path/to/image.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

Ekran görüntüsü olarak mevcut ekran içeriği üzerinde çıkarım çalıştırın.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define current screenshot as source
source = "screen"

# Run inference on the source
results = model(source)  # list of Results objects

URL aracılığıyla uzaktan barındırılan bir resim veya video üzerinde çıkarım çalıştırın.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define remote image or video URL
source = "https://ultralytics.com/images/bus.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

Python Görüntüleme Kütüphanesi (PIL) ile açılan bir resim üzerinde çıkarım çalıştırın.

from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Open an image using PIL
source = Image.open("path/to/image.jpg")

# Run inference on the source
results = model(source)  # list of Results objects

OpenCV ile okunan bir resim üzerinde çıkarım çalıştırın.

import cv2

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Read an image using OpenCV
source = cv2.imread("path/to/image.jpg")

# Run inference on the source
results = model(source)  # list of Results objects

Bir numpy dizisi olarak temsil edilen bir resim üzerinde çıkarım çalıştırın.

import numpy as np

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Create a random numpy array of HWC shape (640, 640, 3) with values in range [0, 255] and type uint8
source = np.random.randint(low=0, high=255, size=(640, 640, 3), dtype="uint8")

# Run inference on the source
results = model(source)  # list of Results objects

PyTorch tensörü olarak temsil edilen bir resim üzerinde çıkarım çalıştırın.

import torch

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Create a random torch tensor of BCHW shape (1, 3, 640, 640) with values in range [0, 1] and type float32
source = torch.rand(1, 3, 640, 640, dtype=torch.float32)

# Run inference on the source
results = model(source)  # list of Results objects

Bir CSV dosyasında listelenen resimler, URL'ler, videolar ve dizinlerden oluşan bir koleksiyon üzerinde çıkarım çalıştırın.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define a path to a CSV file with images, URLs, videos and directories
source = "path/to/file.csv"

# Run inference on the source
results = model(source)  # list of Results objects

Bir video dosyası üzerinde çıkarım çalıştırın. Kullanarak stream=True, bellek kullanımını azaltmak için bir Sonuç nesnesi oluşturucu oluşturabilirsiniz.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to video file
source = "path/to/video.mp4"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

Bir dizindeki tüm resimler ve videolar üzerinde çıkarım çalıştırın. Alt dizinlerdeki varlıkları dahil etmek için aşağıdaki gibi bir glob kalıbı kullanın path/to/dir/**/*.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to directory containing images and videos for inference
source = "path/to/dir"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

Bir glob ifadesiyle eşleşen tüm resimler ve videolar üzerinde çıkarım çalıştırın: * karakterler.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define a glob search for all JPG files in a directory
source = "path/to/dir/*.jpg"

# OR define a recursive glob search for all JPG files including subdirectories
source = "path/to/dir/**/*.jpg"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

Bir YouTube videosu üzerinde çıkarım çalıştırın. Kullanarak stream=True, uzun videolar için bellek kullanımını azaltmak amacıyla bir Sonuç nesnesi oluşturucu oluşturabilirsiniz.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define source as YouTube video URL
source = "https://youtu.be/LNwODJXcvt4"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

RTSP, RTMP, TCP veya IP adresi protokollerini kullanarak canlı video akışlarında çıkarım çalıştırmak için akış modunu kullanın. Tek bir akış sağlanırsa, model çıkarımı şu şekilde çalıştırır: yığın boyutu 1'in. Birden çok akış için bir .streams metin dosyası, toplu çıkarım gerçekleştirmek için kullanılabilir; burada toplu iş boyutu, sağlanan akış sayısıyla belirlenir (örneğin, 8 akış için 8 toplu iş boyutu).

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Single stream with batch-size 1 inference
source = "rtsp://example.com/media.mp4"  # RTSP, RTMP, TCP, or IP streaming address

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

Tek akış kullanımı için, toplu iş boyutu varsayılan olarak 1'e ayarlanmıştır ve video akışının verimli bir şekilde gerçek zamanlı işlenmesini sağlar.

Aynı anda birden fazla video akışını işlemek için şunu kullanın: .streams satır başına bir kaynak içeren metin dosyası. Model, grup boyutunun akış sayısına eşit olduğu gruplanmış çıkarımı çalıştıracaktır. Bu kurulum, aynı anda birden fazla beslemenin verimli bir şekilde işlenmesini sağlar.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Multiple streams with batched inference (e.g., batch-size 8 for 8 streams)
source = "path/to/list.streams"  # *.streams text file with one streaming address per line

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

Örnek .streams metin dosyası:

rtsp://example.com/media1.mp4
rtsp://example.com/media2.mp4
rtmp://example2.com/live
tcp://192.168.1.100:554
...

Dosyadaki her satır bir akış kaynağını temsil eder ve aynı anda birkaç video akışını izlemenize ve çıkarım yapmanıza olanak tanır.

Belirli bir kameranın dizinini ileterek bağlı bir kamera cihazında çıkarım çalıştırabilirsiniz: source.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on the source
results = model(source=0, stream=True)  # generator of Results objects

Çıkarım Argümanları

model.predict() çıkarım zamanında varsayılanları geçersiz kılmak için iletilebilen birden çok argümanı kabul eder:

Not

Ultralytics varsayılan olarak çıkarım sırasında minimum dolgu kullanır (rect=True). Bu modda, her görüntünün kısa kenarı, modelin maksimum adımına bölünebilir hale getirmek için gerektiği kadar doldurulur, bunun yerine tam imgsz. Bir grup görüntü üzerinde çıkarım yaparken, minimal dolgu yalnızca tüm görüntülerin aynı boyutta olması durumunda çalışır. Aksi takdirde, görüntüler her iki kenarı da eşit olan bir kare şekline eşit olarak doldurulur. imgsz.

  • batch=1kullanarak rect varsayılan olarak dolgu.
  • batch>1kullanarak rect dolgu yalnızca bir partideki tüm görüntülerin boyutu aynıysa, aksi takdirde kare dolgu kullanarak imgsz.

Örnek

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on 'bus.jpg' with arguments
model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.5)
# Run inference on 'bus.jpg'
yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'

Çıkarım argümanları:

ArgümanTürVarsayılanAçıklama
sourcestr'ultralytics/assets'Çıkarım için veri kaynağını belirtir. Bir resim yolu, video dosyası, dizin, URL veya canlı yayınlar için cihaz kimliği olabilir. Farklı türde girdilerde esnek uygulamaya olanak tanıyan çok çeşitli formatları ve kaynakları destekler.
conffloat0.25Algılamalar için minimum güven eşiğini ayarlar. Bu eşiğin altında güvenle algılanan nesneler dikkate alınmaz. Bu değeri ayarlamak, yanlış pozitifleri azaltmaya yardımcı olabilir.
ioufloat0.7Non-Maximum Suppression (NMS) için Kesişim Üzerinden Birleşim (IoU) eşiği. Daha düşük değerler, örtüşen kutuları ortadan kaldırarak daha az algılama ile sonuçlanır ve bu da yinelenenleri azaltmak için kullanışlıdır.
imgszint veya tuple640Çıkarım için resim boyutunu tanımlar. Tek bir tamsayı olabilir 640 kare yeniden boyutlandırma veya (yükseklik, genişlik) demeti için. Doğru boyutlandırma, algılamayı iyileştirebilir doğruluğu ve işleme hızı.
rectboolTrueEtkinleştirilirse, çıkarım hızını artırmak için görüntünün kısa kenarını stride ile bölünebilir olana kadar minimum düzeyde doldurur. Devre dışı bırakılırsa, çıkarım sırasında görüntüyü kare olacak şekilde doldurur.
halfboolFalseYarı-duyarlıklı (FP16) çıkarımını etkinleştirir; bu, desteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilir.
devicestrNoneÇıkarım için cihazı belirtir (örn. cpu, cuda:0 veya 0). Kullanıcıların model yürütme için CPU, belirli bir GPU veya diğer işlem cihazları arasında seçim yapmasına olanak tanır.
batchint1Çıkarım için toplu iş boyutunu belirtir (yalnızca kaynak olduğunda çalışır) bir dizin, video dosyası veya .txt dosyası). Daha büyük bir toplu iş boyutu, daha yüksek verim sağlayarak çıkarım için gereken toplam süreyi kısaltabilir.
max_detint300Görüntü başına izin verilen maksimum algılama sayısı. Modelin tek bir çıkarımda algılayabileceği toplam nesne sayısını sınırlar ve yoğun sahnelerde aşırı çıktıları önler.
vid_strideint1Video girişleri için çerçeve adımı. Zamansal çözünürlük pahasına işlemeyi hızlandırmak için videolardaki karelerin atlanmasına olanak tanır. 1 değeri her kareyi işler, daha yüksek değerler kareleri atlar.
stream_bufferboolFalseVideo akışları için gelen çerçevelerin sıraya alınıp alınmayacağını belirler. Eğer False, eski çerçeveler yeni çerçevelere yer açmak için bırakılır (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer True, hiçbir çerçevenin atlanmamasını sağlamak için yeni çerçeveleri bir arabelleğe alır, ancak çıkarım FPS'si akış FPS'sinden düşükse gecikmeye neden olur.
visualizeboolFalseModelin ne "gördüğüne" dair içgörüler sağlayarak, çıkarım sırasında model özelliklerinin görselleştirilmesini etkinleştirir. Hata ayıklama ve model yorumlama için kullanışlıdır.
augmentboolFalseTahminler için test zamanı artırmayı (TTA) etkinleştirir, bu da çıkarım hızı pahasına algılama sağlamlığını potansiyel olarak artırır.
agnostic_nmsboolFalseSınıf-agnostik Non-Maximum Suppression'ı (NMS) etkinleştirir, bu da farklı sınıfların örtüşen kutularını birleştirir. Sınıf örtüşmesinin yaygın olduğu çok sınıflı algılama senaryolarında kullanışlıdır.
classeslist[int]NoneTahminleri bir dizi sınıf kimliğine filtreler. Yalnızca belirtilen sınıflara ait algılamalar döndürülür. Çok sınıflı algılama görevlerinde ilgili nesnelere odaklanmak için kullanışlıdır.
retina_masksboolFalseYüksek çözünürlüklü segmentasyon maskeleri döndürür. Döndürülen maskeler (masks.data), etkinleştirilirse orijinal görüntü boyutuna eşleşecektir. Devre dışı bırakılırsa, çıkarım sırasında kullanılan görüntü boyutuna sahip olurlar.
embedlist[int]NoneÖznitelik vektörlerini veya gömme (embedding) işlemlerini çıkarmak için katmanları belirtir. Kümeleme veya benzerlik araması gibi sonraki görevler için kullanışlıdır.
projectstrNoneTahmin çıktıları kaydedilirse proje dizininin adı save etkinleştirildi.
namestrNoneTahmin çalıştırmasının adı. Proje klasörü içinde bir alt dizin oluşturmak için kullanılır; tahmin çıktıları burada saklanırsa save etkinleştirildi.
streamboolFalseTüm çerçeveleri aynı anda belleğe yüklemek yerine, Sonuç nesnelerinin bir üretecinin döndürülmesiyle uzun videolar veya çok sayıda görüntü için bellek açısından verimli işlemeyi etkinleştirir.
verboseboolTrueTahmin süreci hakkında gerçek zamanlı geri bildirim sağlayarak, terminalde ayrıntılı çıkarım günlüklerinin görüntülenip görüntülenmeyeceğini kontrol eder.
compilebool veya strFalsePyTorch 2.x'i etkinleştirir torch.compile ile grafik derleme backend='inductor'. Kabul Ediyor True"default", False → devre dışı bırakır veya aşağıdaki gibi bir dize modu "default", "reduce-overhead", "max-autotune-no-cudagraphs". Desteklenmezse bir uyarı ile istekliye geri döner.

Görselleştirme argümanları:

ArgümanTürVarsayılanAçıklama
showboolFalseEğer True, ek açıklamalı görüntüleri veya videoları bir pencerede görüntüler. Geliştirme veya test sırasında anında görsel geri bildirim için kullanışlıdır.
saveboolFalse or TrueAçıklamalı görüntülerin veya videoların dosyalara kaydedilmesini sağlar. Dokümantasyon, daha fazla analiz veya sonuçları paylaşmak için kullanışlıdır. CLI kullanıldığında varsayılan değer True, Python'da kullanıldığında False'dir.
save_framesboolFalseVideoları işlerken, tek tek kareleri görüntü olarak kaydeder. Belirli kareleri çıkarmak veya ayrıntılı kare kare analizi için kullanışlıdır.
save_txtboolFalseAlgılama sonuçlarını şu formatta bir metin dosyasına kaydeder: [class] [x_center] [y_center] [width] [height] [confidence]Diğer analiz araçlarıyla entegrasyon için kullanışlıdır.
save_confboolFalseKaydedilen metin dosyalarına güvenilirlik skorlarını dahil eder. İşlem sonrası ve analiz için mevcut ayrıntıları geliştirir.
save_cropboolFalseAlgılamaların kırpılmış görüntülerini kaydeder. Veri kümesi artırma, analiz veya belirli nesneler için odaklanmış veri kümeleri oluşturmak için kullanışlıdır.
show_labelsboolTrueGörsel çıktıdaki her algılama için etiketleri görüntüler. Algılanan nesnelerin anında anlaşılmasını sağlar.
show_confboolTrueEtiketin yanında her algılama için güvenilirlik puanını görüntüler. Modelin her algılama için kesinliği hakkında fikir verir.
show_boxesboolTrueAlgılanan nesnelerin etrafına sınırlayıcı kutular çizer. Görüntülerdeki veya video karelerindeki nesnelerin görsel olarak tanımlanması ve konumlandırılması için önemlidir.
line_widthNone or intNoneSınırlayıcı kutuların çizgi genişliğini belirtir. Eğer None, çizgi genişliği, görüntü boyutuna göre otomatik olarak ayarlanır. Netlik için görsel özelleştirme sağlar.

Görüntü ve Video Biçimleri

YOLO11, ultralytics/data/utils.py içinde belirtildiği gibi çeşitli resim ve video formatlarını destekler. Geçerli sonekler ve örnek tahmin komutları için aşağıdaki tablolara bakın.

Görüntüler

Aşağıdaki tablo, geçerli Ultralytics görüntü formatlarını içermektedir.

Not

HEIC resimleri yalnızca çıkarım için desteklenir, eğitim için desteklenmez.

Görüntü UzantılarıÖrnek Tahmin KomutuReferans
.bmpyolo predict source=image.bmpMicrosoft BMP Dosya Formatı
.dngyolo predict source=image.dngAdobe DNG
.jpegyolo predict source=image.jpegJPEG
.jpgyolo predict source=image.jpgJPEG
.mpoyolo predict source=image.mpoÇoklu Resim Nesnesi
.pngyolo predict source=image.pngTaşınabilir Ağ Grafikleri
.tifyolo predict source=image.tifEtiket Görüntü Dosyası Biçimi
.tiffyolo predict source=image.tiffEtiket Görüntü Dosyası Biçimi
.webpyolo predict source=image.webpWebP
.pfmyolo predict source=image.pfmTaşınabilir FloatMap
.HEICyolo predict source=image.HEICYüksek Verimli Görüntü Formatı

Videolar

Aşağıdaki tabloda geçerli Ultralytics video formatları yer almaktadır.

Video UzantılarıÖrnek Tahmin KomutuReferans
.asfyolo predict source=video.asfGelişmiş Sistemler Formatı
.aviyolo predict source=video.aviSes Video Çoklu Ortamı
.gifyolo predict source=video.gifGrafik Değişim Biçimi
.m4vyolo predict source=video.m4vMPEG-4 Bölüm 14
.mkvyolo predict source=video.mkvMatroska
.movyolo predict source=video.movQuickTime Dosya Biçimi
.mp4yolo predict source=video.mp4MPEG-4 Bölüm 14 - Vikipedi
.mpegyolo predict source=video.mpegMPEG-1 Bölüm 2
.mpgyolo predict source=video.mpgMPEG-1 Bölüm 2
.tsyolo predict source=video.tsMPEG Aktarım Akışı
.wmvyolo predict source=video.wmvWindows Media Video
.webmyolo predict source=video.webmWebM Projesi

Sonuçlarla Çalışmak

Tüm Ultralytics predict() çağrıları bir listesini döndürecektir. Results nesneler:

Sonuçlar

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
results = model(
    [
        "https://ultralytics.com/images/bus.jpg",
        "https://ultralytics.com/images/zidane.jpg",
    ]
)  # batch inference

Results nesneleri aşağıdaki özelliklere sahiptir:

ÖzellikTürAçıklama
orig_imgnp.ndarrayBir numpy dizisi olarak orijinal görüntü.
orig_shapetupleOrijinal görüntü şekli (yükseklik, genişlik) biçiminde.
boxesBoxes, optionalAlgılama sınırlayıcı kutularını içeren bir Boxes nesnesi.
masksMasks, optionalAlgılama maskelerini içeren bir Maskeler nesnesi.
probsProbs, optionalSınıflandırma görevi için her sınıfın olasılıklarını içeren bir Olasılıklar nesnesi.
keypointsKeypoints, optionalHer nesne için algılanan anahtar noktaları içeren bir Keypoints nesnesi.
obbOBB, optionalYönlendirilmiş sınırlayıcı kutular içeren bir OBB nesnesi.
speeddictGörüntü başına milisaniye cinsinden ön işleme, çıkarım ve son işleme hızlarının bir sözlüğü.
namesdictSınıf indekslerini sınıf adlarına eşleyen bir sözlük.
pathstrGörüntü dosyasının yolu.
save_dirstr, optionalSonuçları kaydetmek için dizin.

Results nesneleri aşağıdaki yöntemlere sahiptir:

MetotDönüş TürüAçıklama
update()NoneSonuçlar nesnesini yeni algılama verileriyle (kutular, maskeler, olasılıklar, obb, anahtar noktaları) günceller.
cpu()ResultsTüm tensorleri CPU belleğine taşınmış bir Sonuçlar nesnesinin bir kopyasını döndürür.
numpy()ResultsTüm tensorleri numpy dizilerine dönüştürülmüş bir Sonuçlar nesnesinin bir kopyasını döndürür.
cuda()ResultsTüm tensorleri GPU belleğine taşınmış bir Sonuçlar nesnesinin bir kopyasını döndürür.
to()ResultsTensorleri belirtilen aygıta ve dtype'a taşınmış bir Sonuçlar nesnesinin bir kopyasını döndürür.
new()ResultsAynı resim, yol, adlar ve hız özelliklerine sahip yeni bir Sonuçlar nesnesi oluşturur.
plot()np.ndarrayBir RGB giriş görüntüsü üzerinde algılama sonuçlarını çizer ve açıklamalı görüntüyü döndürür.
show()NoneGörüntüyü açıklama eklenmiş çıkarım sonuçlarıyla birlikte görüntüler.
save()strAçıklamalı çıkarım sonuçları görüntüsünü dosyaya kaydeder ve dosya adını döndürür.
verbose()strHer görev için, algılama ve sınıflandırma sonuçlarını detaylandıran bir günlük dizesi döndürür.
save_txt()strAlgılama sonuçlarını bir metin dosyasına kaydeder ve kaydedilen dosyanın yolunu döndürür.
save_crop()NoneKırpılmış algılama görüntülerini belirtilen dizine kaydeder.
summary()List[Dict[str, Any]]Çıkarım sonuçlarını, isteğe bağlı normalleştirme ile özetlenmiş bir sözlüğe dönüştürür.
to_df()DataFrameAlgılama sonuçlarını bir Polars DataFrame'e dönüştürür.
to_csv()strAlgılama sonuçlarını CSV biçimine dönüştürür.
to_json()strAlgılama sonuçlarını JSON biçimine dönüştürür.

Daha fazla ayrıntı için şuraya bakın: Results sınıf dokümantasyonu.

Kutular

Boxes nesne indekslemek, işlemek ve sınırlayıcı kutuları farklı formatlara dönüştürmek için kullanılabilir.

Kutular

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.boxes)  # print the Boxes object containing the detection bounding boxes

İşte için bir tablo Boxes adları, türleri ve açıklamaları dahil olmak üzere sınıf metotları ve özellikleri:

AdTürAçıklama
cpu()MetotNesneyi CPU belleğine taşı.
numpy()MetotNesneyi bir numpy dizisine dönüştürün.
cuda()MetotNesneyi CUDA belleğine taşı.
to()MetotNesneyi belirtilen cihaza taşı.
xyxyÖzellik (torch.Tensor)Kutuları xyxy biçiminde döndür.
confÖzellik (torch.Tensor)Kutuların güvenilirlik değerlerini döndür.
clsÖzellik (torch.Tensor)Kutuların sınıf değerlerini döndür.
idÖzellik (torch.Tensor)Kutuların izleme kimliklerini döndürür (varsa).
xywhÖzellik (torch.Tensor)Kutuları xywh biçiminde döndür.
xyxynÖzellik (torch.Tensor)Kutuları orijinal görüntü boyutuyla normalleştirilmiş xyxy biçiminde döndür.
xywhnÖzellik (torch.Tensor)Kutuları orijinal görüntü boyutuyla normalleştirilmiş xywh biçiminde döndür.

Daha fazla ayrıntı için şuraya bakın: Boxes sınıf dokümantasyonu.

Maskeler

Masks nesne indekslenebilir, maskeler işlenebilir ve segmentlere dönüştürülebilir.

Maskeler

from ultralytics import YOLO

# Load a pretrained YOLO11n-seg Segment model
model = YOLO("yolo11n-seg.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.masks)  # print the Masks object containing the detected instance masks

İşte için bir tablo Masks adları, türleri ve açıklamaları dahil olmak üzere sınıf metotları ve özellikleri:

AdTürAçıklama
cpu()MetotMaskeler tensorünü CPU belleğinde döndürür.
numpy()MetotMaskeler tensorünü bir numpy dizisi olarak döndürür.
cuda()MetotMaskeler tensorünü GPU belleğinde döndürür.
to()MetotMaskeler tensorünü belirtilen cihaz ve veri türüyle döndürür.
xynÖzellik (torch.Tensor)Normalleştirilmiş segmentlerin tensörler olarak temsil edildiği bir liste.
xyÖzellik (torch.Tensor)Piksel koordinatlarında segmentlerin tensörler olarak temsil edildiği bir liste.

Daha fazla ayrıntı için şuraya bakın: Masks sınıf dokümantasyonu.

Anahtar Noktalar

Keypoints nesne indekslenebilir, işlenebilir ve koordinatlar normalleştirilebilir.

Anahtar Noktalar

from ultralytics import YOLO

# Load a pretrained YOLO11n-pose Pose model
model = YOLO("yolo11n-pose.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.keypoints)  # print the Keypoints object containing the detected keypoints

İşte için bir tablo Keypoints adları, türleri ve açıklamaları dahil olmak üzere sınıf metotları ve özellikleri:

AdTürAçıklama
cpu()MetotAnahtar noktaları tensorünü CPU belleğinde döndürür.
numpy()MetotAnahtar noktaları tensorünü bir numpy dizisi olarak döndürür.
cuda()MetotAnahtar noktaları tensorünü GPU belleğinde döndürür.
to()MetotAnahtar noktaları tensorünü belirtilen cihaz ve veri türüyle döndürür.
xynÖzellik (torch.Tensor)Tensorler olarak temsil edilen normalleştirilmiş anahtar noktaların bir listesi.
xyÖzellik (torch.Tensor)Piksel koordinatlarında tensorler olarak temsil edilen bir anahtar nokta listesi.
confÖzellik (torch.Tensor)Varsa, anahtar noktalarının güven değerlerini, aksi takdirde Yok (None) değerini döndürür.

Daha fazla ayrıntı için şuraya bakın: Keypoints sınıf dokümantasyonu.

Olasılıklar

Probs nesne indekslenebilir, alınabilir top1 ve top5 sınıflandırmanın indeksleri ve skorları.

Olasılıklar

from ultralytics import YOLO

# Load a pretrained YOLO11n-cls Classify model
model = YOLO("yolo11n-cls.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.probs)  # print the Probs object containing the detected class probabilities

İşte yöntemleri ve özellikleri özetleyen bir tablo: Probs sınıf:

AdTürAçıklama
cpu()MetotOlasılık (probs) tensorünün bir kopyasını CPU belleğinde döndürür.
numpy()MetotOlasılık (probs) tensorünün bir kopyasını numpy dizisi olarak döndürür.
cuda()MetotOlasılık (probs) tensorünün bir kopyasını GPU belleğinde döndürür.
to()MetotOlasılık (probs) tensorünün bir kopyasını belirtilen cihaz ve veri türüyle döndürür.
top1Özellik (int)En üstteki 1. sınıfın dizini.
top5Özellik (list[int])En iyi 5 sınıfın indeksleri.
top1confÖzellik (torch.Tensor)En iyi 1. sınıfın güvenilirliği.
top5confÖzellik (torch.Tensor)En iyi 5 sınıfın güven değerleri.

Daha fazla ayrıntı için şuraya bakın: Probs sınıf dokümantasyonu.

OBB

OBB nesne indekslemek, işlemek ve yönlendirilmiş sınırlayıcı kutuları farklı formatlara dönüştürmek için kullanılabilir.

OBB

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n-obb.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/boats.jpg")  # results list

# View results
for r in results:
    print(r.obb)  # print the OBB object containing the oriented detection bounding boxes

İşte için bir tablo OBB adları, türleri ve açıklamaları dahil olmak üzere sınıf metotları ve özellikleri:

AdTürAçıklama
cpu()MetotNesneyi CPU belleğine taşı.
numpy()MetotNesneyi bir numpy dizisine dönüştürün.
cuda()MetotNesneyi CUDA belleğine taşı.
to()MetotNesneyi belirtilen cihaza taşı.
confÖzellik (torch.Tensor)Kutuların güvenilirlik değerlerini döndür.
clsÖzellik (torch.Tensor)Kutuların sınıf değerlerini döndür.
idÖzellik (torch.Tensor)Kutuların izleme kimliklerini döndürür (varsa).
xyxyÖzellik (torch.Tensor)Yatay kutuları xyxy formatında döndürür.
xywhrÖzellik (torch.Tensor)Döndürülmüş kutuları xywhr formatında döndürür.
xyxyxyxyÖzellik (torch.Tensor)Döndürülmüş kutuları xyxyxyxy formatında döndürür.
xyxyxyxynÖzellik (torch.Tensor)Döndürülmüş kutuları, görüntü boyutuyla normalleştirilmiş xyxyxyxy formatında döndürür.

Daha fazla ayrıntı için şuraya bakın: OBB sınıf dokümantasyonu.

Çizim Sonuçları

plot() içindeki yöntem Results nesneleri, algılanan nesneleri (sınırlayıcı kutular, maskeler, anahtar noktaları ve olasılıklar gibi) orijinal görüntünün üzerine yerleştirerek tahminlerin görselleştirilmesini kolaylaştırır. Bu yöntem, açıklama eklenmiş görüntüyü bir NumPy dizisi olarak döndürerek kolay görüntüleme veya kaydetme olanağı sağlar.

Çizim

from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on 'bus.jpg'
results = model(["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"])  # results list

# Visualize the results
for i, r in enumerate(results):
    # Plot results image
    im_bgr = r.plot()  # BGR-order numpy array
    im_rgb = Image.fromarray(im_bgr[..., ::-1])  # RGB-order PIL image

    # Show results to screen (in supported environments)
    r.show()

    # Save results to disk
    r.save(filename=f"results{i}.jpg")

plot() Yöntem Parametreleri

plot() yöntemi, çıktıyı özelleştirmek için çeşitli argümanları destekler:

ArgümanTürAçıklamaVarsayılan
confboolAlgılama güven skorlarını ekleyin.True
line_widthfloatSınırlayıcı kutuların çizgi genişliği. Eğer resim boyutuyla ölçeklenir None.None
font_sizefloatMetin yazı tipi boyutu. Eğer resim boyutuyla ölçeklenir ise None.None
fontstrMetin açıklamaları için yazı tipi adı.'Arial.ttf'
pilboolGörüntüyü bir PIL Görüntü nesnesi olarak döndür.False
imgnp.ndarrayÇizim için alternatif resim. Eğer varsa orijinal resmi kullanır. None.None
im_gputorch.TensorDaha hızlı maske çizimi için GPU hızlandırmalı görüntü. Şekil: (1, 3, 640, 640).None
kpt_radiusintÇizilen anahtar noktaların yarıçapı.5
kpt_lineboolAnahtar noktaları çizgilerle birleştirin.True
labelsboolAçıklamalara sınıf etiketlerini ekleyin.True
boxesboolGörüntü üzerine sınırlayıcı kutular (bounding box) yerleştirin.True
masksboolGörüntü üzerine maskeler yerleştirin.True
probsboolSınıflandırma olasılıklarını ekleyin.True
showboolVarsayılan görüntü görüntüleyiciyi kullanarak açıklamalı görüntüyü doğrudan görüntüleyin.False
saveboolAçıklamalı görüntüyü, belirtilen bir dosyaya kaydet filename.False
filenamestrAçıklamalı görüntüyü kaydetmek için dosyanın yolu ve adı, eğer save şudur True.None
color_modestr'instance' veya 'class' gibi renk modunu belirtin.'class'
txt_colortuple[int, int, int]Sınırlayıcı kutu ve görüntü sınıflandırma etiketi için RGB metin rengi.(255, 255, 255)

İş Parçacığı Güvenli Çıkarım

Çıkarım sırasında iş parçacığı güvenliğini sağlamak, farklı iş parçacıklarında paralel olarak birden fazla YOLO modeli çalıştırdığınızda çok önemlidir. İş parçacığı güvenli çıkarım, her iş parçacığının tahminlerinin yalıtılmasını ve birbirini etkilememesini garanti ederek yarış durumlarını önler ve tutarlı ve güvenilir çıktılar sağlar.

YOLO modellerini çok iş parçacıklı bir uygulamada kullanırken, çakışmaları önlemek için her iş parçacığı için ayrı model nesneleri oluşturmak veya iş parçacığına özel depolama kullanmak önemlidir:

İş Parçacığı Güvenli Çıkarım

İş parçacığı güvenli çıkarım için her iş parçacığının içinde tek bir model örneği oluşturun:

from threading import Thread

from ultralytics import YOLO


def thread_safe_predict(model, image_path):
    """Performs thread-safe prediction on an image using a locally instantiated YOLO model."""
    model = YOLO(model)
    results = model.predict(image_path)
    # Process results


# Starting threads that each have their own model instance
Thread(target=thread_safe_predict, args=("yolo11n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo11n.pt", "image2.jpg")).start()

YOLO modelleriyle iş parçacığı güvenli çıkarıma ve adım adım talimatlara derinlemesine bir bakış için lütfen YOLO İş Parçacığı Güvenli Çıkarım Kılavuzumuza bakın. Bu kılavuz, yaygın tuzaklardan kaçınmak ve çok iş parçacıklı çıkarımınızın sorunsuz çalışmasını sağlamak için ihtiyacınız olan tüm bilgileri sağlayacaktır.

Akış Kaynağı for-döngü

İşte OpenCV kullanarak bir Python betiği (cv2) ve video karelerinde çıkarım çalıştırmak için YOLO. Bu betik, gerekli paketleri zaten kurduğunuzu varsayar (opencv-python ve ultralytics).

Akış Döngüsü

import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.pt")

# Open the video file
video_path = "path/to/your/video/file.mp4"
cap = cv2.VideoCapture(video_path)

# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()

    if success:
        # Run YOLO inference on the frame
        results = model(frame)

        # Visualize the results on the frame
        annotated_frame = results[0].plot()

        # Display the annotated frame
        cv2.imshow("YOLO Inference", annotated_frame)

        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break

# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

Bu betik, videonun her karesi üzerinde tahminler yürütecek, sonuçları görselleştirecek ve bir pencerede gösterecektir. Döngüden 'q' tuşuna basılarak çıkılabilir.

SSS

Ultralytics YOLO ve gerçek zamanlı çıkarım için tahmin modu nedir?

Ultralytics YOLO, gerçek zamanlı nesne algılama, segmentasyon ve sınıflandırma için son teknoloji ürünü bir modeldir. Tahmin modu, kullanıcıların resimler, videolar ve canlı yayınlar gibi çeşitli veri kaynaklarında yüksek hızlı çıkarım gerçekleştirmesine olanak tanır. Performans ve çok yönlülük için tasarlanmıştır; ayrıca toplu işleme ve yayın modları da sunar. Özellikleri hakkında daha fazla ayrıntı için Ultralytics YOLO tahmin moduna göz atın.

Farklı veri kaynaklarında Ultralytics YOLO kullanarak çıkarımı nasıl çalıştırabilirim?

Ultralytics YOLO, tekil resimler, videolar, dizinler, URL'ler ve yayınlar dahil olmak üzere çok çeşitli veri kaynaklarını işleyebilir. Veri kaynağını şurada belirtebilirsiniz: model.predict() çağrısı. Örneğin, şunu kullanın: 'image.jpg' yerel bir resim veya 'https://ultralytics.com/images/bus.jpg' bir URL için. Çeşitli konularla ilgili ayrıntılı örneklere göz atın çıkarım kaynakları dokümantasyonda.

YOLO çıkarım hızını ve bellek kullanımını nasıl optimize ederim?

Çıkarım hızını optimize etmek ve belleği verimli bir şekilde yönetmek için, ayarını yaparak akış modunu kullanabilirsiniz. stream=True tahmin edicinin çağırma yönteminde. Akış modu, bellekte verimli bir üreteç oluşturur. Results tüm çerçeveleri belleğe yüklemek yerine nesneleri kullanın. Uzun videoları veya büyük veri kümelerini işlemek için akış modu özellikle kullanışlıdır. Hakkında daha fazla bilgi edinin akış modu.

Ultralytics YOLO hangi çıkarım argümanlarını destekler?

model.predict() YOLO'daki yöntem, aşağıdakiler gibi çeşitli argümanları destekler: conf, iou, imgsz, device, ve daha fazlası. Bu argümanlar, güven eşikleri, görüntü boyutu ve hesaplama için kullanılan cihaz gibi parametreleri ayarlayarak çıkarım sürecini özelleştirmenize olanak tanır. Bu argümanların ayrıntılı açıklamaları şurada bulunabilir: çıkarım argümanları bölüm.

YOLO tahminlerinin sonuçlarını nasıl görselleştirebilirim ve kaydedebilirim?

YOLO ile çıkarım çalıştırdıktan sonra, Results nesneleri, açıklama eklenmiş görüntüleri görüntülemek ve kaydetmek için yöntemler içerir. Şunun gibi yöntemleri kullanabilirsiniz: result.show() ve result.save(filename="result.jpg") sonuçları görselleştirmek ve kaydetmek için. Bu yöntemlerin kapsamlı bir listesi için, sonuçlarla çalışmak bölüm.



📅 2 yıl önce oluşturuldu ✏️ 5 gün önce güncellendi
glenn-jocherRizwanMunawarLaughing-qUltralyticsAssistantMatthewNoyceY-T-Gbanu4prasadjk4esergiuwaxmannIvorZhu331Burhan-QplashchynskitensorturtleAyushExel

Yorumlar