YOLO Vision 2026:

Ultralytics YOLO ile Model Tahmini#

Ultralytics YOLO ecosystem and integrations

Giriş#

machine learning ve computer vision dünyasında, görsel verileri anlamlandırma süreci genellikle çıkarım veya tahmin olarak adlandırılır. Ultralytics YOLO26, çok geniş bir veri kaynağı yelpazesinde yüksek performanslı, gerçek zamanlı çıkarım için tasarlanmış predict mode olarak bilinen güçlü bir özellik sunar.



Watch: How to Extract Results from Ultralytics YOLO26 Tasks for Custom Projects 🚀

Gerçek Dünya Uygulamaları#

ÜretimSporGüvenlik
Vehicle Spare Parts DetectionFootball Player DetectionPeople Fall Detection
Araç Yedek Parça AlgılamaFutbolcu Algılamaİnsan Düşme Algılama

Neden Çıkarım için Ultralytics YOLO Kullanmalı?#

Çeşitli çıkarım ihtiyaçların için neden YOLO26'nın predict modunu düşünmen gerektiğinin nedenleri şunlardır:

  • Çok Yönlülük: Görüntüler, videolar ve hatta canlı yayınlar üzerinde çıkarım yapabilir.
  • Performance: accuracy değerinden ö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 gereksinimlerine göre ayarlamak için çeşitli ayarlar ve parametreler.
  • Production Ready: Modelleri otomatik ölçeklendirme ve izleme özellikleriyle Ultralytics Platform inference endpoints olarak dağıtın veya yerel olarak çalıştırın.

Predict Modunun Temel Özellikleri#

YOLO26'nın predict modu, aşağıdakileri içeren sağlam ve çok yönlü olacak şekilde tasarlanmıştır:

  • Çoklu Veri Kaynağı Uyumluluğu: Verilerin ister bireysel görüntüler, ister bir görüntü koleksiyonu, video dosyaları veya gerçek zamanlı video akışları olsun, predict modu seni kapsar.
  • Streaming Mode: Results nesnelerinden oluşan bellek verimli bir üreteç oluşturmak için akış özelliğini kullanın. Bunu, tahmin edicinin çağrı yönteminde stream=True ayarlayarak etkinleştirin. Tüm sonuçları içeren bir liste döndüren varsayılan davranışın (stream=False) aksine, stream=True sonuçları teker teker verir, bu da onu özellikle uzun videolar ve canlı akışlar için çok yararlı kılar.
  • Toplu İşleme (Batch Processing): Birden fazla görüntüyü veya video karesini tek bir toplu iş olarak işle ve toplam çıkarım süresini daha da azalt.
  • Entegrasyon Dostu: Esnek API'si sayesinde mevcut veri hatlarına ve diğer yazılım bileşenlerine kolayca entegre et.

Ultralytics YOLO modelleri, çıkarım sırasında modele stream=True iletildiğinde, Results nesnelerinden oluşan bir Python listesi veya Results nesnelerinden oluşan bellek verimli bir üreteç döndürür:

Tahmin Et (Predict)
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # pretrained YOLO26n 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

Çıkarım Kaynakları#

YOLO26, aşağıdaki tabloda gösterildiği gibi çıkarım için farklı türde giriş kaynaklarını işleyebilir. Kaynaklar statik görüntüleri, video akışlarını ve çeşitli veri biçimlerini içerir. Tablo ayrıca her kaynağın stream=True ✅ argümanıyla akış modunda kullanılıp kullanılamayacağını belirtir. Akış modu, tüm kareleri belleğe yüklemek yerine bir sonuç üreteci oluşturduğu için videoları veya canlı akışları işlemek için faydalıdır.

İpucu

Belleği verimli bir şekilde yönetmek için uzun videoları veya büyük veri kümelerini işlerken stream=True kullanın. stream=False olduğunda, tüm kareler veya veri noktaları için sonuçlar bellekte depolanır; bu durum hızla artabilir ve büyük girdiler için belleğin dolması (out-of-memory) hatalarına neden olabilir. Buna karşın, stream=True yalnızca geçerli karenin veya veri noktasının sonuçlarını bellekte tutan bir üreteç kullanır, böylece bellek tüketimini önemli ölçüde azaltır ve bellek taşması sorunlarını önler.

