YOLO Vision 2026:

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ı#

PerakendePazar Sokakları
Ultralytics YOLO counting people inside drawn polygon regions in a retail storeUltralytics YOLO region counts overlaid on a crowded market street
Ultralytics YOLO ile Bölgelerde İnsan SaymaUltralytics 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:

Ultralytics YOLO kullanarak bölge sayımı
# 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ümanTipVarsayılanAçıklama
modelstrNoneBir Ultralytics YOLO model dosyasına giden yol.
regionlist veya dictNoneİ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ümanTipVarsayılanAçıklama
trackerstr'tracktrack.yaml'Kullanılacak izleme algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Algı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.
ioufloat0.7Örtüşen tespitleri filtrelemek için Intersection over Union (IoU) eşiğini ayarlar.
classeslistNoneSonuçları sınıf indeksine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler.
verboseboolTrueİzlenen nesnelerin görsel bir çıktısını sağlayarak izleme sonuçlarının görüntülenmesini kontrol eder.
devicestrNoneÇı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ü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.
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.
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_labelsboolTrueGö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:

  1. YOLO26 takibi, karedeki her nesneyi tespit eder ve izler
  2. İ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
  3. 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.

Yorumlar