Ultralytics YOLO27:
Get Started

Ultralytics YOLO26 ile Bölgelerde Nesne Sayımı#

Ultralytics YOLO26 içindeki RegionCounter çözümü, video kareleri boyunca nesneleri izler ve her karede, sınırlayıcı kutusunun merkezi tanımladığın her bölgenin içine düşen nesneleri sayar. Her bölge, canlı sayımıyla birlikte kare üzerine çizilir; böylece Python'da tek bir çağrı veya CLI komutuyla mağaza koridorları, yol şeritleri ya da üretim alanları gibi birden fazla bölgeyi izleyebilirsin.



İzle: Ultralytics YOLO ile Farklı Bölgelerde Nesne Sayımı | Ultralytics Çözümleri

Neden Bölge Sayımı Kullanmalısın?#

  • Tek geçişte birden fazla bölge: Adlandırılmış çokgenlerden oluşan bir sözlük aktar; her bölgenin bağımsız sayımı kareye çizilsin, böylece tek bir video akışı ilgilendiğin tüm alanları kapsasın.
  • Yerleşik izleme: Çözüm, YOLO26 algılamasını ve nesne izlemeyi kendi içinde çalıştırır; dolayısıyla ayrıca bir izleme hattı kurman gerekmez.
  • Programatik olarak erişebileceğin sayımlar: İşlenen her kare, panolar, uyarılar veya günlük kaydı için hazır, bölge sayımlarını içeren bir sözlükle birlikte bir sonuç nesnesi döndürür.

Gerçek Dünya Uygulamaları#

PerakendePazar Sokakları
Ultralytics YOLO, perakende mağazasında çizilmiş çokgen bölgelerin içindeki insanları sayıyorUltralytics YOLO, kalabalık bir pazar sokağının üzerine bölge sayılarını yerleştiriyor
Ultralytics YOLO ile Bölgelerde İnsan SayımıUltralytics YOLO ile Bölgelerde Kalabalık Sayımı

Ultralytics YOLO ile Bölgelerdeki Nesneleri Sayma#

RegionCounter çözümünü CLI veya Python üzerinden bir video kaynağında çalıştır. Bölge, noktalardan oluşan bir liste (tek bir bölge) ya da bölge adlarını nokta listeleriyle eşleştiren bir sözlük olabilir. Aşağıdaki Python örneği, adlandırılmış iki bölgede nesneleri sayar ve işlenen kareleri bir çıktı video dosyasına yazar:

Ultralytics YOLO ile 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() Bağımsız Değişkenleri#

Aşağıda RegionCounter bağımsız değişkenlerini içeren bir tablo bulabilirsin:

Bağımsız değişkenTürVarsayılanAçıklama
modelstrNoneUltralytics YOLO model dosyasının yolu.
regionlist veya dictNoneİlgi bölgesini tanımlayan noktalar; (x, y) demetlerinin listesi veya birden fazla bölge için bölge adlarını nokta listelerine eşleyen bir sözlük (yalnızca RegionCounter). None olduğunda, bölge gerektiren çözümler önceden tanımlanmış varsayılan bölgeye döner.
line_widthint2Çözümün çizdiği kutular, anahtar noktalar ve sayılar için çizgi kalınlığı.
verboseboolTrueÇözümün her kare için girdi şekli, sınıf sayıları ve işleme hızına ilişkin günlüğünü etkinleştirir. İzleme çağrısının kendisi her zaman sessizdir.

RegionCounter çözümü, nesne izleme parametrelerinin kullanılmasını sağlar:

Bağımsız değişkenTürVarsayı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.25Algılamalar için güven eşiğini belirler; düşük değerler daha fazla nesnenin izlenmesine olanak tanır ancak yanlış pozitifleri de içerebilir.
ioufloat0.7Çakışan algılamaları filtrelemek için Kesişim-Birleşim Oranı (IoU) eşiğini belirler.
classeslistNoneSonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler.
devicestrNoneÇıkarım için kullanılacak cihazı belirtir (ör. cpu, cuda:0 veya 0). Kullanıcıların model yürütme için CPU, belirli bir GPU veya başka hesaplama cihazları arasında seçim yapmasına olanak tanır.
imgszint or tuple640Hedef çıkarım görüntü boyutu: kare görüntüler için bir tam sayı veya bir (height, width) çifti. Boyutlar model adım değerine göre ayarlanır.
max_detint300Yoğun sahnelerde bir çözümün işleyeceği nesne sayısını sınırlamak için izleme öncesinde kare başına tutulan en yüksek algılama sayısı.
quantizeint or strNoneÇıkarım hassasiyeti: CPU dışında PyTorch ve TorchScript modelleri için 16 (FP16) veya 32/unset (FP32); diğer biçimler, model yapıtının ve çalışma zamanının seçtiği hassasiyeti kullanır. Kullanımdan kaldırılan half argümanının yerini alır.