KaynakÖrnekTipNotlar
image'image.jpg'str veya PathTek bir görüntü dosyası.
URL'https://ultralytics.com/images/bus.jpg'strBir görüntüye ait URL.
screenshot'screen'strEkran görüntüsü yakala.
PILImage.open('image.jpg')PIL.ImageRGB kanallı HWC formatı.
OpenCVcv2.imread('image.jpg')np.ndarrayBGR kanallı HWC formatı uint8 (0-255).
NumPynp.zeros((640,1280,3))np.ndarrayBGR kanallı HWC formatı uint8 (0-255).
torchtorch.zeros(16,3,320,640)torch.TensorRGB kanallı 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ı.
directory ✅'path/'str veya PathGörüntüleri veya videoları içeren bir dizine giden yol.
glob ✅'path/*.jpg'strBirden fazla dosyayla eşleşen glob kalıbı. Joker karakter olarak * karakterini kullanın.
YouTube ✅'https://youtu.be/LNwODJXcvt4'strBir YouTube videosuna giden URL.
stream ✅'rtsp://example.com/media.mp4'strRTSP, RTMP, TCP veya IP adresi gibi akış protokolleri için URL.
multi-stream ✅'list.streams'str veya PathHer satırda bir akış URL'si bulunan *.streams metin dosyası; yani 8 akış, 8'li grup boyutuyla (batch-size 8) çalışacaktır.
webcam ✅0intÜzerinde çıkarım yapmak için bağlı kamera cihazının indeksi.

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

Tahmin kaynakları

Bir görüntü dosyası üzerinde çıkarım çalıştır.

from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

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

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

Çıkarım Argümanları#

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

Sabit şekil ve minimum dikdörtgen karşılaştırması (rect)#

Varsayılan olarak predict, mümkün olduğunda minimum-rectangle dolgusunu etkinleştiren rect=True kullanır. Görüntü, imgsz içine sığacak şekilde ölçeklendirilir ve yalnızca en yakın adım katına kadar doldurulur, bu nedenle nihai tensör imgsz değerinden daha küçük olabilir. Minimum dikdörtgen dolgusu yalnızca gruptaki tüm görüntüler aynı şekle sahip olduğunda ve arka uç bunu desteklediğinde (PyTorch .pt veya dinamik ONNX / Triton) kullanılır. Aksi takdirde, görüntüler tam imgsz hedefine doldurulur.

Her zaman tam imgsz hedefine dolgu yapmak için rect=False kullan. Bu, dışa aktarılan modellerle (ONNX, TensorRT vb.) eşleşmesi için sabit bir giriş boyutuna ihtiyacın olduğunda önerilir.

Integer ve tuple imgsz

  • Bir integer imgsz=640, adım yuvarlamasından sonra kare bir hedef (640, 640) haline gelir.
  • Bir tuple imgsz=(384, 672) dikdörtgen bir hedef belirler. rect=True ve auto=True ile gerçek tensör bu hedeften daha küçük olabilir.

Eğitim ve tahmin/dışa aktarma

Eğitim yalnızca tek bir integer imgsz kabul eder ([h, w] listesi en büyük değerle zorlanır). Predict ve export, bir integer veya bir (height, width) tuple kabul eder.

Örnek
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

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

Çıkarım argümanları:

