ile Model Tahmini Ultralytics YOLO
Giriş
Makine öğrenimi ve bilgisayarla görme dünyasında, görsel verilerden anlam çıkarma sürecine 'çıkarım' veya 'tahmin' denir. Ultralytics YOLO11 , çok çeşitli veri kaynakları üzerinde 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 | Futbolcu Tespiti | İnsan Düşme Tespiti |
Çıkarım için Neden Ultralytics YOLO Kullanılmalı?
Çeşitli çıkarım ihtiyaçlarınız için neden YOLO11'un tahmin modunu düşünmeniz gerektiğini burada bulabilirsiniz:
- Çok yönlülük: Görüntüler, 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.
- Son Derece Özelleştirilebilir: Modelin çıkarım davranışını özel gereksinimlerinize göre ayarlamak için çeşitli ayarlar ve parametreler.
Tahmin Modunun Temel Özellikleri
YOLO11'nin tahmin modu, sağlam ve çok yönlü olacak şekilde tasarlanmıştır:
- Çoklu Veri Kaynağı Uyumluluğu: Verileriniz ister tek tek görüntüler, ister görüntü koleksiyonları, video dosyaları veya gerçek zamanlı video akışları şeklinde olsun, tahmin modu sizi korur.
- Akış Modu: 'nin bellek açısından verimli bir oluşturucusunu oluşturmak için akış özelliğini kullanın.
Results
nesneler. Bunu ayarlayarak etkinleştirinstream=True
tahmin edicinin çağrı yönteminde. - Toplu İşleme: Birden fazla görüntü veya video karesini tek bir toplu işlemde 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şenleri ile kolayca entegre olur.
Ultralytics YOLO modelleri ya bir Python listesi döndürür Results
nesneleri veya bellek açısından verimli bir Python Results
nesneler ne zaman stream=True
çıkarım sırasında modele aktarılır:
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 giriş kaynaklarını işleyebilir. Kaynaklar arasında statik görüntüler, video akışları ve çeşitli veri formatları bulunmaktadır. Tabloda ayrıca her bir kaynağın aşağıdaki bağımsız değişkenle akış modunda kullanılıp kullanılamayacağı da belirtilmektedir stream=True
✅. Akış modu, tüm kareleri belleğe yüklemek yerine bir sonuç üreteci oluşturduğundan videoları veya canlı akışları 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
'de, tüm kareler veya veri noktaları için sonuçlar bellekte saklanır, bu da büyük girdiler için hızla toplanabilir ve bellek dışı hatalara neden olabilir. Bunun aksine, stream=True
yalnızca geçerli karenin veya veri noktasının sonuçlarını bellekte tutan, bellek tüketimini önemli ölçüde azaltan ve bellek dışı sorunları önleyen bir üreteç kullanır.
Kaynak | Örnek | Tip | Notlar |
---|---|---|---|
görüntü | 'image.jpg' |
str veya Path |
Tek görüntü dosyası. |
URL | 'https://ultralytics.com/images/bus.jpg' |
str |
Bir görüntünün URL'si. |
ekran görüntüsü | 'screen' |
str |
Bir ekran görüntüsü yakalayın. |
PIL | Image.open('image.jpg') |
PIL.Image |
RGB kanalları ile HWC formatı. |
OpenCV | cv2.imread('image.jpg') |
np.ndarray |
BGR kanalları ile HWC formatı uint8 (0-255) . |
numpy | np.zeros((640,1280,3)) |
np.ndarray |
BGR kanalları ile HWC formatı uint8 (0-255) . |
torch | torch.zeros(16,3,320,640) |
torch.Tensor |
RGB kanalları ile 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ı. |
dizin ✅ | 'path/' |
str veya Path |
Görüntü veya video içeren bir dizinin yolu. |
glob ✅ | 'path/*.jpg' |
str |
Birden fazla dosyayla eşleşmek için glob deseni. Kullanın * karakterini joker karakter olarak kullanır. |
YouTube ✅ | 'https://youtu.be/LNwODJXcvt4' |
str |
Bir YouTube videosunun URL'si. |
akış ✅ | 'rtsp://example.com/media.mp4' |
str |
RTSP, RTMP, TCP gibi akış protokolleri için URL veya bir IP adresi. |
çoklu akış ✅ | 'list.streams' |
str veya Path |
*.streams her satır için bir akış URL'si içeren metin dosyası, yani 8 akış toplu iş boyutu 8'de çalışacaktır. |
web kamerası ✅ | 0 |
int |
Üzerinde çıkarım yapılacak bağlı kamera cihazının dizini. |
Aşağıda her bir kaynak türünü kullanmak için kod örnekleri verilmiştir:
Tahmin kaynakları
Bir görüntü dosyası üzerinde çıkarım çalıştırın.
Ekran görüntüsü olarak geçerli ekran içeriği üzerinde çıkarım çalıştırın.
URL aracılığıyla uzaktan barındırılan bir görüntü veya video üzerinde çıkarım çalıştırın.
Python Imaging Library (PIL) ile açılmış bir görüntü üzerinde çıkarım çalıştırın.
OpenCV ile okunan bir görüntü üzerinde çıkarım çalıştırın.
Numpy dizisi olarak temsil edilen bir görüntü ü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
Olarak temsil edilen bir görüntü üzerinde çıkarım çalıştırın PyTorch tensor.
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.
Bir video dosyası üzerinde çıkarım çalıştırın. Kullanarak stream=True
bellek kullanımını azaltmak için bir Sonuç nesneleri oluşturucu oluşturabilirsiniz.
Bir dizindeki tüm resimler ve videolar üzerinde çıkarım çalıştırın. Alt dizinlerdeki resim ve videoları da yakalamak için bir glob kalıbı kullanın, örn. path/to/dir/**/*
.
ile 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 yapın. Kullanarak stream=True
uzun videolarda bellek kullanımını azaltmak için bir Sonuç nesneleri oluşturucu oluşturabilirsiniz.
RTSP, RTMP, TCP veya IP adresi protokollerini kullanarak canlı video akışları üzerinde çıkarım yapmak için akış modunu kullanın. Tek bir akış sağlanırsa, model çıkarımı bir parti büyüklüğü 1. Birden fazla akış için, a .streams
metin dosyası, toplu çıkarım gerçekleştirmek için kullanılabilir; burada toplu çıkarım boyutu sağlanan akış sayısına göre belirlenir (örneğin, 8 akış için toplu çıkarım boyutu 8).
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 olarak ayarlanır ve video akışının verimli bir şekilde gerçek zamanlı işlenmesine olanak tanır.
Birden fazla video akışını aynı anda işlemek için bir .streams
akış kaynaklarını içeren metin dosyası. Model, yığın boyutunun akış sayısına eşit olduğu toplu çıkarım çalıştıracaktır. Bu kurulum, aynı anda birden fazla kaynağın 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.
Bağlı bir kamera aygıtında, söz konusu kameranın indeksini şu adrese ileterek çıkarım çalıştırabilirsiniz source
.
Çıkarım Argümanları
model.predict()
varsayılanları geçersiz kılmak için çıkarım zamanında geçirilebilecek birden fazla argüman kabul eder:
Örnek
Çıkarım argümanları:
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Çıkarım için veri kaynağını belirtir. Bir görüntü yolu, video dosyası, dizin, URL veya canlı yayınlar için cihaz kimliği olabilir. Çok çeşitli formatları ve kaynakları destekleyerek farklı girdi türlerinde esnek uygulama sağlar. |
conf |
float |
0.25 |
Tespitler için minimum güven eşiğini ayarlar. Bu eşiğin altında güvenle tespit edilen nesneler dikkate alınmayacaktır. Bu değerin ayarlanması yanlış pozitiflerin azaltılmasına yardımcı olabilir. |
iou |
float |
0.7 |
Maksimum Olmayan Bastırma (NMS) için Birlik Üzerinde Kesişme (IoU) eşiği. Daha düşük değerler, üst üste binen kutuları ortadan kaldırarak daha az tespitle sonuçlanır, bu da kopyaları azaltmak için kullanışlıdır. |
imgsz |
int or tuple |
640 |
Çıkarım için görüntü boyutunu tanımlar. Tek bir tamsayı olabilir 640 kare yeniden boyutlandırma veya bir (yükseklik, genişlik) tuple için. Doğru boyutlandırma algılamayı iyileştirebilir doğruluk ve işlem hızı. |
half |
bool |
False |
Desteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilen yarı hassas (FP16) çıkarımı etkinleştirir. |
device |
str |
None |
Çıkarım için cihazı belirtir (örn, cpu , cuda:0 veya 0 ). Kullanıcıların CPU, belirli bir GPU veya model yürütme için diğer hesaplama cihazları arasında seçim yapmasına olanak tanır. |
max_det |
int |
300 |
Görüntü başına izin verilen maksimum algılama sayısı. Modelin tek bir çıkarımda tespit edebileceği toplam nesne sayısını sınırlayarak yoğun sahnelerde aşırı çıktıları önler. |
vid_stride |
int |
1 |
Video girişleri için kare atlama. Zamansal çözünürlük pahasına işlemeyi hızlandırmak için videolardaki karelerin atlanmasına izin verir. 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 ise, yeni kareleri yerleştirmek için eski kareler bırakılır (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer `True' ise, yeni kareleri bir tamponda sıraya koyarak hiçbir karenin atlanmamasını sağlar, ancak çıkarım FPS'si akış FPS'sinden düşükse gecikmeye neden olur. |
visualize |
bool |
False |
Çıkarım sırasında model özelliklerinin görselleştirilmesini etkinleştirerek modelin "ne gördüğüne" dair içgörü sağlar. Hata ayıklama ve model yorumlama için kullanışlıdır. |
augment |
bool |
False |
Tahminler için test zamanı artırımını (TTA) etkinleştirerek çıkarım hızı pahasına tespit sağlamlığını potansiyel olarak iyileştirir. |
agnostic_nms |
bool |
False |
Farklı sınıfların örtüşen kutularını birleştiren, sınıftan bağımsız Maksimum Olmayan Bastırma (NMS) özelliğini etkinleştirir. Sınıf çakışmasının 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 göre filtreler. Yalnızca belirtilen sınıflara ait tespitler 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ştirilmişse orijinal görüntü boyutuyla 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 |
Özellik vektörlerinin veya katıştırmaların çıkarılacağı katmanları belirtir. Kümeleme veya benzerlik arama gibi sonraki görevler için kullanışlıdır. |
project |
str |
None |
Aşağıdaki durumlarda tahmin çıktılarının kaydedildiği proje dizininin adı save etkinleştirilir. |
name |
str |
None |
Tahmin çalışmasının adı. Proje klasörü içinde tahmin çıktılarının saklanacağı bir alt dizin oluşturmak için kullanılır. save etkinleştirilir. |
Görselleştirme argümanları:
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
show |
bool |
False |
Eğer True , 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 veya True |
Açıklamalı görüntülerin veya videoların dosyaya kaydedilmesini sağlar. Dokümantasyon, ileri analiz veya sonuçları paylaşmak için kullanışlıdır. CLI kullanıldığında varsayılan değer True, Python kullanıldığında ise False'dir. |
save_frames |
bool |
False |
Videoları işlerken, tek tek kareleri görüntü olarak kaydeder. Belirli kareleri ayıklamak veya ayrıntılı kare kare analiz için kullanışlıdır. |
save_txt |
bool |
False |
Algılama sonuçlarını formata uygun olarak 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üven puanları ekler. İşlem sonrası ve analiz için mevcut ayrıntıları geliştirir. |
save_crop |
bool |
False |
Tespitlerin kırpılmış görüntülerini kaydeder. Veri kümesini büyütmek, analiz etmek 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 bir tespit için güven puanını görüntüler. Her bir tespit için modelin 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 gereklidir. |
line_width |
None veya 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 Formatları
YOLO11 ultralytics/data/utils .py adresinde belirtildiği gibi çeşitli görüntü ve video formatlarını destekler. Geçerli son ekler ve örnek tahmin komutları için aşağıdaki tablolara bakın.
Görüntüler
Aşağıdaki tabloda geçerli Ultralytics görüntü formatları yer almaktadır.
Not
HEIC görüntüleri yalnızca çıkarım için desteklenir, eğitim için desteklenmez.
Görüntü Sonekleri | Örnek Tahmin Et 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ü Dosya Formatı |
.tiff |
yolo predict source=image.tiff |
Etiket Görüntü Dosya Formatı |
.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 Sonekleri | Örnek Tahmin Et Komutu | Referans |
---|---|---|
.asf |
yolo predict source=video.asf |
Gelişmiş Sistem Formatı |
.avi |
yolo predict source=video.avi |
Ses Video Interleave |
.gif |
yolo predict source=video.gif |
Grafik Değişim Formatı |
.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 Formatı |
.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ışma
Tümü Ultralytics predict()
çağrıları bir liste döndürecektir Results
nesneler:
Sonuçlar
Results
nesneleri aşağıdaki niteliklere sahiptir:
Öznitelik | Tip | Açıklama |
---|---|---|
orig_img |
numpy.ndarray |
Bir numpy dizisi olarak orijinal görüntü. |
orig_shape |
tuple |
(Yükseklik, genişlik) biçimindeki orijinal görüntü şekli. |
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 Masks nesnesi. |
probs |
Probs, optional |
Sınıflandırma görevi için her sınıfın olasılıklarını içeren bir Probs nesnesi. |
keypoints |
Keypoints, optional |
Her nesne için algılanan anahtar noktaları içeren bir Anahtar Noktalar 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şlem, çıkarım ve son işlem hızları sözlüğü. |
names |
dict |
Sınıf adları sözlüğü. |
path |
str |
Görüntü dosyasının yolu. |
Results
nesneleri aşağıdaki yöntemlere sahiptir:
Yöntem | Dönüş Tipi | Açıklama |
---|---|---|
update() |
None |
Results nesnesinin kutularını, maskelerini ve probs niteliklerini güncelleyin. |
cpu() |
Results |
Results nesnesinin bir kopyasını CPU belleğindeki tüm tensörlerle birlikte döndürür. |
numpy() |
Results |
Tüm tensörleri numpy dizileri olarak içeren Results nesnesinin bir kopyasını döndürür. |
cuda() |
Results |
Results nesnesinin bir kopyasını GPU belleğindeki tüm tensörlerle birlikte döndürür. |
to() |
Results |
Belirtilen aygıt ve d türündeki tensörleri içeren Results nesnesinin bir kopyasını döndürür. |
new() |
Results |
Aynı görüntü, yol ve adlara sahip yeni bir Results nesnesi döndürür. |
plot() |
numpy.ndarray |
Algılama sonuçlarını çizer. Açıklamalı görüntünün bir numpy dizisini döndürür. |
show() |
None |
Açıklamalı sonuçları ekranda gösterin. |
save() |
None |
Açıklamalı sonuçları dosyaya kaydedin. |
verbose() |
str |
Her görev için günlük dizesi döndürür. |
save_txt() |
None |
Tahminleri bir txt dosyasına kaydedin. |
save_crop() |
None |
Kırpılmış tahminleri şuraya kaydet save_dir/cls/file_name.jpg . |
tojson() |
str |
Nesneyi JSON biçimine dönüştürün. |
Daha fazla ayrıntı için bkz. Results
sınıf dokümantasyonu.
Kutular
Boxes
nesnesi, sınırlayıcı kutuları dizinlemek, işlemek ve farklı biçimlere dönüştürmek için kullanılabilir.
Kutular
İşte aşağıdakiler için bir tablo Boxes
sınıf yöntemleri ve özellikleri, adları, türleri ve açıklamaları dahil:
İsim | Tip | Açıklama |
---|---|---|
cpu() |
Yöntem | Nesneyi CPU belleğine taşıyın. |
numpy() |
Yöntem | Nesneyi bir numpy dizisine dönüştürün. |
cuda() |
Yöntem | Nesneyi CUDA belleğine taşıyın. |
to() |
Yöntem | Nesneyi belirtilen cihaza taşır. |
xyxy |
Mülkiyet (torch.Tensor ) |
Kutuları xyxy biçiminde döndürür. |
conf |
Mülkiyet (torch.Tensor ) |
Kutuların güven değerlerini döndürür. |
cls |
Mülkiyet (torch.Tensor ) |
Kutuların sınıf değerlerini döndürür. |
id |
Mülkiyet (torch.Tensor ) |
Kutuların parça kimliklerini döndürür (varsa). |
xywh |
Mülkiyet (torch.Tensor ) |
Kutuları xywh biçiminde döndürür. |
xyxyn |
Mülkiyet (torch.Tensor ) |
Kutuları orijinal görüntü boyutuna göre normalleştirilmiş xyxy biçiminde döndürür. |
xywhn |
Mülkiyet (torch.Tensor ) |
Kutuları orijinal görüntü boyutuna göre normalleştirilmiş xywh biçiminde döndürür. |
Daha fazla ayrıntı için bkz. Boxes
sınıf dokümantasyonu.
Maskeler
Masks
nesnesi, maskeleri segmentlere indekslemek, işlemek ve dönüştürmek için kullanılabilir.
Maskeler
İşte aşağıdakiler için bir tablo Masks
sınıf yöntemleri ve özellikleri, adları, türleri ve açıklamaları dahil:
İsim | Tip | Açıklama |
---|---|---|
cpu() |
Yöntem | CPU belleğindeki tensor maskelerini döndürür. |
numpy() |
Yöntem | tensor maskelerini bir numpy dizisi olarak döndürür. |
cuda() |
Yöntem | GPU belleğindeki tensor maskelerini döndürür. |
to() |
Yöntem | Belirtilen cihaz ve dtype ile tensor maskelerini döndürür. |
xyn |
Mülkiyet (torch.Tensor ) |
Tensör olarak temsil edilen normalleştirilmiş segmentlerin bir listesi. |
xy |
Mülkiyet (torch.Tensor ) |
Tensör olarak temsil edilen piksel koordinatlarındaki segmentlerin bir listesi. |
Daha fazla ayrıntı için bkz. Masks
sınıf dokümantasyonu.
Anahtar Noktalar
Keypoints
nesnesi koordinatları indekslemek, değiştirmek ve normalleştirmek için kullanılabilir.
Anahtar Noktalar
İşte aşağıdakiler için bir tablo Keypoints
sınıf yöntemleri ve özellikleri, adları, türleri ve açıklamaları dahil:
İsim | Tip | Açıklama |
---|---|---|
cpu() |
Yöntem | CPU belleğindeki tensor anahtar noktalarını döndürür. |
numpy() |
Yöntem | Anahtar noktalarını tensor bir numpy dizisi olarak döndürür. |
cuda() |
Yöntem | GPU belleğindeki tensor anahtar noktalarını döndürür. |
to() |
Yöntem | Belirtilen cihaz ve dtype ile tensor anahtar noktalarını döndürür. |
xyn |
Mülkiyet (torch.Tensor ) |
Tensör olarak temsil edilen normalleştirilmiş anahtar noktalarının bir listesi. |
xy |
Mülkiyet (torch.Tensor ) |
Tensör olarak temsil edilen piksel koordinatlarındaki anahtar noktaların bir listesi. |
conf |
Mülkiyet (torch.Tensor ) |
Varsa anahtar noktalarının güven değerlerini döndürür, yoksa Yoktur. |
Daha fazla ayrıntı için bkz. Keypoints
sınıf dokümantasyonu.
Probs
Probs
nesnesi indeks olarak kullanılabilir, get top1
ve top5
endeksleri ve sınıflandırma puanları.
Probs
Burada, aşağıdaki metot ve özellikleri özetleyen bir tablo bulunmaktadır Probs
Sınıf:
İsim | Tip | Açıklama |
---|---|---|
cpu() |
Yöntem | CPU belleğindeki tensor problarının bir kopyasını döndürür. |
numpy() |
Yöntem | tensor prob'larının bir kopyasını numpy dizisi olarak döndürür. |
cuda() |
Yöntem | GPU belleğindeki tensor problarının bir kopyasını döndürür. |
to() |
Yöntem | Belirtilen aygıt ve dtype ile probs tensor dosyasının bir kopyasını döndürür. |
top1 |
Mülkiyet (int ) |
En üst 1 sınıfın endeksi. |
top5 |
Mülkiyet (list[int] ) |
İlk 5 sınıfın endeksleri. |
top1conf |
Mülkiyet (torch.Tensor ) |
En iyi 1. sınıfın güveni. |
top5conf |
Mülkiyet (torch.Tensor ) |
İlk 5 sınıfın sırları. |
Daha fazla ayrıntı için bkz. Probs
sınıf dokümantasyonu.
OBB
OBB
nesnesi, yönlendirilmiş sınırlayıcı kutuları dizinlemek, işlemek ve farklı biçimlere dönüştürmek için kullanılabilir.
OBB
İşte aşağıdakiler için bir tablo OBB
sınıf yöntemleri ve özellikleri, adları, türleri ve açıklamaları dahil:
İsim | Tip | Açıklama |
---|---|---|
cpu() |
Yöntem | Nesneyi CPU belleğine taşıyın. |
numpy() |
Yöntem | Nesneyi bir numpy dizisine dönüştürün. |
cuda() |
Yöntem | Nesneyi CUDA belleğine taşıyın. |
to() |
Yöntem | Nesneyi belirtilen cihaza taşır. |
conf |
Mülkiyet (torch.Tensor ) |
Kutuların güven değerlerini döndürür. |
cls |
Mülkiyet (torch.Tensor ) |
Kutuların sınıf değerlerini döndürür. |
id |
Mülkiyet (torch.Tensor ) |
Kutuların parça kimliklerini döndürür (varsa). |
xyxy |
Mülkiyet (torch.Tensor ) |
Yatay kutuları xyxy biçiminde döndürür. |
xywhr |
Mülkiyet (torch.Tensor ) |
Döndürülmüş kutuları xywhr biçiminde döndürür. |
xyxyxyxy |
Mülkiyet (torch.Tensor ) |
Döndürülmüş kutuları xyxyxyxy biçiminde döndürür. |
xyxyxyxyn |
Mülkiyet (torch.Tensor ) |
Döndürülmüş kutuları görüntü boyutuna göre normalleştirilmiş xyxyxyxy biçiminde döndürür. |
Daha fazla ayrıntı için bkz. OBB
sınıf dokümantasyonu.
Sonuçları Çizme
Bu plot()
içinde yöntem Results
nesneleri, tespit edilen nesneleri (sınırlayıcı kutular, maskeler, anahtar noktalar ve olasılıklar gibi) orijinal görüntünün üzerine bindirerek tahminlerin görselleştirilmesini kolaylaştırır. Bu yöntem, açıklamalı 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(["bus.jpg", "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
Bu plot()
yöntemi, çıktıyı özelleştirmek için çeşitli argümanları destekler:
Tartışma | Tip | Açıklama | Varsayılan |
---|---|---|---|
conf |
bool |
Tespit güven puanlarını ekleyin. | True |
line_width |
float |
Sınırlayıcı kutuların çizgi genişliği. Aşağıdaki durumlarda görüntü boyutuyla ölçeklenir None . |
None |
font_size |
float |
Metin yazı tipi boyutu. Aşağıdaki durumlarda görüntü boyutu ile ölçeklenir None . |
None |
font |
str |
Metin ek 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ür. | False |
img |
numpy.ndarray |
Çizim için alternatif görüntü. Aşağıdaki durumlarda orijinal görüntüyü kullanır None . |
None |
im_gpu |
torch.Tensor |
GPU-Daha hızlı maske çizimi için hızlandırılmış görüntü. Şekil: (1, 3, 640, 640). | None |
kpt_radius |
int |
Çizilen anahtar noktalar için yarıçap. | 5 |
kpt_line |
bool |
Anahtar noktaları çizgilerle birleştirin. | True |
labels |
bool |
Ek açıklamalara sınıf etiketlerini ekleyin. | True |
boxes |
bool |
Sınırlayıcı kutuları görüntünün üzerine bindirin. | True |
masks |
bool |
Görüntü üzerinde maskeleri üst üste bindirin. | True |
probs |
bool |
Sınıflandırma olasılıklarını dahil edin. | 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ü şu şekilde belirtilen bir dosyaya kaydedin filename . |
False |
filename |
str |
Açıklamalı görüntünün kaydedileceği dosyanın yolu ve adı save o True . |
None |
color_mode |
str |
Renk modunu belirtin, örneğin 'örnek' veya 'sınıf'. | 'class' |
İş 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 bir iş parçacığının tahminlerinin izole edilmesini ve birbiriyle etkileşime girmemesini garanti ederek yarış koşullarını önler ve tutarlı ve güvenilir çıktılar sağlar.
Çok iş parçacıklı bir uygulamada YOLO modellerini kullanırken, çakışmaları önlemek için her iş parçacığı için ayrı model nesnelerini örneklemek veya iş parçacığı yerel depolamasını kullanmak önemlidir:
İş Parçacığı Güvenli Çıkarım
İş parçacığı güvenli çıkarım için her iş parçacığı içinde tek bir modeli örnekleyin:
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 modelleri ve adım adım talimatlarla iş parçacığı güvenli çıkarıma 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 gerekli tüm bilgileri sağlayacaktır.
Akış Kaynağı for
-Döngü
İşte OpenCV kullanan bir Python betiği (cv2
) ve video kareleri üzerinde çıkarım yapmak için YOLO . Bu betik, gerekli paketleri zaten yüklediğinizi varsayar (opencv-python
ve ultralytics
).
Akış for 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 komut dosyası, videonun her karesinde tahminleri çalıştıracak, sonuçları görselleştirecek ve bir pencerede görüntüleyecektir. 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 görüntüler, videolar ve canlı akışlar gibi çeşitli veri kaynakları üzerinde yüksek hızlı çıkarım yapmasına olanak tanır. Performans ve çok yönlülük için tasarlanan bu model, toplu işleme ve akış modları da sunar. Özellikleri hakkında daha fazla bilgi için Ultralytics YOLO tahmin moduna göz atın.
Farklı veri kaynakları üzerinde Ultralytics YOLO adresini kullanarak nasıl çıkarım yapabilirim?
Ultralytics YOLO tek tek görüntüler, videolar, dizinler, URL'ler ve akışlar dahil olmak üzere çok çeşitli veri kaynaklarını işleyebilir. Veri kaynağını şurada belirtebilirsiniz model.predict()
arayın. Örneğin, şunu kullanın 'image.jpg'
yerel bir görüntü için veya 'https://ultralytics.com/images/bus.jpg'
bir URL için. Çeşitli URL'ler için 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 edebilirim?
Çıkarım hızını optimize etmek ve belleği verimli bir şekilde yönetmek için, aşağıdaki ayarları yaparak akış modunu kullanabilirsiniz stream=True
tahmin edicinin çağrı yönteminde. Akış modu, bellek açısından verimli bir Results
nesneleri yerine tüm kareleri belleğe yükler. 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 akış modu.
Ultralytics YOLO hangi çıkarım argümanlarını desteklemektedir?
Bu model.predict()
YOLO adresindeki yöntem aşağıdaki gibi çeşitli argümanları destekler conf
, iou
, imgsz
, device
ve daha fazlası. Bu bağımsız değişkenler, 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 bağımsız değişkenlerin ayrıntılı açıklamaları çıkarım argümanları Bölüm.
YOLO tahminlerinin sonuçlarını nasıl görselleştirebilir ve kaydedebilirim?
YOLO ile çıkarımı çalıştırdıktan sonra Results
nesneleri, açıklamalı görüntüleri görüntülemek ve kaydetmek için yöntemler içerir. Aşağıdaki 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 bkz. sonuçlarla çalişmak Bölüm.