Ayrıca aşağıdaki görselleştirme ayarları da desteklenir:

Bağımsız değişkenTürVarsayılanAçıklama
showboolFalseTrue ise açıklama eklenmiş görüntüleri veya videoları bir pencerede gösterir. Geliştirme veya test sırasında anında görsel geri bildirim almak için kullanışlıdır.
show_confboolTrueHer algılamanın güven puanını etiketinin yanında gösterir. Modelin her algılamaya ne kadar güvendiğini görmeni sağlar.
show_labelsboolTrueGörsel çıktıda her algılama için etiketleri gösterir. Algılanan nesnelerin hemen anlaşılmasını sağlar.

Bölge Sayımı Nasıl Çalışır?#

RegionCounter çözümü, aktardığın her bölgeyi en az üç nokta içeren bir çokgene dönüştürür. Düz bir nokta listesi Region#01 adlı tek bir bölgeye dönüşürken sözlük, kendi bölge adlarını korur; her bölge Ultralytics paletinden farklı bir renkle çizilir. Ardından her kare üç adımda işlenir:

  1. YOLO26 tracking, karedeki her nesneyi algılar ve izler
  2. İzlenen her nesne için çözüm, sınırlayıcı kutunun merkezini hesaplar ve bu merkezin hangi bölge çokgenlerinin içinde olduğunu kontrol eder
  3. Her bölgenin sayımı merkezine çizilir ve sonraki kareden önce sayımlar sıfırlanır

Sayımlar her karede yeniden başladığından, bir bölgede gösterilen sayı kümülatif toplamı değil, o anki doluluğu, yani o anda bölgenin içindeki nesne sayısını belirtir. Bir sınırı geçen nesneleri kümülatif olarak saymak için bunun yerine ObjectCounter çözümünü kullan.

Her çağrı ayrıca plot_im özniteliğinde açıklama eklenmiş kareyi, region_counts sözlüğünde ise bölge adlarını sayımlarla eşleştiren bir sonuç nesnesi döndürür; böylece sayıları kendi uygulama mantığına aktarabilirsin.

Sonuç#

Ultralytics YOLO26 RegionCounter çözümü, birkaç satır kodla istediğin sayıda adlandırılmış bölgedeki canlı nesne sayılarını izler. Daha ileri gitmek için nesne sayımı ile sınır geçişlerini say, TrackZone ile tek bir bölgedeki nesneleri izle veya diğer Ultralytics Çözümlerini keşfet.

Sık Sorulan Sorular#

  • Ultralytics YOLO26, karedeki her nesneyi izleyerek ve sınırlayıcı kutusunun merkezinin kullanıcı tarafından tanımlanan her çokgenin içinde olup olmadığını kontrol ederek bölgelerdeki nesneleri sayar. Bir bölgede gösterilen sayı, kümülatif toplamı değil, o karedeki mevcut doluluğu belirtir. Yapılandırma seçenekleri RegionCounter() Bağımsız Değişkenler bölümünde listelenmiştir.

  • region bağımsız değişkenini bölge adlarını nokta listeleriyle eşleştiren bir sözlük olarak aktar; ana örnekte olduğu gibi:

    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)

    Her adlandırılmış bölge farklı bir renkle çizilir ve bağımsız bir sayım gösterir.

  • Her regioncounter(im0) çağrısının döndürdüğü nesne; bölge adlarını sayımlarla eşleştiren bir region_counts sözlüğünü, plot_im (açıklama eklenmiş kare) ve total_tracks (izlenen nesne sayısı) ile birlikte içerir. Kullanılabilir tüm alanları incelemek için sonuç nesnesini yazdır.

  • Evet. Tutulacak sınıf indeksleriyle classes bağımsız değişkenini geçir; örneğin COCO ile önceden eğitilmiş bir modelle yalnızca kişileri saymak için classes=[0] kullan. İzlemeyle ilgili bağımsız değişkenlerin tam listesi RegionCounter() Bağımsız Değişkenler bölümünde.

  • RegionCounter, geçerli karede her çokgen bölgenin içindeki nesne sayısını gösterirken ObjectCounter, nesneleri bir çizgiyi veya bölge sınırını geçerken kümülatif olarak sayar ve giriş-çıkış toplamlarını izler. Bir veya daha fazla bölgenin anlık doluluk durumunu görmek için RegionCounter, giriş ve çıkışları saymak için ObjectCounter kullan; çizgi biçimindeki bölgeler yalnızca ObjectCounter tarafından desteklenir.

Yorumlar