ArgümanTipVarsayılanAçıklama
sourcestr veya int veya NoneNoneÇı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. Atlanırsa, bir uyarı günlüğe kaydedilir ve model yerleşik demo varlıklarına (ultralytics/assets veya OBB için bir demo URL'si) geri döner. Çok çeşitli formatları ve kaynakları destekleyerek farklı girdi türlerinde esnek uygulama sağlar.
conffloat0.25Tespitler için minimum güven eşiğini ayarlar. Bu eşiğin altındaki güvenle tespit edilen nesneler dikkate alınmaz. Bu değeri ayarlamak, yanlış pozitifleri azaltmana yardımcı olabilir.
ioufloat0.7Maksimum Olmayan Bastırma (NMS) için Kesişim Üzerine Birlik (IoU) eşiği. Daha düşük değerler, örtüşen kutuları ortadan kaldırarak daha az tespit ile sonuçlanır, kopyaları azaltmak için kullanışlıdır.
imgszint veya tuple640Letterbox hedefi. Bir tamsayı kare N×N verir; bir demet (height, width) verir. rect=True ile, minimum dikdörtgen dolgusu nedeniyle gerçek tensör bu hedeften daha küçük olabilir. Sabit boyut için rect=False kullanın. Sabit şekil ve minimum dikdörtgen bölümüne bakın.
rectboolTrueEğer True ise, mümkün olduğunda minimum dikdörtgen dolgusu kullanın (aynı şekilli yığın ve desteklenen arka uç). Eğer False ise, her zaman tam imgsz değerine kadar doldurun. Sabit şekil ve minimum dikdörtgen bölümüne bakın.
quantizeint veya strNoneÇıkarım hassasiyeti: 16/"fp16" desteklenen GPU'larda FP16 çıkarımını etkinleştirir; 32/"fp32"/ayarlanmamış ise FP32'dir. INT8/PTQ nicelemesi dışa aktarma sırasında yapılandırılır, ardından dışa aktarılan model yüklenerek kullanılır. Kullanımdan kaldırılan half bayrağının yerini alır.
devicestrNoneÇıkarım için cihazı belirtir (örn., cpu, cuda:0, 0, npu veya npu:0). Kullanıcıların model yürütme için CPU, belirli bir GPU, Huawei Ascend NPU veya diğer hesaplama cihazları arasından seçim yapmasına olanak tanır.
batchint1Çıkarım için yığın boyutunu belirtir (yalnızca kaynak bir dizin, video dosyası veya .txt dosyası olduğunda çalışır). Daha büyük bir yığın boyutu daha yüksek aktarım hızı sağlayarak çıkarım için gereken toplam süreyi kısaltabilir.
max_detint300Görüntü başına izin verilen maksimum tespit sayısı. Modelin tek bir çıkarımda tespit edebileceği toplam nesne sayısını sınırlandırarak yoğun sahnelerde aşırı çıktı oluşmasını önler.
vid_strideint1Video girdileri için kare adımı. İşlemeyi hızlandırmak adına videolardaki karelerin atlanmasına olanak tanır ancak zamansal çözünürlükten ödün verilir. 1 değeri her kareyi işler, daha yüksek değerler ise kare atlar.
stream_bufferboolFalseVideo akışları için gelen karelerin kuyruğa alınıp alınmayacağını belirler. Eğer False ise, yeni karelere yer açmak için eski kareler düşürülür (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer True ise, hiçbir karenin atlanmamasını sağlayarak yeni kareleri bir tamponda kuyruğa alır, ancak çıkarım FPS'si akış FPS'sinden düşükse gecikmeye neden olur.
visualizeboolFalseTahmin edilen sınıf puanlarını artıran pikselleri gösteren, her tahminin yanında bir sınıf aktivasyon ısı haritası kaydeder. conf ve classes değerlerine uyar, bu nedenle classes=[0] yalnızca o sınıfı eşler. Yalnızca PyTorch modelleri için kullanılabilir.
augmentboolFalseTahminler için test zamanı artırmayı (TTA) etkinleştirir; çıkarım hızından ödün vererek tespit sağlamlığını potansiyel olarak artırabilir.
agnostic_nmsboolFalseFarklı sınıflara ait örtüşen kutuları birleştiren, sınıftan bağımsız bir Maksimum Olmayan Bastırma (NMS) yöntemini etkinleştirir. Sınıf örtüşmesinin yaygın olduğu çok sınıflı tespit senaryolarında kullanışlıdır. Uçtan uca modeller için (YOLO26, YOLOv10), bu özellik yalnızca aynı tespitin birden fazla sınıf etiketiyle görünmesini engeller (IoU=1.0 kopyalar) ve farklı kutular arasında IoU eşik tabanlı bastırma yapmaz.
classeslist[int]NoneTahminleri belirli bir sınıf kimliği setine göre filtreler. Yalnızca belirtilen sınıflara ait tespitler döndürülür. Çok sınıflı tespit görevlerinde ilgili nesnelere odaklanmak için kullanışlıdır.
retina_masksboolFalseYüksek çözünürlüklü bölütleme 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örlerinin veya gömmelerin çıkarılacağı katmanları belirtir. Sondan bir önceki katman gömmeleri için model.embed(source) kullanın veya belirli katmanları seçmek için model.predict(source, embed=[layer]) kullanın. Kümeleme veya benzerlik arama gibi sonraki görevler için kullanışlıdır.
projectstrNonesave etkinse tahmin çıktılarının kaydedildiği proje dizininin adı.
namestrNoneTahmin çalıştırmasının adı. save etkinse tahmin çıktılarının saklandığı proje klasöründe bir alt dizin oluşturmak için kullanılır.
streamboolFalseTüm kareleri aynı anda belleğe yüklemek yerine Results nesneleri üreten bir jeneratör döndürerek 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ğlayan detaylı çıkarım günlüklerinin terminalde gösterilip gösterilmeyeceğini kontrol eder.
compilebool veya strFalsePyTorch 2.x torch.compile grafik derlemesini backend='inductor' ile etkinleştirir. True"default", False → devre dışı bırakma veya "default", "reduce-overhead", "max-autotune-no-cudagraphs" gibi bir dize modu kabul eder. Desteklenmiyorsa bir uyarı ile eager moduna geri döner.
channels_lastboolFalseÇıkarım sırasında evrişimler için channels_last (NHWC) bellek biçimini kullanır, sonuçlarda hiçbir değişiklik olmadan CUDA Tensor Core GPU'larını hızlandırır. Yalnızca yerel PyTorch modelleri için geçerlidir; CPU, MPS ve TensorRT ve ONNX gibi dışarı aktarılan biçimler için yoksayılır.
end2endboolNoneNMS içermeyen çıkarımı destekleyen YOLO modellerinde uçtan uca modu geçersiz kılar (YOLO26, YOLOv10). Bunu False olarak ayarlamak, geleneksel NMS boru hattını kullanarak tahmin çalıştırmanıza olanak tanır ve ayrıca iou argümanını kullanmanıza imkan sağlar. Ayrıntılar için Uçtan Uca Tespit kılavuzuna bakın.

Görselleştirme argümanları:

ArgümanTipVarsayılanAçıklama
showboolFalseEğer True ise, açıklama eklenmiş 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 TrueEk açıklama eklenmiş görüntülerin veya videoların dosyalara kaydedilmesini etkinleştirir. Dokümantasyon, daha fazla analiz veya sonuç paylaşımı için kullanışlıdır. CLI kullanıldığında varsayılan olarak True, Python içinde kullanıldığında False değerini alır.
save_framesboolFalseVideolar işlenirken, tek tek kareleri görüntü olarak kaydeder. Belirli kareleri çıkarmak veya detaylı kare kare analiz yapmak için kullanışlıdır.
save_txtboolFalse[class] [x_center] [y_center] [width] [height] [confidence] formatını takip ederek tespit sonuçlarını bir metin dosyasına kaydeder. Diğer analiz araçlarıyla entegrasyon için kullanışlıdır.
save_confboolFalseKaydedilen metin dosyalarına güven puanlarını dahil eder. Sonradan işleme ve analiz için mevcut olan detay düzeyini artırır.
save_cropboolFalseTespit edilen nesnelerin kırpılmış görüntülerini kaydeder. Veri seti artırma, analiz veya belirli nesneler için odaklanmış veri setleri oluşturmak için kullanışlıdır.
show_labelsboolTrueGörsel çıktıda her bir tespit için etiketleri görüntüler. Tespit edilen nesnelerin anında anlaşılmasını sağlar.
show_confboolTrueHer tespit için güven skorunu etiketin yanında görüntüler. Her bir tespit için modelin kesinliği hakkında içgörü sağlar.
show_boxesboolTrueTespit edilen nesnelerin etrafına sınırlayıcı kutular çizer. Görüntülerde veya video karelerinde nesnelerin görsel tanımlanması ve konumlandırılması için gereklidir.
line_widthint or NoneNoneSınırlayıcı kutuların çizgi genişliğini belirtir. Eğer None ise, ç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ı#

YOLO26, 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 tablo geçerli Ultralytics görüntü formatlarını içerir.

Not

HEIC/HEIF formatları, ilk kullanımda otomatik olarak yüklenen pi-heif gerektirir. AVIF, Pillow tarafından yerel olarak desteklenir.

Görüntü Son EkleriÖrnek Tahmin KomutuReferans
.avifyolo predict source=image.avifAV1 Image File Format
.bmpyolo predict source=image.bmpMicrosoft BMP File Format
.dngyolo predict source=image.dngAdobe DNG
.heicyolo predict source=image.heicHigh Efficiency Image Format
.heifyolo predict source=image.heifHigh Efficiency Image Format
.jp2yolo predict source=image.jp2JPEG 2000
.jpegyolo predict source=image.jpegJPEG
.jpgyolo predict source=image.jpgJPEG
.mpoyolo predict source=image.mpoMulti Picture Object
.pngyolo predict source=image.pngPortable Network Graphics
.tifyolo predict source=image.tifTag Image File Format
.tiffyolo predict source=image.tiffTag Image File Format
.webpyolo predict source=image.webpWebP

Videolar#

Aşağıdaki tablo geçerli Ultralytics video formatlarını içerir.

Video UzantılarıÖrnek Tahmin KomutuReferans
.asfyolo predict source=video.asfAdvanced Systems Format
.aviyolo predict source=video.aviAudio Video Interleave
.gifyolo predict source=video.gifGraphics Interchange Format
.m4vyolo predict source=video.m4vMPEG-4 Part 14
.mkvyolo predict source=video.mkvMatroska
.movyolo predict source=video.movQuickTime File Format
.mp4yolo predict source=video.mp4MPEG-4 Part 14 - Wikipedia
.mpegyolo predict source=video.mpegMPEG-1 Part 2
.mpgyolo predict source=video.mpgMPEG-1 Part 2
.tsyolo predict source=video.tsMPEG Transport Stream
.wmvyolo predict source=video.wmvWindows Media Video
.webmyolo predict source=video.webmWebM Project

Sonuçlarla Çalışmak#

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

Sonuçlar
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.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 özniteliklere sahiptir:

ÖznitelikTipAçıklama
orig_imgnp.ndarrayNumPy dizisi olarak orijinal görüntü.
orig_shapetuple(yükseklik, genişlik) formatında orijinal görüntü şekli.
boxesBoxes, optionalTespit sınırlayıcı kutularını (bounding boxes) içeren bir Boxes nesnesi.
masksMasks, optionalTespit maskelerini içeren bir Masks nesnesi.
probsProbs, optionalSınıflandırma görevi için her sınıfın olasılıklarını içeren bir Probs nesnesi.
keypointsKeypoints, optionalHer nesne için tespit edilen kilit noktaları (keypoints) içeren bir Keypoints nesnesi.
obbOBB, optionalYönlendirilmiş sınırlayıcı kutuları (oriented bounding boxes) içeren bir OBB nesnesi.
semantic_maskSemanticMask, optionalYoğun bir piksel başına sınıf haritası içeren bir SemanticMask nesnesi.
speeddictGörüntü başına milisaniye cinsinden ön işleme, çıkarım ve son işleme hızlarını içeren bir sözlük.
namesdictSınıf dizinlerini sınıf adlarıyla eşleştiren bir sözlük.
pathstrGörüntü dosyasının yolu.
save_dirstr, optionalSonuçları kaydetmek için dizin.

Göreve Göre Sonuçlar#

Aşağıdaki hangi alanların doldurulacağı modelinizin görevine bağlıdır — henüz bir tane seçmediyseniz compare detection, segmentation, semantic segmentation, depth estimation, classification, pose, and OBB karşılaştırın. Her tahmin, görüntü veya kare başına bir Results nesnesi döndürür. Yukarıdaki ortak alanlar her zaman kullanılabilirken, göreve özgü tahmin verileri aşağıdaki alanlarda saklanır. Koordinat, güven ve olasılık tensörleri, yarı hassasiyet (half precision) kullanılmadığı sürece torch.float32'dir, yarı hassasiyet kullanıldığında ise torch.float16'tür. result.numpy() sonrasında tensörler, eşleşen NumPy veri türlerine (dtypes) sahip NumPy dizileri haline gelir. Örnek maskeler (instance masks) torch.uint8 ikili tensörleriyken, semantik maskeler sınıf sayısına bağlı olarak sınıf kimlikleri için en küçük pratik tamsayı veri türünü kullanır: torch.uint8, torch.int16 veya torch.int32.

ÖznitelikTipŞekilAçıklama
result.boxesBoxes(N)Tespit kutuları.
result.boxes.datatorch.float32(N,6/7)Ham [x1,y1,x2,y2,conf,cls] ve isteğe bağlı izleme kimliği (track ID).
result.boxes.xyxytorch.float32(N,4)xyxy piksel kutuları.
result.boxes.conftorch.float32(N,)Güven skorları.
result.boxes.clstorch.float32(N,)Sınıf kimlikleri; adlar için int türüne dönüştürülür.

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

YöntemDönüş TürüAçıklama
update()NoneResults nesnesini kutular, maskeler, olasılıklar, obb, anahtar noktalar veya anlamsal maskeler gibi yeni verilerle günceller.
cpu()ResultsTüm tensörler CPU belleğine taşınmış şekilde Results nesnesinin bir kopyasını döndürür.
numpy()ResultsTüm tensörler NumPy dizilerine dönüştürülmüş şekilde Results nesnesinin bir kopyasını döndürür.
cuda()ResultsTüm tensörler GPU belleğine taşınmış şekilde Results nesnesinin bir kopyasını döndürür.
to()ResultsTensörler belirtilen aygıta ve dtype'a taşınmış şekilde Results nesnesinin bir kopyasını döndürür.
new()ResultsAynı resim, yol, isimler ve hız özniteliklerine sahip yeni bir Results nesnesi oluşturur.
plot()np.ndarrayAlgılama sonuçlarını bir giriş BGR resim üzerine çizer ve açıklamalı resmi döndürür.
show()NoneResmi açıklamalı çıkarım sonuçlarıyla görüntüler.
save()strAçıklamalı çıkarım sonuçları resmini 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 dosyaya giden yolu döndürür.
save_crop()NoneKırpılmış algılama resimlerini 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'ine dönüştürür.
to_csv()strAlgılama sonuçlarını CSV formatına dönüştürür.
to_json()strAlgılama sonuçlarını JSON formatına dönüştürür.

Daha fazla ayrıntı için Results class documentation sayfasına bakın.

Kutular#

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

Kutular
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.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 Boxes sınıfı yöntemleri ve özellikleri için adları, türleri ve açıklamaları dahil olmak üzere bir tablo:

AdTipAçıklama
cpu()YöntemNesneyi CPU belleğine taşı.
numpy()YöntemNesneyi bir NumPy dizisine dönüştür.
cuda()YöntemNesneyi CUDA belleğine taşı.
to()YöntemNesneyi belirtilen cihaza taşı.
xyxyÖzellik (torch.Tensor)Kutuları xyxy formatında döndür.
confÖzellik (torch.Tensor)Kutuların güven 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 (track ID) döndür (eğer mevcutsa).
xywhÖzellik (torch.Tensor)Kutuları xywh formatında döndür.
xyxynÖzellik (torch.Tensor)Kutuları orijinal görüntü boyutuna göre normalleştirilmiş xyxy formatında döndür.
xywhnÖzellik (torch.Tensor)Kutuları orijinal görüntü boyutuna göre normalleştirilmiş xywh formatında döndür.

Daha fazla ayrıntı için Boxes class documentation sayfasına bakın.

Maskeler#

Masks nesnesi maskeleri segmentlere indekslemek, manipüle etmek ve dönüştürmek için kullanılabilir.

Maskeler
from ultralytics import YOLO

# Load a pretrained YOLO26n-seg Segment model
model = YOLO("yolo26n-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 Masks sınıfı yöntemleri ve özellikleri için adları, türleri ve açıklamaları dahil olmak üzere bir tablo:

AdTipAçıklama
dataÖzellik (torch.Tensor)torch.uint8 shape (N,H,W) ve değerleri 0 veya 1 olan ikili maske tensörüdür.
cpu()YöntemMaske tensörünü CPU belleğinde döndürür.
numpy()YöntemMaske tensörünü bir NumPy dizisi olarak döndürür.
cuda()YöntemMaske tensörünü GPU belleğinde döndürür.
to()YöntemMaske tensörünü belirtilen cihaz ve veri türüyle döndürür.
xynÖzellik (list[np.ndarray])Normalleştirilmiş maske poligonlarının bir listesi.
xyÖzellik (list[np.ndarray])Piksel koordinatlarındaki maske poligonlarının bir listesi.

Daha fazla ayrıntı için Masks class documentation sayfasına bakın.

SemanticMask#

SemanticMask, semantik segmentasyon sonuçları için yoğun bir sınıf haritası depolar. Masks aksine, nesne başına bir ikili maske içermez ve çokgen (polygon) yardımcıları sağlamaz.

SemanticMask
from ultralytics import YOLO

# Load a pretrained YOLO26n-sem Semantic model
model = YOLO("yolo26n-sem.pt")

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

# View results
for r in results:
    print(r.semantic_mask.data)  # print the H x W class-ID map
AdTipAçıklama
dataÖzellik (torch.Tensor)Shape (H,W) olan sınıf kimliği haritası. Dtype, sınıf sayısına göre seçilen torch.uint8, torch.int16 veya torch.int32'tür.
shapeÖzellik (tuple)Sınıf haritasının şekli, genellikle result.orig_shape ile eşleşir.
cpu()YöntemAnlamsal maske tensörünü CPU belleğinde döndürür.
numpy()YöntemAnlamsal maske tensörünü bir NumPy dizisi olarak döndürür.
cuda()YöntemAnlamsal maske tensörünü GPU belleğinde döndürür.
to()YöntemAnlamsal maske tensörünü belirtilen cihaz ve veri türüyle döndürür.

Anahtar Noktalar (Keypoints)#

Keypoints nesnesi koordinatları indekslemek, manipüle etmek ve normalleştirmek için kullanılabilir.

Anahtar Noktalar (Keypoints)
from ultralytics import YOLO

# Load a pretrained YOLO26n-pose Pose model
model = YOLO("yolo26n-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 Keypoints sınıfı yöntemleri ve özellikleri için adları, türleri ve açıklamaları dahil olmak üzere bir tablo:

AdTipAçıklama
cpu()YöntemAnahtar noktalar tensörünü CPU belleğinde döndürür.
numpy()YöntemAnahtar noktalar tensörünü bir NumPy dizisi olarak döndürür.
cuda()YöntemAnahtar noktalar tensörünü GPU belleğinde döndürür.
to()YöntemAnahtar noktalar tensörünü belirtilen cihaz ve veri türüyle döndürür.
xynÖzellik (torch.Tensor)Tensörler olarak temsil edilen normalleştirilmiş anahtar noktaların bir listesi.
xyÖzellik (torch.Tensor)Tensörler olarak temsil edilen piksel koordinatlarındaki anahtar noktaların bir listesi.
confÖzellik (torch.Tensor)Varsa anahtar noktaların güven değerlerini döndürür, yoksa None döndürür.

Daha fazla ayrıntı için Keypoints class documentation sayfasına bakın.

Probs#

Probs nesnesi top1 ve top5 sınıflandırma indekslerini ve skorlarını elde etmek için kullanılabilir.

Probs
from ultralytics import YOLO

# Load a pretrained YOLO26n-cls Classify model
model = YOLO("yolo26n-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 Probs sınıfı için yöntemleri ve özellikleri özetleyen bir tablo:

AdTipAçıklama
cpu()YöntemProbs tensörünün bir kopyasını CPU belleğinde döndürür.
numpy()YöntemProbs tensörünün bir kopyasını bir NumPy dizisi olarak döndürür.
cuda()YöntemProbs tensörünün bir kopyasını GPU belleğinde döndürür.
to()YöntemProbs tensörünün bir kopyasını belirtilen cihaz ve veri türüyle döndürür.
top1Özellik (int)En iyi 1. sınıfın indeksi.
top5Özellik (list[int])En iyi 5 sınıfın indeksleri.
top1confÖzellik (torch.Tensor)En iyi 1. sınıfın güveni.
top5confÖzellik (torch.Tensor)En iyi 5 sınıfın güvenleri.

Daha fazla ayrıntı için Probs class documentation sayfasına bakın.

OBB#

OBB nesnesi, yönlendirilmiş sınırlayıcı kutuları (oriented bounding boxes) farklı formatlara indekslemek, manipüle etmek ve dönüştürmek için kullanılabilir.

OBB
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n-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 OBB sınıfı yöntemleri ve özellikleri için adları, türleri ve açıklamaları dahil olmak üzere bir tablo:

AdTipAçıklama
cpu()YöntemNesneyi CPU belleğine taşı.
numpy()YöntemNesneyi bir NumPy dizisine dönüştür.
cuda()YöntemNesneyi CUDA belleğine taşı.
to()YöntemNesneyi belirtilen cihaza taşı.
confÖzellik (torch.Tensor)Kutuların güven 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 (track ID) döndür (eğer mevcutsa).
xyxyÖzellik (torch.Tensor)Yatay kutuları xyxy formatında döndür.
xywhrÖzellik (torch.Tensor)Döndürülmüş kutuları xywhr formatında döndür.
xyxyxyxyÖzellik (torch.Tensor)Döndürülmüş kutuları xyxyxyxy formatında döndür.
xyxyxyxynÖzellik (torch.Tensor)Döndürülmüş kutuları görüntü boyutuna göre normalleştirilmiş xyxyxyxy formatında döndür.

Daha fazla ayrıntı için OBB class documentation sayfasına bakın.

Sonuçları Çizdirme#

Results nesnelerindeki plot() yöntemi, algılanan nesneleri (sınırlayıcı kutular, maskeler, kilit 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çıklama eklenmiş görüntüyü bir NumPy dizisi olarak döndürür ve böylece kolayca görüntülenmesini veya kaydedilmesini sağlar.

Çizim
from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.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ümanTipAçıklamaVarsayılan
confboolTespit güven skorlarını dahil et.True
line_widthfloatSınırlayıcı kutuların çizgi genişliği. None ise görüntü boyutuyla ölçeklenir.None
font_sizefloatMetin yazı tipi boyutu. None ise görüntü boyutuyla ölçeklenir.None
fontstrMetin açıklamaları için yazı tipi adı.'Arial.ttf'
pilboolGörüntüyü bir PIL Image nesnesi olarak döndür.False
imgnp.ndarray | torch.TensorAlternatif görüntü. Tensor'ler ardışık HWC BGR uint8 olmalıdır.None
kpt_radiusintÇizilen anahtar noktalar için yarıçap.5
kpt_lineboolAnahtar noktaları çizgilerle birleştir.True
labelsboolAçıklamalara sınıf etiketlerini dahil et.True
boxesboolSınırlayıcı kutuları görselin üzerine bindir.True
masksboolMaskeleri görselin üzerine bindir.True
probsboolSınıflandırma olasılıklarını dahil et.True
showboolAçıklamalı görseli varsayılan görsel görüntüleyiciyi kullanarak doğrudan görüntüle.False
saveboolAçıklama eklenmiş görüntüyü filename tarafından belirtilen bir dosyaya kaydet.False
filenamestrsave, True ise, açıklama eklenmiş görüntünün kaydedileceği dosyanın yolu ve adı.None
color_modestrRenk modunu belirt, örneğin 'instance' veya 'class'.'class'
txt_colortuple[int, int, int]Sınırlayıcı kutu ve görsel sınıflandırma etiketi için BGR metin rengi.(255, 255, 255)

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

Farklı iş parçacıklarında birden fazla YOLO modelini paralel olarak çalıştırırken çıkarım sırasında iş parçacığı güvenliğini sağlamak çok önemlidir. İş parçacığı güvenli çıkarım, her iş parçacığının tahminlerinin izole edilmesini ve birbirine karışmamasını sağlayarak, yarış durumlarını önler ve tutarlı, güvenilir çıktılar elde etmeni garanti eder.

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 özgü 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 oluştur:

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=("yolo26n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image2.jpg")).start()

YOLO modelleri ile iş parçacığı güvenli (thread-safe) çıkarım hakkında derinlemesine bir bakış ve adım adım talimatlar için lütfen YOLO İş Parçacığı Güvenli Çıkarım Kılavuzu sayfamıza göz at. Bu kılavuz, yaygın tuzaklardan kaçınman ve çok iş parçacıklı çıkarımının sorunsuz çalışmasını sağlaman için sana gereken tüm bilgileri sağlayacaktır.

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

Video kareleri üzerinde çıkarım çalıştırmak için OpenCV (cv2) ve YOLO kullanan bir Python betiği burada yer alıyor. Bu betik, gerekli paketleri (opencv-python ve ultralytics) zaten yüklemiş olduğunu varsayar.

Akış for-döngüsü
import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.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 karesinde tahminler yürütecek, sonuçları görselleştirecek ve bir pencerede görüntüleyecektir. Döngüden 'q' tuşuna basarak çıkılabilir.

Sırada ne var#

Ön eğitilmiş bir modelin ötesine geçmeye hazır mısın? Görevinin sorununa uyup uymadığını onayla, Veri Setleri kılavuzu ile kendi verilerini biçimlendir, ardından üzerinde eğitim yap.

SSS#

Ultralytics YOLO nedir ve gerçek zamanlı çıkarım için predict modu ne işe yarar?#

Ultralytics YOLO, gerçek zamanlı nesne tespiti, örnek segmentasyonu, anlamsal segmentasyon, derinlik tahmini ve sınıflandırma için son teknoloji bir modeldir. predict 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 gerçekleştirmesini sağlar. Performans ve çok yönlülük için tasarlanmış olup toplu işleme ve akış modları da sunar. Özellikleri hakkında daha fazla ayrıntı için Ultralytics YOLO predict modu bölümüne göz at.

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

Ultralytics YOLO; bireysel 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ı model.predict() çağrısında belirtebilirsin. Örneğin, yerel bir görüntü için 'image.jpg' veya bir URL için 'https://ultralytics.com/images/bus.jpg' kullan. Belgelerdeki çeşitli çıkarım kaynakları için ayrıntılı örneklere göz at.

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, tahmincinin çağrı yönteminde stream=True ayarını yaparak akış modunu kullanabilirsin. Akış modu, tüm kareleri belleğe yüklemek yerine bellek açısından verimli bir Results nesne üreteci oluşturur. Uzun videoları veya büyük veri setlerini işlemek için akış modu özellikle yararlıdır. Akış modu hakkında daha fazla bilgi edin.

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

YOLO içindeki model.predict() yöntemi; conf, iou, imgsz, device ve daha fazlası gibi çeşitli argümanları destekler. 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ştirmene olanak tanır. Bu argümanların ayrıntılı açıklamaları çıkarım argümanları bölümünde bulunabilir.

Bir YOLO modelinden nasıl embedding çıkarabilirim?#

Sondan bir önceki katmandan özellik gömmeleri (feature embeddings) çıkarmak için model.embed(source) kullan veya belirli katmanları seçmek için embed=[layer_index] değerini model.predict() içine ilet.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
source = "https://ultralytics.com/images/bus.jpg"

results = model.predict(source)  # Results objects
embeddings = model.embed(source)  # list of torch.Tensor embeddings

YOLO tahminlerinin sonuçlarını nasıl görselleştirebilir 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. Sonuçları görselleştirmek ve kaydetmek için result.show() ve result.save(filename="result.jpg") gibi yöntemleri kullanabilirsin. Dosya adı yolundaki eksik üst dizinler otomatik olarak oluşturulur (örn. result.save("path/to/result.jpg")). Bu yöntemlerin kapsamlı bir listesi için sonuçlarla çalışma bölümüne başvur.

Yorumlar