Ultralytics YOLO26 ile Bölgelerde Nesne Sayma#
Ultralytics YOLO26 içindeki RegionCounter çözümü, video kareleri boyunca nesneleri izler ve her karede, sınırlayıcı kutu merkezi tanımladığın her bölgenin içine düşen nesneleri sayar. Her bölge, kendi canlı sayımıyla kare üzerine çizilir; böylece tek bir Python çağrısı veya CLI komutu ile mağaza koridorları, yol şeritleri veya üretim alanları gibi birkaç bölgeyi izleyebilirsin.
Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions
Neden Bölge Sayımı Kullanmalısın?#
- Tek geçişte birden fazla bölge: İsimlendirilmiş çokgenlerden oluşan bir sözlük (dictionary) gönderdiğinde her bölge kare üzerinde bağımsız bir sayıma sahip olur; böylece tek bir video akışı ile ilgilendiğin tüm alanları kapsayabilirsin.
- Yerleşik Takip: Çözüm, YOLO26 algılama ve nesne takibini dahili olarak çalıştırır; bu nedenle bağlanması gereken ayrı bir takip hattı (pipeline) yoktur.
- Programatik olarak okunabilir sayımlar: İşlenen her kare, kontrol panelleri, uyarılar veya günlük kaydı için hazır olan bölge sayımlarını içeren bir sözlük ile birlikte bir sonuç nesnesi döndürür.
Gerçek Dünya Uygulamaları#
| Perakende | Pazar Sokakları |
|---|---|
![]() | ![]() |
| Ultralytics YOLO ile Bölgelerde İnsan Sayma | Ultralytics YOLO ile Bölgelerde Kalabalık Sayma |
Ultralytics YOLO ile Bölgelerdeki Nesneler Nasıl Sayılır?#
RegionCounter çözümünü CLI veya Python kullanarak bir video kaynağı üzerinde çalıştır. Bir bölge, bir nokta listesi (tek bir alan) veya bölge isimlerini nokta listeleriyle eşleyen bir sözlük olabilir. Aşağıdaki Python örneği, iki isimlendirilmiş bölgedeki nesneleri sayar ve işlenen kareleri bir çıktı video dosyasına yazar:
# Run a region counting example
yolo solutions region show=True
# Pass a source video
yolo solutions region source="path/to/video.mp4"
# Pass a custom region
yolo solutions region region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"RegionCounter() Argümanları#
İşte RegionCounter argümanlarını içeren bir tablo:
| Argüman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
model | str | None | Bir Ultralytics YOLO model dosyasına giden yol. |
region | list veya dict | None | İlgi bölgesini tanımlayan noktalar; ya bir (x, y) demetleri listesi ya da birden fazla bölge için bölge adlarını nokta listeleriyle eşleyen bir sözlük (RegionCounter yalnızca). None olduğunda, bölge gerektiren çözümler önceden tanımlanmış bir varsayılana geri döner. |
RegionCounter çözümü, nesne takibi parametrelerinin kullanılmasını sağlar:
| Argüman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Kullanılacak izleme algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Algılamalar için güven eşiğini ayarlar; daha düşük değerler daha fazla nesnenin izlenmesine izin verir ancak hatalı pozitif sonuçlar içerebilir. |
iou | float | 0.7 | Örtüşen tespitleri filtrelemek için Intersection over Union (IoU) eşiğini ayarlar. |
classes | list | None | Sonuçları sınıf indeksine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler. |
verbose | bool | True | İzlenen nesnelerin görsel bir çıktısını sağlayarak izleme sonuçlarının görüntülenmesini kontrol eder. |
device | str | None | Çıkarım için cihazı belirtir (ör. cpu, cuda:0 veya 0). Kullanıcıların model yürütme için CPU, belirli bir GPU veya diğer bilgi işlem cihazları arasında seçim yapmasına olanak tanır. |
Ayrıca, aşağıdaki görselleştirme ayarları desteklenmektedir:
| 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. |
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. |
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_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. |
Bölge Sayımı Nasıl Çalışır?#
RegionCounter çözümü, geçirdiğiniz her bölgeyi, bölge başına en az üç nokta içeren bir polígono dönüştürür. Düz bir nokta listesi Region#01 adında tek bir bölge haline gelirken, bir sözlük kendi bölge adlarınızı korur; her bölge Ultralytics paletinden kendi rengiyle çizilir. Her kare daha sonra üç adımda işlenir:
- YOLO26 takibi, karedeki her nesneyi tespit eder ve izler
- İzlenen her nesne için çözüm, sınırlayıcı kutu merkezini hesaplar ve hangi bölge çokgenlerinin onu içerdiğini kontrol eder
- Her bölgenin sayımı kendi merkezinde çizilir ve sayımlar bir sonraki kareden önce sıfırlanır
Sayım her karede sıfırlandığı için, bir bölgede gösterilen sayı çalışan bir toplam değil, o an içinde kaç nesne olduğunu gösteren mevcut doluluk oranıdır. Nesnelerin bir sınırı kümülatif olarak geçişini saymak için bunun yerine ObjectCounter çözümünü kullanın.
Ayrıca her çağrı, plot_im özniteliği açıklama eklenmiş kareyi tutan ve region_counts sözlüğü bölge adlarını sayılarıyla eşleyen bir sonuç nesnesi döndürür; böylece sayıları kendi uygulama mantığınıza besleyebilirsiniz.
Sonuç#
Ultralytics YOLO26 RegionCounter çözümü, birkaç satır kodla ihtiyacınız olan sayıda adlandırılmış bölgede canlı nesne sayımlarını izler. Daha da ileri gitmek için nesne sayımı ile sınır geçişlerini sayın, TrackZone ile tek bir bölge içindeki nesneleri takip edin veya diğer Ultralytics Çözümlerini keşfedin.
SSS#
Ultralytics YOLO26'da bölgelerde nesne sayma nasıl çalışır?#
Ultralytics YOLO26, kadedeki her nesneyi takip ederek ve sınırlama kutusu merkezinin kullanıcı tanımlı her poligonun içinde olup olmadığını test ederek bölgelerdeki nesneleri sayar. Bir bölgede gösterilen sayı, kümülatif bir toplam değil, o kare için mevcut doluluk oranıdır. Yapılandırma seçenekleri RegionCounter() Argümanları bölümünde listelenmiştir.
Birden fazla bölgedeki nesneleri aynı anda nasıl sayabilirim?#
region argümanını, ana örnekte olduğu gibi bölge adlarını nokta listeleriyle eşleyen bir sözlük olarak aktar:
from ultralytics import solutions
region_points = {
"region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
"region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}
regioncounter = solutions.RegionCounter(region=region_points, model="yolo26n.pt", show=True)İsimlendirilmiş her alan, bağımsız bir sayımla kendi renginde çizilir.
Bölge sayımlarını programatik olarak nasıl alabilirim?#
Her bir regioncounter(im0) çağrısı tarafından döndürülen nesne, plot_im (açıklama eklenmiş kare) ve total_tracks (izlenen nesne sayısı) ile birlikte bölge adlarını kendi sayılarıyla eşleyen bir region_counts sözlüğü taşır. Tüm mevcut alanları incelemek için sonuçlar nesnesini yazdır.
Bir bölgede sadece belirli nesne sınıflarını sayabilir miyim?#
Evet. Tutulacak sınıf indeksleriyle birlikte classes argümanını geçirin; örneğin, COCO ön eğitimli bir modelle yalnızca kişileri saymak için classes=[0]. Takiple ilgili argümanların tam listesi RegionCounter() Argümanları bölümündedir.
RegionCounter ve ObjectCounter arasındaki fark nedir?#
RegionCounter, mevcut karede her poligon bölgenin içinde kaç nesne olduğunu gösterirken, ObjectCounter nesneleri bir çizgiyi veya bölge sınırını geçerken kümülatif olarak sayar, giriş ve çıkış toplamlarını takip eder. Bir veya daha fazla bölgenin canlı doluluğu için RegionCounter kullanın ve giriş ile çıkış sayımı için ObjectCounter kullanın; çizgi şeklindeki bölgeler yalnızca ObjectCounter tarafından desteklenir.

