Ultralytics YOLO ile Model Tahmini#
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ı#
| Üretim | Spor | Güvenlik |
|---|---|---|
![]() | ![]() | ![]() |
| Araç Yedek Parça Algılama | Futbolcu 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:
Resultsnesnelerinden oluşan bellek verimli bir üreteç oluşturmak için akış özelliğini kullanın. Bunu, tahmin edicinin çağrı yöntemindestream=Trueayarlayarak etkinleştirin. Tüm sonuçları içeren bir liste döndüren varsayılan davranışın (stream=False) aksine,stream=Truesonuç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:
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.
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 | Örnek | Tip | Notlar |
|---|---|---|---|
| image | 'image.jpg' | str veya Path | Tek bir görüntü dosyası. |
| URL | 'https://ultralytics.com/images/bus.jpg' | str | Bir görüntüye ait URL. |
| screenshot | 'screen' | str | Ekran görüntüsü yakala. |
| PIL | Image.open('image.jpg') | PIL.Image | RGB kanallı HWC formatı. |
| OpenCV | cv2.imread('image.jpg') | np.ndarray | BGR kanallı HWC formatı uint8 (0-255). |
| NumPy | np.zeros((640,1280,3)) | np.ndarray | BGR kanallı HWC formatı uint8 (0-255). |
| torch | torch.zeros(16,3,320,640) | torch.Tensor | RGB kanallı 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ı. |
| directory ✅ | 'path/' | str veya Path | Görüntüleri veya videoları içeren bir dizine giden yol. |
| glob ✅ | 'path/*.jpg' | str | Birden fazla dosyayla eşleşen glob kalıbı. Joker karakter olarak * karakterini kullanın. |
| YouTube ✅ | 'https://youtu.be/LNwODJXcvt4' | str | Bir YouTube videosuna giden URL. |
| stream ✅ | 'rtsp://example.com/media.mp4' | str | RTSP, RTMP, TCP veya IP adresi gibi akış protokolleri için URL. |
| multi-stream ✅ | 'list.streams' | str veya Path | Her satırda bir akış URL'si bulunan *.streams metin dosyası; yani 8 akış, 8'li grup boyutuyla (batch-size 8) çalışacaktır. |
| webcam ✅ | 0 | int | Ü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:
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=Trueveauto=Trueile 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.
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üman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
source | str veya int veya None | None | Çı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. |
conf | float | 0.25 | Tespitler 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. |
iou | float | 0.7 | Maksimum 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. |
imgsz | int veya tuple | 640 | Letterbox 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. |
rect | bool | True | Eğ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. |
quantize | int veya str | None | Çı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. |
device | str | None | Çı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. |
batch | int | 1 | Çı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_det | int | 300 | Gö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_stride | int | 1 | Video 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_buffer | bool | False | Video 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. |
visualize | bool | False | Tahmin 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. |
augment | bool | False | Tahminler 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_nms | bool | False | Farklı 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. |
classes | list[int] | None | Tahminleri 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_masks | bool | False | Yü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. |
embed | list[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. |
project | str | None | save etkinse tahmin çıktılarının kaydedildiği proje dizininin adı. |
name | str | None | Tahmin ç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. |
stream | bool | False | Tü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. |
verbose | bool | True | Tahmin 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. |
compile | bool veya str | False | PyTorch 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_last | bool | False | Çı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. |
end2end | bool | None | NMS 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üman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
show | bool | False | Eğ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. |
save | bool | False or True | Ek 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_frames | bool | False | Videolar 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_txt | bool | False | [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_conf | bool | False | Kaydedilen 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_crop | bool | False | Tespit 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_labels | bool | True | Görsel çıktıda her bir tespit için etiketleri görüntüler. Tespit edilen nesnelerin anında anlaşılmasını sağlar. |
show_conf | bool | True | Her 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_boxes | bool | True | Tespit 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_width | int or None | None | Sı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.
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 Komutu | Referans |
|---|---|---|
.avif | yolo predict source=image.avif | AV1 Image File Format |
.bmp | yolo predict source=image.bmp | Microsoft BMP File Format |
.dng | yolo predict source=image.dng | Adobe DNG |
.heic | yolo predict source=image.heic | High Efficiency Image Format |
.heif | yolo predict source=image.heif | High Efficiency Image Format |
.jp2 | yolo predict source=image.jp2 | JPEG 2000 |
.jpeg | yolo predict source=image.jpeg | JPEG |
.jpg | yolo predict source=image.jpg | JPEG |
.mpo | yolo predict source=image.mpo | Multi Picture Object |
.png | yolo predict source=image.png | Portable Network Graphics |
.tif | yolo predict source=image.tif | Tag Image File Format |
.tiff | yolo predict source=image.tiff | Tag Image File Format |
.webp | yolo predict source=image.webp | WebP |
Videolar#
Aşağıdaki tablo geçerli Ultralytics video formatlarını içerir.
| Video Uzantıları | Örnek Tahmin Komutu | Referans |
|---|---|---|
.asf | yolo predict source=video.asf | Advanced Systems Format |
.avi | yolo predict source=video.avi | Audio Video Interleave |
.gif | yolo predict source=video.gif | Graphics Interchange Format |
.m4v | yolo predict source=video.m4v | MPEG-4 Part 14 |
.mkv | yolo predict source=video.mkv | Matroska |
.mov | yolo predict source=video.mov | QuickTime File Format |
.mp4 | yolo predict source=video.mp4 | MPEG-4 Part 14 - Wikipedia |
.mpeg | yolo predict source=video.mpeg | MPEG-1 Part 2 |
.mpg | yolo predict source=video.mpg | MPEG-1 Part 2 |
.ts | yolo predict source=video.ts | MPEG Transport Stream |
.wmv | yolo predict source=video.wmv | Windows Media Video |
.webm | yolo predict source=video.webm | WebM Project |
Sonuçlarla Çalışmak#
Tüm Ultralytics predict() çağrıları bir Results nesne listesi döndürecektir:
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 inferenceResults nesneleri aşağıdaki özniteliklere sahiptir:
| Öznitelik | Tip | Açıklama |
|---|---|---|
orig_img | np.ndarray | NumPy dizisi olarak orijinal görüntü. |
orig_shape | tuple | (yükseklik, genişlik) formatında orijinal görüntü şekli. |
boxes | Boxes, optional | Tespit sınırlayıcı kutularını (bounding boxes) içeren bir Boxes nesnesi. |
masks | Masks, optional | Tespit 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 tespit edilen kilit noktaları (keypoints) içeren bir Keypoints nesnesi. |
obb | OBB, optional | Yönlendirilmiş sınırlayıcı kutuları (oriented bounding boxes) içeren bir OBB nesnesi. |
semantic_mask | SemanticMask, optional | Yoğun bir piksel başına sınıf haritası içeren bir SemanticMask nesnesi. |
speed | dict | Görüntü başına milisaniye cinsinden ön işleme, çıkarım ve son işleme hızlarını içeren bir sözlük. |
names | dict | Sınıf dizinlerini sınıf adlarıyla eşleştiren bir sözlük. |
path | str | Görüntü dosyasının yolu. |
save_dir | str, optional | Sonuç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.
| Öznitelik | Tip | Şekil | Açıklama |
|---|---|---|---|
result.boxes | Boxes | (N) | Tespit kutuları. |
result.boxes.data | torch.float32 | (N,6/7) | Ham [x1,y1,x2,y2,conf,cls] ve isteğe bağlı izleme kimliği (track ID). |
result.boxes.xyxy | torch.float32 | (N,4) | xyxy piksel kutuları. |
result.boxes.conf | torch.float32 | (N,) | Güven skorları. |
result.boxes.cls | torch.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öntem | Dönüş Türü | Açıklama |
|---|---|---|
update() | None | Results nesnesini kutular, maskeler, olasılıklar, obb, anahtar noktalar veya anlamsal maskeler gibi yeni verilerle günceller. |
cpu() | Results | Tüm tensörler CPU belleğine taşınmış şekilde Results nesnesinin bir kopyasını döndürür. |
numpy() | Results | Tüm tensörler NumPy dizilerine dönüştürülmüş şekilde Results nesnesinin bir kopyasını döndürür. |
cuda() | Results | Tüm tensörler GPU belleğine taşınmış şekilde Results nesnesinin bir kopyasını döndürür. |
to() | Results | Tensörler belirtilen aygıta ve dtype'a taşınmış şekilde Results nesnesinin bir kopyasını döndürür. |
new() | Results | Aynı resim, yol, isimler ve hız özniteliklerine sahip yeni bir Results nesnesi oluşturur. |
plot() | np.ndarray | Algılama sonuçlarını bir giriş BGR resim üzerine çizer ve açıklamalı resmi döndürür. |
show() | None | Resmi açıklamalı çıkarım sonuçlarıyla görüntüler. |
save() | str | Açıklamalı çıkarım sonuçları resmini 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 dosyaya giden yolu döndürür. |
save_crop() | None | Kı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() | DataFrame | Algılama sonuçlarını bir Polars DataFrame'ine dönüştürür. |
to_csv() | str | Algılama sonuçlarını CSV formatına dönüştürür. |
to_json() | str | Algı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.
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:
| Ad | Tip | Açıklama |
|---|---|---|
cpu() | Yöntem | Nesneyi CPU belleğine taşı. |
numpy() | Yöntem | Nesneyi bir NumPy dizisine dönüştür. |
cuda() | Yöntem | Nesneyi CUDA belleğine taşı. |
to() | Yöntem | Nesneyi 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.
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:
| Ad | Tip | Açı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öntem | Maske tensörünü CPU belleğinde döndürür. |
numpy() | Yöntem | Maske tensörünü bir NumPy dizisi olarak döndürür. |
cuda() | Yöntem | Maske tensörünü GPU belleğinde döndürür. |
to() | Yöntem | Maske 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.
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| Ad | Tip | Açı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öntem | Anlamsal maske tensörünü CPU belleğinde döndürür. |
numpy() | Yöntem | Anlamsal maske tensörünü bir NumPy dizisi olarak döndürür. |
cuda() | Yöntem | Anlamsal maske tensörünü GPU belleğinde döndürür. |
to() | Yöntem | Anlamsal 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.
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:
| Ad | Tip | Açıklama |
|---|---|---|
cpu() | Yöntem | Anahtar noktalar tensörünü CPU belleğinde döndürür. |
numpy() | Yöntem | Anahtar noktalar tensörünü bir NumPy dizisi olarak döndürür. |
cuda() | Yöntem | Anahtar noktalar tensörünü GPU belleğinde döndürür. |
to() | Yöntem | Anahtar 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.
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:
| Ad | Tip | Açıklama |
|---|---|---|
cpu() | Yöntem | Probs tensörünün bir kopyasını CPU belleğinde döndürür. |
numpy() | Yöntem | Probs tensörünün bir kopyasını bir NumPy dizisi olarak döndürür. |
cuda() | Yöntem | Probs tensörünün bir kopyasını GPU belleğinde döndürür. |
to() | Yöntem | Probs 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.
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:
| Ad | Tip | Açıklama |
|---|---|---|
cpu() | Yöntem | Nesneyi CPU belleğine taşı. |
numpy() | Yöntem | Nesneyi bir NumPy dizisine dönüştür. |
cuda() | Yöntem | Nesneyi CUDA belleğine taşı. |
to() | Yöntem | Nesneyi 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.
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üman | Tip | Açıklama | Varsayılan |
|---|---|---|---|
conf | bool | Tespit güven skorlarını dahil et. | True |
line_width | float | Sınırlayıcı kutuların çizgi genişliği. None ise görüntü boyutuyla ölçeklenir. | None |
font_size | float | Metin yazı tipi boyutu. None ise görüntü boyutuyla ölçeklenir. | None |
font | str | Metin açıklamaları için yazı tipi adı. | 'Arial.ttf' |
pil | bool | Görüntüyü bir PIL Image nesnesi olarak döndür. | False |
img | np.ndarray | torch.Tensor | Alternatif görüntü. Tensor'ler ardışık HWC BGR uint8 olmalıdır. | None |
kpt_radius | int | Çizilen anahtar noktalar için yarıçap. | 5 |
kpt_line | bool | Anahtar noktaları çizgilerle birleştir. | True |
labels | bool | Açıklamalara sınıf etiketlerini dahil et. | True |
boxes | bool | Sınırlayıcı kutuları görselin üzerine bindir. | True |
masks | bool | Maskeleri görselin üzerine bindir. | True |
probs | bool | Sınıflandırma olasılıklarını dahil et. | True |
show | bool | Açıklamalı görseli varsayılan görsel görüntüleyiciyi kullanarak doğrudan görüntüle. | False |
save | bool | Açıklama eklenmiş görüntüyü filename tarafından belirtilen bir dosyaya kaydet. | False |
filename | str | save, True ise, açıklama eklenmiş görüntünün kaydedileceği dosyanın yolu ve adı. | None |
color_mode | str | Renk modunu belirt, örneğin 'instance' veya 'class'. | 'class' |
txt_color | tuple[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 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.
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 embeddingsYOLO 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.


