Ultralytics YOLO ile Model Tahmini
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ı
Üretim | Spor | Güvenlik |
---|---|---|
Araç Yedek Parça Tespiti | Futbol 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: Resimler, videolar ve hatta canlı yayınlar üzerinde çıkarımlar yapabilir.
- 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ştirinstream=True
tahmin edicinin çağırma yönteminde. - Toplu İşleme: Tek bir partide birden fazla görüntü veya video karesini işleme yeteneği, çıkarım süresini daha da hızlandırır.
- 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
nesneler veya belleği verimli kullanan bir python nesne üreteci. 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 | Örnek | Tür | Notlar |
---|---|---|---|
görüntü | 'image.jpg' |
str veya Path |
Tek resim dosyası. |
URL | 'https://ultralytics.com/images/bus.jpg' |
str |
Bir resmin URL'si. |
ekran görüntüsü | 'screen' |
str |
Ekran görüntüsü yakalayın. |
PIL | Image.open('image.jpg') |
PIL.Image |
RGB kanallarıyla HWC formatı. |
OpenCV | cv2.imread('image.jpg') |
np.ndarray |
BGR kanallarıyla HWC formatı uint8 (0-255) . |
numpy | np.zeros((640,1280,3)) |
np.ndarray |
BGR kanallarıyla HWC formatı uint8 (0-255) . |
torch | torch.zeros(16,3,320,640) |
torch.Tensor |
RGB kanallarıyla BCHW formatı float32 (0.0-1.0) . |
CSV | 'sources.csv' |
str veya Path |
Görüntülerin, videoların veya dizinlerin yollarını içeren CSV dosyası. |
video ✅ | 'video.mp4' |
str veya Path |
MP4, AVI vb. formatlarda video dosyası |
dizini ✅ | 'path/' |
str veya Path |
Görüntüler veya videolar içeren bir dizinin yolu. |
glob ✅ | 'path/*.jpg' |
str |
Birden çok dosyayı eşleştirmek için Glob deseni. Şunu kullanın: * karakteri joker karakter olarak. |
YouTube ✅ | 'https://youtu.be/LNwODJXcvt4' |
str |
Bir YouTube videosunun URL'si. |
akış ✅ | 'rtsp://example.com/media.mp4' |
str |
RTSP, 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ı ✅ | 0 |
int |
Ü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 bir resim, URL, video ve dizin koleksiyonu ü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 resimleri ve videoları da yakalamak için bir glob deseni kullanın, örneğin: 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
akış kaynaklarını içeren metin dosyası. Model, toplu iş boyutunun akış sayısına eşit olduğu toplu çıkarım çalıştıracaktır. Bu kurulum, birden fazla akışın eşzamanlı olarak 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:
Ö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)
Çıkarım argümanları:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
source |
str |
'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. |
conf |
float |
0.25 |
Algı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. |
iou |
float |
0.7 |
Non-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. |
imgsz |
int veya tuple |
640 |
Çı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ı. |
rect |
bool |
True |
Etkinleş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. |
half |
bool |
False |
Yarı-duyarlıklı (FP16) çıkarımını etkinleştirir; bu, desteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilir. |
device |
str |
None |
Çı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. |
batch |
int |
1 |
Çı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_det |
int |
300 |
Gö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_stride |
int |
1 |
Video 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_buffer |
bool |
False |
Video 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. |
visualize |
bool |
False |
Modelin 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. |
augment |
bool |
False |
Tahminler 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_nms |
bool |
False |
Sı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. |
classes |
list[int] |
None |
Tahminleri 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_masks |
bool |
False |
Yü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. |
embed |
list[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. |
project |
str |
None |
Tahmin çıktıları kaydedilirse proje dizininin adı save etkinleştirildi. |
name |
str |
None |
Tahmin ç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. |
stream |
bool |
False |
Tü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. |
verbose |
bool |
True |
Tahmin 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. |
Görselleştirme argümanları:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
show |
bool |
False |
Eğ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. |
save |
bool |
False or True |
Açıklamalı resimlerin veya videoların dosyaya kaydedilmesini sağlar. Belgeleme, daha fazla analiz veya sonuçları paylaşmak için kullanışlıdır. CLI kullanılırken True ve python'da kullanılırken False olarak ayarlanmıştır. |
save_frames |
bool |
False |
Videoları 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_txt |
bool |
False |
Algı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_conf |
bool |
False |
Kaydedilen metin dosyalarına güvenilirlik skorlarını dahil eder. İşlem sonrası ve analiz için mevcut ayrıntıları geliştirir. |
save_crop |
bool |
False |
Algı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_labels |
bool |
True |
Görsel çıktıdaki her algılama için etiketleri görüntüler. Algılanan nesnelerin anında anlaşılmasını sağlar. |
show_conf |
bool |
True |
Etiketin 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_boxes |
bool |
True |
Algı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_width |
None or int |
None |
Sı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 Komutu | Referans |
---|---|---|
.bmp |
yolo predict source=image.bmp |
Microsoft BMP Dosya Formatı |
.dng |
yolo predict source=image.dng |
Adobe DNG |
.jpeg |
yolo predict source=image.jpeg |
JPEG |
.jpg |
yolo predict source=image.jpg |
JPEG |
.mpo |
yolo predict source=image.mpo |
Çoklu Resim Nesnesi |
.png |
yolo predict source=image.png |
Taşınabilir Ağ Grafikleri |
.tif |
yolo predict source=image.tif |
Etiket Görüntü Dosyası Biçimi |
.tiff |
yolo predict source=image.tiff |
Etiket Görüntü Dosyası Biçimi |
.webp |
yolo predict source=image.webp |
WebP |
.pfm |
yolo predict source=image.pfm |
Taşınabilir FloatMap |
.HEIC |
yolo predict source=image.HEIC |
Yüksek Verimli Görüntü Formatı |
Videolar
Aşağıdaki tabloda geçerli Ultralytics video formatları yer almaktadır.
Video Uzantıları | Örnek Tahmin Komutu | Referans |
---|---|---|
.asf |
yolo predict source=video.asf |
Gelişmiş Sistemler Formatı |
.avi |
yolo predict source=video.avi |
Ses Video Çoklu Ortamı |
.gif |
yolo predict source=video.gif |
Grafik Değişim Biçimi |
.m4v |
yolo predict source=video.m4v |
MPEG-4 Bölüm 14 |
.mkv |
yolo predict source=video.mkv |
Matroska |
.mov |
yolo predict source=video.mov |
QuickTime Dosya Biçimi |
.mp4 |
yolo predict source=video.mp4 |
MPEG-4 Bölüm 14 - Vikipedi |
.mpeg |
yolo predict source=video.mpeg |
MPEG-1 Bölüm 2 |
.mpg |
yolo predict source=video.mpg |
MPEG-1 Bölüm 2 |
.ts |
yolo predict source=video.ts |
MPEG Aktarım Akışı |
.wmv |
yolo predict source=video.wmv |
Windows Media Video |
.webm |
yolo predict source=video.webm |
WebM 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:
Özellik | Tür | Açıklama |
---|---|---|
orig_img |
np.ndarray |
Bir numpy dizisi olarak orijinal görüntü. |
orig_shape |
tuple |
Orijinal görüntü şekli (yükseklik, genişlik) biçiminde. |
boxes |
Boxes, optional |
Algılama sınırlayıcı kutularını içeren bir Boxes nesnesi. |
masks |
Masks, optional |
Algılama maskelerini içeren bir Maskeler nesnesi. |
probs |
Probs, optional |
Sınıflandırma görevi için her sınıfın olasılıklarını içeren bir Olasılıklar nesnesi. |
keypoints |
Keypoints, optional |
Her nesne için algılanan anahtar noktaları içeren bir Keypoints nesnesi. |
obb |
OBB, optional |
Yönlendirilmiş sınırlayıcı kutular içeren bir OBB nesnesi. |
speed |
dict |
Görüntü başına milisaniye cinsinden ön işleme, çıkarım ve son işleme hızlarının bir sözlüğü. |
names |
dict |
Sınıf indekslerini sınıf adlarına eşleyen bir sözlük. |
path |
str |
Görüntü dosyasının yolu. |
save_dir |
str, optional |
Sonuçları kaydetmek için dizin. |
Results
nesneleri aşağıdaki yöntemlere sahiptir:
Metot | Dönüş Türü | Açıklama |
---|---|---|
update() |
None |
Sonuçlar nesnesini yeni algılama verileriyle (kutular, maskeler, olasılıklar, obb, anahtar noktaları) günceller. |
cpu() |
Results |
Tüm tensorleri CPU belleğine taşınmış bir Sonuçlar nesnesinin bir kopyasını döndürür. |
numpy() |
Results |
Tüm tensorleri numpy dizilerine dönüştürülmüş bir Sonuçlar nesnesinin bir kopyasını döndürür. |
cuda() |
Results |
Tüm tensorleri GPU belleğine taşınmış bir Sonuçlar nesnesinin bir kopyasını döndürür. |
to() |
Results |
Tensorleri belirtilen aygıta ve dtype'a taşınmış bir Sonuçlar nesnesinin bir kopyasını döndürür. |
new() |
Results |
Aynı resim, yol, adlar ve hız özelliklerine sahip yeni bir Sonuçlar nesnesi oluşturur. |
plot() |
np.ndarray |
Bir 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() |
None |
Görüntüyü açıklama eklenmiş çıkarım sonuçlarıyla birlikte görüntüler. |
save() |
str |
Açıklamalı çıkarım sonuçları görüntüsünü dosyaya kaydeder ve dosya adını döndürür. |
verbose() |
str |
Her 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() |
str |
Algılama sonuçlarını bir metin dosyasına kaydeder ve kaydedilen dosyanın yolunu döndürür. |
save_crop() |
None |
Kı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() |
DataFrame |
Algılama sonuçlarını bir Pandas DataFrame'e dönüştürür. |
to_csv() |
str |
Algılama sonuçlarını CSV biçimine dönüştürür. |
to_xml() |
str |
Algılama sonuçlarını XML biçimine dönüştürür. |
to_html() |
str |
Algılama sonuçlarını HTML biçimine dönüştürür. |
to_json() |
str |
Algılama sonuçlarını JSON biçimine dönüştürür. |
to_sql() |
None |
Algılama sonuçlarını SQL uyumlu biçime dönüştürür ve veritabanına kaydeder. |
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:
Ad | Tür | Açıklama |
---|---|---|
cpu() |
Metot | Nesneyi CPU belleğine taşı. |
numpy() |
Metot | Nesneyi bir numpy dizisine dönüştürün. |
cuda() |
Metot | Nesneyi CUDA belleğine taşı. |
to() |
Metot | Nesneyi 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:
Ad | Tür | Açıklama |
---|---|---|
cpu() |
Metot | Maskeler tensorünü CPU belleğinde döndürür. |
numpy() |
Metot | Maskeler tensorünü bir numpy dizisi olarak döndürür. |
cuda() |
Metot | Maskeler tensorünü GPU belleğinde döndürür. |
to() |
Metot | Maskeler 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:
Ad | Tür | Açıklama |
---|---|---|
cpu() |
Metot | Anahtar noktaları tensorünü CPU belleğinde döndürür. |
numpy() |
Metot | Anahtar noktaları tensorünü bir numpy dizisi olarak döndürür. |
cuda() |
Metot | Anahtar noktaları tensorünü GPU belleğinde döndürür. |
to() |
Metot | Anahtar 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:
Ad | Tür | Açıklama |
---|---|---|
cpu() |
Metot | Olasılık (probs) tensorünün bir kopyasını CPU belleğinde döndürür. |
numpy() |
Metot | Olasılık (probs) tensorünün bir kopyasını numpy dizisi olarak döndürür. |
cuda() |
Metot | Olasılık (probs) tensorünün bir kopyasını GPU belleğinde döndürür. |
to() |
Metot | Olası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:
Ad | Tür | Açıklama |
---|---|---|
cpu() |
Metot | Nesneyi CPU belleğine taşı. |
numpy() |
Metot | Nesneyi bir numpy dizisine dönüştürün. |
cuda() |
Metot | Nesneyi CUDA belleğine taşı. |
to() |
Metot | Nesneyi 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üman | Tür | Açıklama | Varsayılan |
---|---|---|---|
conf |
bool |
Algılama güven skorlarını ekleyin. | True |
line_width |
float |
Sınırlayıcı kutuların çizgi genişliği. Eğer resim boyutuyla ölçeklenir None . |
None |
font_size |
float |
Metin yazı tipi boyutu. Eğer resim boyutuyla ölçeklenir ise None . |
None |
font |
str |
Metin açıklamaları için yazı tipi adı. | 'Arial.ttf' |
pil |
bool |
Görüntüyü bir PIL Görüntü nesnesi olarak döndür. | False |
img |
np.ndarray |
Çizim için alternatif resim. Eğer varsa orijinal resmi kullanır. None . |
None |
im_gpu |
torch.Tensor |
Daha hızlı maske çizimi için GPU hızlandırmalı görüntü. Şekil: (1, 3, 640, 640). | None |
kpt_radius |
int |
Çizilen anahtar noktaların yarıçapı. | 5 |
kpt_line |
bool |
Anahtar noktaları çizgilerle birleştirin. | True |
labels |
bool |
Açıklamalara sınıf etiketlerini ekleyin. | True |
boxes |
bool |
Görüntü üzerine sınırlayıcı kutular (bounding box) yerleştirin. | True |
masks |
bool |
Görüntü üzerine maskeler yerleştirin. | True |
probs |
bool |
Sınıflandırma olasılıklarını ekleyin. | True |
show |
bool |
Varsayılan görüntü görüntüleyiciyi kullanarak açıklamalı görüntüyü doğrudan görüntüleyin. | False |
save |
bool |
Açıklamalı görüntüyü, belirtilen bir dosyaya kaydet filename . |
False |
filename |
str |
Açıklamalı görüntüyü kaydetmek için dosyanın yolu ve adı, eğer save şudur True . |
None |
color_mode |
str |
'instance' veya 'class' gibi renk modunu belirtin. | 'class' |
txt_color |
tuple[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.