Ultralytics YOLO ile Model Tahmini
Giriş
Makine öğrenimi ve bilgisayarlı görü dünyasında, görsel verileri anlamlandırma sürecine genellikle çıkarım veya tahmin denir. Ultralytics YOLO26, çok çeşitli veri kaynaklarında yüksek performanslı, gerçek zamanlı çıkarım için özel olarak tasarlanmış tahmin modu adında 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 Tespiti | Futbolcu Tespiti | İnsan Düşme Tespiti |
Çıkarım için neden Ultralytics YOLO kullanmalısın?
Çeşitli çıkarım ihtiyaçların için YOLO26'nın tahmin modunu neden düşünmen gerektiği burada açıklanmıştır:
- Çok yönlülük: Görüntüler, videolar ve hatta canlı yayınlar üzerinde çıkarım yapabilir.
- Performans: Doğruluktan ödün vermeden gerçek zamanlı, yüksek hızlı işleme için tasarlanmıştır.
- Kullanım Kolaylığı: Hızlı dağıtım ve test için sezgisel Python ve CLI arayüzleri.
- Yüksek Derecede Özelleştirilebilir: Modelin çıkarım davranışını özel gereksinimlerine göre ayarlaman için çeşitli ayarlar ve parametreler.
- Üretime Hazır: Modelleri, otomatik ölçeklendirme ve izleme özellikleriyle Ultralytics Platform üzerinde API uç noktaları olarak dağıtabilir veya yerel olarak çıkarım yapabilirsin.
Tahmin Modunun Temel Özellikleri
YOLO26'nın tahmin modu, sağlam ve çok yönlü olacak şekilde tasarlanmıştır ve şunları içerir:
- Çoklu Veri Kaynağı Uyumluluğu: Verilerin ister bireysel görüntüler, ister görüntü koleksiyonu, video dosyaları veya gerçek zamanlı video akışları olsun, tahmin modu ihtiyacını karşılar.
- Akış Modu: Bellek dostu bir
Resultsnesnesi oluşturucu oluşturmak için akış özelliğini kullan. Bunu, tahmin edicinin çağırma yöntemindestream=Truedeğerini ayarlayarak etkinleştirebilirsin. - Toplu İşleme: Toplam çıkarım süresini daha da azaltarak, birden çok görüntüyü veya video karesini tek bir partide işleyebilirsin.
- Entegrasyon Dostu: Esnek API'si sayesinde mevcut veri hatları ve diğer yazılım bileşenleriyle kolayca entegre edilebilir.
Ultralytics YOLO models return either a Python list of Results objects or a memory-efficient generator of Results objects when stream=True is passed to the model during inference:
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, çıkarım için aşağıdaki tabloda gösterildiği gibi farklı türdeki girdi kaynaklarını işleyebilir. Kaynaklar statik görüntüleri, video akışlarını ve çeşitli veri formatlarını içerir. Tablo ayrıca her bir kaynağın stream=True bağımsız değişkeni ile akış modunda kullanılıp kullanılamayacağını ✅ belirtir. Akış modu, tüm kareleri belleğe yüklemek yerine sonuçlardan oluşan bir oluşturucu yarattığı için videoları veya canlı yayınları işlemek adına faydalıdır.
Uzun videoları veya büyük veri kümelerini işlerken bellek yönetimi için stream=True kullan. stream=False olduğunda, tüm karelerin veya veri noktalarının sonuçları bellekte saklanır; bu durum büyük girdilerde hızla artarak bellek yetersizliği hatalarına yol açabilir. Buna karşılık stream=True, yalnızca mevcut karenin veya veri noktasının sonuçlarını bellekte tutan bir oluşturucu kullanarak bellek tüketimini önemli ölçüde azaltır ve bellek sorunlarını önler.
| Kaynak | Örnek | Tür | 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üye ait URL. |
| ekran görüntüsü | '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ü, video veya dizin yollarını içeren CSV dosyası. |
| video ✅ | 'video.mp4' | str veya Path | MP4, AVI gibi formatlardaki video dosyası. |
| dizin ✅ | 'path/' | str veya Path | Görüntü veya video içeren dizin yolu. |
| glob ✅ | 'path/*.jpg' | str | Birden çok dosyayı eşleştirmek için glob deseni. Joker karakter olarak * karakterini kullan. |
| YouTube ✅ | 'https://youtu.be/LNwODJXcvt4' | str | YouTube videosuna ait URL. |
| akış ✅ | 'rtsp://example.com/media.mp4' | str | RTSP, RTMP, TCP gibi akış protokolleri veya bir IP adresi için URL. |
| çoklu akış ✅ | 'list.streams' | str veya Path | Her satırda bir akış URL'si bulunan *.streams metin dosyası, örn. 8 akış, 8 batch-size ile çalışacaktır. |
| web kamerası ✅ | 0 | int | Çıkarım yapılacak bağlı kamera cihazının indeksi. |
Her kaynak türünü kullanmak için kod örnekleri aşağıdadır:
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() yöntemi, varsayılan değerleri geçersiz kılmak için çıkarım sırasında geçirilebilecek birden fazla argümanı kabul eder:
Sabit şekil ile minimum dikdörtgen (rect) karşılaştırması
Varsayılan olarak, tahmin (predict) işlemi rect=True kullanır, bu da mümkün olduğunda minimum-dikdörtgen dolgusunu etkinleştirir. Görüntü imgsz içine sığacak şekilde ölçeklendirilir ve yalnızca en yakın adım (stride) katına kadar doldurulur, bu nedenle nihai tensör imgsz değerinden daha küçük olabilir. Minimum-dikdörtgen dolgusu yalnızca yığındaki tüm görüntüler aynı şekle sahip olduğunda ve arka uç (PyTorch .pt veya dinamik ONNX / Triton) bunu desteklediğinde kullanılır. Aksi takdirde, görüntüler tam imgsz hedefine göre doldurulur.
Use rect=False to always pad to the full imgsz target. This is recommended when you need a fixed input size to match exported models (ONNX, TensorRT, etc.).
Tam sayı ile demet (tuple) imgsz karşılaştırması
- Bir tam sayı olan
imgsz=640, adım (stride) yuvarlamasından sonra kare bir hedef olan(640, 640)değerine dönüşür. - Bir demet (tuple) olan
imgsz=(384, 672)dikdörtgen bir hedef belirler.rect=Trueveauto=Trueile, gerçek tensör bu hedef değerinden daha küçük olabilir.
Eğitim ile tahmin/dışa aktarma karşılaştırması
Training accepts only a single integer imgsz (a [h, w] list is coerced to the largest value). Predict and export accept either an integer or a (height, width) tuple.
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 | Tür | 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. Belirtilmezse bir uyarı kaydedilir ve model yerleşik demo varlıklarına (ultralytics/assets veya OBB için bir demo URL'si) döner. Çok çeşitli formatları ve kaynakları destekleyerek farklı giriş türleri genelinde esnek uygulama sağlar. |
conf | float | 0.25 | Tespitler için minimum güven eşiğini belirler. Bu eşiğin altındaki güvenle tespit edilen nesneler göz ardı edilecektir. Bu değeri ayarlamak yanlış pozitifleri azaltmaya yardımcı olabilir. |
iou | float | 0.7 | Maksimum Olmayan Baskılama (NMS) için Kesişim Üzerinden Birlik (IoU) eşiği. Daha düşük değerler çakışan kutuları eleyerek daha az tespit sonucu verir; kopyaları azaltmak için kullanışlıdır. |
imgsz | int veya tuple | 640 | Letterbox target. An integer gives a square N×N; a tuple gives (height, width). With rect=True, the actual tensor may be smaller than this target due to minimum-rectangle padding. Use rect=False for a fixed size. See Fixed shape vs minimum rectangle. |
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 dolgu yapın. Bkz. Sabit şekil vs minimum dikdörtgen. |
half | bool | False | Doğruluk üzerindeki minimal etkiyle desteklenen GPU'larda model çıkarımını hızlandırabilen yarı hassasiyetli (FP16) çıkarımı etkinleştirir. |
device | str | None | Çıkarım için cihazı belirtir (örn. cpu, cuda:0, 0, npu veya npu:0). Kullanıcıların CPU, belirli bir GPU, Huawei Ascend NPU veya model yürütme için diğer bilgi işlem cihazlarını seçmelerine 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 verim sağlayarak çıkarım için gereken toplam süreyi kısaltabilir. |
max_det | int | 300 | Görüntü başına izin verilen maksimum tespit sayısı. Modelin tek bir çıkarımda tespit edebileceği toplam nesne sayısını sınırlar ve yoğun sahnelerde aşırı çıktı oluşmasını önler. |
vid_stride | int | 1 | Video girişleri için kare aralığı (stride). İşlem hızını artırmak için videolardaki karelerin atlanmasına olanak tanır, ancak zamansal çözünürlükten ödün verir. 1 değeri her kareyi işlerken, daha yüksek değerler kareleri atlar. |
stream_buffer | bool | False | Video akışları için gelen karelerin sıraya alınıp alınmayacağını belirler. Eğer False ise, yeni karelere yer açmak için eski kareler atılır (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer True ise, yeni kareleri bir arabelleğe alır ve 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ştirir ve modelin ne "gördüğüne" dair içgörüler sağlar. Hata ayıklama ve model yorumlama için kullanışlıdır. |
augment | bool | False | Tahminler için test zamanı artırmayı (TTA) etkinleştirir; çıkarım hızından ödün vererek tespit sağlamlığını potansiyel olarak artırır. |
agnostic_nms | bool | False | Sınıftan bağımsız Non-Maximum Suppression (NMS) yöntemini etkinleştirir; bu, farklı sınıflara ait çakışan kutuları birleştirir. Sınıf çakışmasının yaygın olduğu çok sınıflı tespit senaryolarında yararlıdır. Uçtan uca modeller için (YOLO26, YOLOv10), bu özellik yalnızca aynı tespitin birden fazla sınıf etiketiyle (IoU=1.0 kopyaları) görünmesini engeller ve farklı kutular arasında IoU eşik tabanlı bir bastırma işlemi gerçekleştirmez. |
classes | list[int] | None | Tahminleri belirli sınıf kimliklerine (class ID) 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ü segmentasyon maskeleri döndürür. Etkinleştirilirse, döndürülen maskeler (masks.data) orijinal görüntü boyutuyla eşleşir. 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 embeddings kısımlarının çıkarılacağı katmanları belirtir. Kümeleme veya benzerlik arama gibi sonraki görevler için kullanışlıdır. |
project | str | None | save özelliği etkinleştirildiğinde tahmin çıktılarının kaydedileceği proje dizininin adı. |
name | str | None | Tahmin çalıştırmasının adı. save etkinleştirildiğinde tahmin çıktılarının saklandığı proje klasörü içinde bir alt dizin oluşturmak için kullanılır. |
stream | bool | False | Tüm kareleri aynı anda belleğe yüklemek yerine, Results nesnelerinden oluşan bir jeneratör döndürerek uzun videolar veya çok sayıda görüntü için bellek açısından verimli işlem yapılmasını sağlar. |
verbose | bool | True | Tahmin süreci hakkında gerçek zamanlı geri bildirim sağlamak için terminalde ayrıntılı çıkarım günlüklerinin görüntülenip görüntülenmeyeceğini kontrol eder. |
compile | bool veya str | False | PyTorch 2.x torch.compile grafik derlemesini backend='inductor' ile etkinleştirir. True → "default" kabul eder, False devre dışı bırakır veya "default", "reduce-overhead", "max-autotune-no-cudagraphs" gibi bir dize modu alır. Desteklenmiyorsa uyarı vererek eager moduna döner. |
end2end | bool | None | NMS içermeyen çıkarımı destekleyen YOLO modellerinde (YOLO26, YOLOv10) uçtan uca modunu geçersiz kılar. False olarak ayarlamak, tahmini geleneksel NMS hattını kullanarak çalıştırmanıza ve ayrıca iou argümanını kullanmanıza olanak tanır. Ayrıntılar için Uçtan Uca Tespit rehberine bak. |
Görselleştirme argümanları:
| Argüman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
show | bool | False | Eğer True ise, açıklamalı görüntüleri veya videoları bir pencerede görüntüler. Geliştirme veya test sırasında anında görsel geri bildirim için kullanışlıdır. |
save | bool | False or True | Açıklamalı görüntülerin veya videoların dosyalara kaydedilmesini etkinleştirir. Dokümantasyon, ileri analiz veya sonuçları paylaşmak için kullanışlıdır. CLI kullanırken varsayılan olarak True, Python'da kullanıldığında False değerini alır. |
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 | Tespit sonuçlarını [class] [x_center] [y_center] [width] [height] [confidence] formatını izleyerek 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ı (confidence scores) dahil eder. İşlem sonrası ve analiz için mevcut ayrıntıyı 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 tespit için etiketleri görüntüler. Tespit edilen nesnelerin anında anlaşılmasını sağlar. |
show_conf | bool | True | Etiketle birlikte her 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 | Tespit edilen nesnelerin etrafına sınırlayıcı kutular (bounding boxes) çizer. Görüntülerdeki veya video karelerindeki nesnelerin görsel tanımlaması ve konumlandırılması için gereklidir. |
line_width | int or None | None | Sınırlayıcı kutuların çizgi kalınlığını belirtir. None ise, çizgi kalınlığı otomatik olarak görüntü boyutuna göre ayarlanır. Netlik için görsel özelleştirme sağlar. |
Görüntü ve Video Formatları
YOLO26, ultralytics/data/utils.py dosyasında 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.
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 paketini gerektirir. AVIF, Pillow tarafından yerel olarak desteklenir.
| Görüntü Son Ekleri | Örnek Tahmin Komutu | Referans |
|---|---|---|
.avif | yolo predict source=image.avif | AV1 Görüntü Dosyası Formatı |
.bmp | yolo predict source=image.bmp | Microsoft BMP Dosya Formatı |
.dng | yolo predict source=image.dng | Adobe DNG |
.heic | yolo predict source=image.heic | Yüksek Verimli Görüntü Formatı |
.heif | yolo predict source=image.heif | Yüksek Verimli Görüntü 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 | Çoklu Resim Nesnesi |
.png | yolo predict source=image.png | Taşınabilir Ağ Grafikleri |
.tif | yolo predict source=image.tif | Etiketli Görüntü Dosyası Formatı |
.tiff | yolo predict source=image.tiff | Etiketli Görüntü Dosyası Formatı |
.webp | yolo predict source=image.webp | WebP |
Videolar
Aşağıdaki tablo geçerli Ultralytics video formatlarını içerir.
| Video Son Ekleri | Örnek Tahmin Komutu | Referans |
|---|---|---|
.asf | yolo predict source=video.asf | Gelişmiş Sistemler Formatı |
.avi | yolo predict source=video.avi | Ses Video Ara Birimi |
.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 - Wikipedia |
.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 Taşıma Akışı |
.wmv | yolo predict source=video.wmv | Windows Media Video |
.webm | yolo predict source=video.webm | WebM Projesi |
Sonuçlarla Çalışmak
Tüm Ultralytics predict() çağrıları bir Results nesneleri listesi döndürür:
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 şu niteliklere sahiptir:
| Nitelik | Tür | 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ü boyutu. |
boxes | Boxes, optional | Tespit sınırlayıcı kutularını 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 anahtar noktaları içeren bir Keypoints nesnesi. |
obb | OBB, optional | Yönlendirilmiş sınırlayıcı kutuları içeren bir OBB nesnesi. |
speed | dict | Görüntü başına milisaniye cinsinden ön işleme, çıkarım ve son işleme hızlarını içeren bir sözlük. |
names | dict | Sınıf indekslerini sınıf adlarıyla eşleştiren bir sözlük. |
path | str | Görüntü dosyasına giden yol. |
save_dir | str, optional | Sonuçları kaydetmek için dizin. |
Results nesneleri şu yöntemlere sahiptir:
| Yöntem | Dönüş Türü | Açıklama |
|---|---|---|
update() | None | Results nesnesini yeni tespit verileriyle (boxes, masks, probs, obb, keypoints) günceller. |
cpu() | Results | Tüm tensörleri CPU belleğine taşınmış şekilde Results nesnesinin bir kopyasını döndürür. |
numpy() | Results | Tüm tensörleri NumPy dizilerine dönüştürülmüş şekilde Results nesnesinin bir kopyasını döndürür. |
cuda() | Results | Tüm tensörleri GPU belleğine taşınmış şekilde Results nesnesinin bir kopyasını döndürür. |
to() | Results | Tensörleri belirtilen aygıta ve veri türüne taşınmış şekilde Results nesnesinin bir kopyasını döndürür. |
new() | Results | Aynı görüntü, yol, isimler ve hız niteliklerine sahip yeni bir Results nesnesi oluşturur. |
plot() | np.ndarray | Tespit sonuçlarını bir girdi RGB görüntüsü üzerine çizer ve açıklamalı görüntüyü döndürür. |
show() | None | Görüntüyü açıklamalı çıkarım sonuçlarıyla görüntüler. |
save() | str | Açıklamalı çıkarım sonuçları görüntüsünü dosyaya kaydeder ve dosya adını döndürür. |
verbose() | str | Tespit ve sınıflandırma sonuçlarını detaylandırarak her görev için bir günlük dizesi döndürür. |
save_txt() | str | Tespit sonuçlarını bir metin dosyasına kaydeder ve kaydedilen dosyanın yolunu döndürür. |
save_crop() | None | Kırpılmış tespit görüntülerini belirtilen dizine kaydeder. |
summary() | List[Dict[str, Any]] | Çıkarım sonuçlarını isteğe bağlı normalleştirme ile özetlenmiş bir sözlüğe dönüştürür. |
to_df() | DataFrame | Tespit sonuçlarını bir Polars DataFrame'ine dönüştürür. |
to_csv() | str | Tespit sonuçlarını CSV formatına dönüştürür. |
to_json() | str | Tespit sonuçlarını JSON formatına dönüştürür. |
Daha fazla detay için Results sınıfı dokümantasyonuna bakabilirsin.
Boxes
Boxes nesnesi sınırlayıcı kutuları dizinlemek, değiştirmek ve farklı formatlara 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İsimleri, türleri ve açıklamaları dahil olmak üzere Boxes sınıfı yöntemleri ve nitelikleri için bir tablo aşağıdadır:
| Ad | Tür | 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 aygıta taşı. |
xyxy | Nitelik (torch.Tensor) | Kutuları xyxy formatında döndür. |
conf | Nitelik (torch.Tensor) | Kutuların güven değerlerini döndür. |
cls | Nitelik (torch.Tensor) | Kutuların sınıf değerlerini döndür. |
id | Nitelik (torch.Tensor) | Kutuların takip ID'lerini (varsa) döndür. |
xywh | Nitelik (torch.Tensor) | Kutuları xywh formatında döndür. |
xyxyn | Nitelik (torch.Tensor) | Kutuları orijinal görüntü boyutuyla normalleştirilmiş xyxy formatında döndür. |
xywhn | Nitelik (torch.Tensor) | Kutuları orijinal görüntü boyutuyla normalleştirilmiş xywh formatında döndür. |
Daha fazla detay için Boxes sınıfı dokümantasyonuna bakabilirsin.
Masks
Masks nesnesi maskeleri dizinlemek, değiştirmek ve segmentlere 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İsimleri, türleri ve açıklamaları dahil olmak üzere Masks sınıfı yöntemleri ve nitelikleri için bir tablo aşağıdadır:
| Ad | Tür | Açıklama |
|---|---|---|
cpu() | Yöntem | Maskeler tensörünü CPU belleğinde döndürür. |
numpy() | Yöntem | Maskeler tensörünü bir NumPy dizisi olarak döndürür. |
cuda() | Yöntem | Maskeler tensörünü GPU belleğinde döndürür. |
to() | Yöntem | Maskeler tensörünü belirtilen aygıt ve veri türüyle döndürür. |
xyn | Nitelik (torch.Tensor) | Tensörler olarak temsil edilen normalleştirilmiş segmentlerin bir listesi. |
xy | Nitelik (torch.Tensor) | Tensörler olarak temsil edilen piksel koordinatlarındaki segmentlerin bir listesi. |
Daha fazla detay için Masks sınıfı dokümantasyonuna bakabilirsin.
Keypoints
Keypoints nesnesi koordinatları indekslemek, değiştirmek ve normalize etmek 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 isimlerini, türlerini ve açıklamalarını içeren bir tablo:
| Ad | Tür | Açıklama |
|---|---|---|
cpu() | Yöntem | Keypoints tensörünü CPU belleğinde döndürür. |
numpy() | Yöntem | Keypoints tensörünü bir NumPy dizisi olarak döndürür. |
cuda() | Yöntem | Keypoints tensörünü GPU belleğinde döndürür. |
to() | Yöntem | Keypoints tensörünü belirtilen cihaz ve veri tipiyle döndürür. |
xyn | Nitelik (torch.Tensor) | Tensörler olarak temsil edilen normalize edilmiş keypoints listesi. |
xy | Nitelik (torch.Tensor) | Tensörler olarak temsil edilen piksel koordinatlarında keypoints listesi. |
conf | Nitelik (torch.Tensor) | Varsa keypoints güven değerlerini döndürür, aksi takdirde None döndürür. |
Daha fazla detay için Keypoints sınıfı belgelerine bakabilirsin.
Probs
Probs nesnesi sınıflandırma indekslerini ve skorlarını indekslemek, top1 ve top5 verilerini almak 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ı yöntemlerini ve özelliklerini özetleyen bir tablo:
| Ad | Tür | Açıklama |
|---|---|---|
cpu() | Yöntem | Probs tensörünün CPU belleğindeki bir kopyasını döndürür. |
numpy() | Yöntem | Probs tensörünün bir NumPy dizisi olarak kopyasını döndürür. |
cuda() | Yöntem | Probs tensörünün GPU belleğindeki bir kopyasını döndürür. |
to() | Yöntem | Probs tensörünün belirtilen cihaz ve veri tipiyle bir kopyasını döndürür. |
top1 | Özellik (int) | En yüksek 1. sınıfın indeksi. |
top5 | Özellik (list[int]) | En yüksek 5 sınıfın indeksleri. |
top1conf | Nitelik (torch.Tensor) | En yüksek 1. sınıfın güven değeri. |
top5conf | Nitelik (torch.Tensor) | En yüksek 5 sınıfın güven değerleri. |
Daha fazla detay için Probs sınıfı belgelerine bakabilirsin.
OBB
OBB nesnesi, yönlendirilmiş sınırlayıcı kutuları (oriented bounding boxes) indekslemek, manipüle etmek ve farklı formatlara 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 isimlerini, türlerini ve açıklamalarını içeren bir tablo:
| Ad | Tür | 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 aygıta taşı. |
conf | Nitelik (torch.Tensor) | Kutuların güven değerlerini döndür. |
cls | Nitelik (torch.Tensor) | Kutuların sınıf değerlerini döndür. |
id | Nitelik (torch.Tensor) | Kutuların takip ID'lerini (varsa) döndür. |
xyxy | Nitelik (torch.Tensor) | Yatay kutuları xyxy formatında döndürür. |
xywhr | Nitelik (torch.Tensor) | Döndürülmüş kutuları xywhr formatında döndürür. |
xyxyxyxy | Nitelik (torch.Tensor) | Döndürülmüş kutuları xyxyxyxy formatında döndürür. |
xyxyxyxyn | Nitelik (torch.Tensor) | Görüntü boyutuyla normalize edilmiş döndürülmüş kutuları xyxyxyxy formatında döndürür. |
Daha fazla detay için OBB sınıfı belgelerine bakabilirsin.
Sonuçları Görselleştirme
The plot() method in Results objects facilitates visualization of predictions by overlaying detected objects (such as bounding boxes, masks, keypoints, and probabilities) onto the original image. This method returns the annotated image as a NumPy array, allowing for easy display or saving.
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öntemi Parametreleri
plot() yöntemi çıktıyı özelleştirmek için çeşitli argümanları destekler:
| Argüman | Tür | Açıklama | Varsayılan |
|---|---|---|---|
conf | bool | Algılama güven skorlarını dahil et. | True |
line_width | float | Sınırlayıcı kutuların çizgi kalınlığı. 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 ek 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 | Görselleştirme için alternatif görüntü. None ise orijinal görüntü kullanılır. | None |
im_gpu | torch.Tensor | Daha hızlı maske çizimi için GPU hızlandırmalı görüntü. Boyut: (1, 3, 640, 640). | None |
kpt_radius | int | Çizilen keypoints için yarıçap. | 5 |
kpt_line | bool | Keypoints noktalarını çizgilerle birleştir. | True |
labels | bool | Ek açıklamalara sınıf etiketlerini dahil et. | True |
boxes | bool | Sınırlayıcı kutuları görüntünün üzerine bindir. | True |
masks | bool | Maskeleri görüntünün üzerine bindir. | True |
probs | bool | Sınıflandırma olasılıklarını dahil et. | True |
show | bool | Ek açıklamalı görüntüyü doğrudan varsayılan görüntü görüntüleyicisiyle göster. | False |
save | bool | Ek açıklamalı görüntüyü filename ile belirtilen dosyaya kaydet. | False |
filename | str | save değeri True ise, ek açıklamalı görüntünün kaydedileceği dosyanın yolu ve adı. | None |
color_mode | str | Renk modunu belirtin, örneğin 'instance' veya 'class'. | 'class' |
txt_color | tuple[int, int, int] | Sınırlayıcı kutu ve görüntü sınıflandırma etiketi için RGB metin rengi. | (255, 255, 255) |
İş parçacığı (Thread-Safe) Güvenli Çıkarım
Birden fazla YOLO modelini farklı iş parçacıklarında paralel olarak çalıştırırken çıkarım sırasında iş parçacığı güvenliğini sağlamak çok önemlidir. Thread-safe çıkarım, her iş parçacığının tahminlerinin izole edildiğini ve birbirine müdahale etmediğini garanti eder, bu da yarış durumlarını önler ve tutarlı, 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 nesneleri oluşturmak veya iş parçacığına özgü depolama kullanmak önemlidir:
Thread-safe çı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 modelleriyle thread-safe çıkarıma derinlemesine bir bakış ve adım adım talimatlar için lütfen YOLO Thread-Safe Çıkarım Kılavuzumuza bak. Bu kılavuz, yaygın hatalardan kaçınman ve çok iş parçacıklı çıkarımının sorunsuz çalışmasını sağlaman için ihtiyacın olan tüm bilgileri sana sunacaktır.
Akış (Streaming) Kaynağı for döngüsü
İşte video kareleri üzerinde çıkarım çalıştırmak için OpenCV (cv2) ve YOLO kullanan bir Python betiği. Bu betik, gerekli paketleri (opencv-python ve ultralytics) çoktan yüklediğini 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 tahminleri çalıştıracak, sonuçları görselleştirecek ve bir pencerede görüntüleyecektir. Döngü, 'q' tuşuna basılarak sonlandırılabilir.
SSS
Ultralytics YOLO nedir ve gerçek zamanlı çıkarım için predict modu ne işe yarar?
Ultralytics YOLO, gerçek zamanlı nesne algılama, bölütleme ve sınıflandırma için son teknoloji bir modeldir. predict modu, görüntü, video ve canlı akışlar gibi çeşitli veri kaynakları üzerinde yüksek hızlı çıkarım yapmanı sağlar. Performans ve çok yönlülük için tasarlanmış olup, toplu işleme ve akış modlarını da sunar. Özellikleri hakkında daha fazla ayrıntı için Ultralytics YOLO predict moduna göz at.
Farklı veri kaynaklarında Ultralytics YOLO kullanarak nasıl çıkarım yapabilirim?
Ultralytics YOLO, tekil görüntüler, videolar, dizinler, URL'ler ve akışlar dahil olmak üzere geniş bir veri kaynağı yelpazesini 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 edebilirim?
Çıkarım hızını optimize etmek ve belleği verimli yönetmek için, tahmincinin çağrı yönteminde stream=True değerini ayarlayarak akış modunu kullanabilirsin. Akış modu, tüm kareleri belleğe yüklemek yerine Results nesnelerinden oluşan bellek açısından verimli bir üretici (generator) oluşturur. Uzun videoları veya büyük veri kümelerini işlemek için akış modu özellikle kullanışlıdır. Akış modu hakkında daha fazla bilgi edin.
Ultralytics YOLO hangi çıkarım argümanlarını destekler?
YOLO'daki 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ştirmeni sağlar. Bu argümanların ayrıntılı açıklamaları çıkarım argümanları bölümünde bulunabilir.
YOLO tahminlerinin sonuçlarını nasıl görselleştirebilir ve kaydedebilirim?
YOLO ile çıkarım çalıştırdıktan sonra, Results nesneleri ek açıklamalı 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 (örneğin, result.save("path/to/result.jpg")). Bu yöntemlerin kapsamlı bir listesi için sonuçlarla çalışma bölümüne bak.


