Ultralytics YOLO27:

Ultralytics YOLO26 ile Nesne Takibi Isı Haritaları#

Open Heatmaps In Colab

Ultralytics YOLO26 içindeki Isı haritası çözümü, video kareleri boyunca nesneleri takip eder ve biriken hareket yoğunluklarını her karenin üzerine bindirir; böylece yoğun alanlar sıcak renklerle parlar, sakin alanlar ise soğuk kalır. YOLO26 nesne takibi üzerine kurulu olan bu çözüm, tek bir Python çağrısı veya CLI komutuyla her videoyu trafik akışını, kalabalık hareketlerini ve bekleme bölgelerini ortaya çıkaran bir mekânsal etkinlik haritasına dönüştürür.



Watch: How to Create Heatmaps with Ultralytics YOLO26 | Visualize Object Activity | VisionAI in Retail 🚀

Video Analitiğinde Isı Haritaları Neden Kullanılır?#

  • Etkinlik örüntülerini bir bakışta fark et: Yoğunluk, takip edilen nesnelerin zaman geçirdiği her yerde birikir; böylece yoğun trafik şeritleri, popüler raflar veya kalabalık darboğazları kare kare manuel inceleme yapmadan öne çıkar.
  • Takip yerleşik olarak gelir: Çözüm, YOLO26 algılama ve takibini dahili olarak çalıştırır; bu nedenle ayrıca bağlaman gereken bir takip işlem hattı yoktur.
  • Aynı geçişte sayım: Isı haritası oluşturulurken bir bölgeye giren ve çıkan nesneleri saymak için bir region ilet; böylece iki analitik görevi tek çalıştırmada birleştir.

Gerçek Dünya Uygulamaları#

UlaşımPerakende
Araç trafiği yoğunluğunu gösteren Ultralytics YOLO ısı haritası bindirmesiPerakende müşterilerinin hareketini gösteren Ultralytics YOLO ısı haritası bindirmesi
Ultralytics YOLO Ulaşım Isı HaritasıUltralytics YOLO Perakende Isı Haritası

Ultralytics YOLO ile Isı Haritaları Nasıl Oluşturulur?#

Isı haritası çözümünü CLI veya Python üzerinden bir video kaynağında çalıştır. Python örneği, işlenen kareleri bir çıktı video dosyasına yazar:

Ultralytics YOLO ile Isı Haritaları
# Run a heatmap example
yolo solutions heatmap show=True

# Pass a source video
yolo solutions heatmap source="path/to/video.mp4"

# Pass a custom colormap
yolo solutions heatmap colormap=cv2.COLORMAP_INFERNO

# Heatmaps + object counting
yolo solutions heatmap region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"

Heatmap() Bağımsız Değişkenleri#

Heatmap bağımsız değişkenlerini içeren tablo aşağıda verilmiştir:

Bağımsız değişkenTürVarsayılanAçıklama
modelstrNoneBir Ultralytics YOLO model dosyasının yolu.
colormapintcv2.COLORMAP_DEEPGREENIsı haritası için kullanılacak renk haritası.
show_inboolTrueVideo akışında giriş sayılarının gösterilip gösterilmeyeceğini denetleyen bayrak.
show_outboolTrueVideo akışında çıkış sayılarının gösterilip gösterilmeyeceğini denetleyen bayrak.
regionlist veya dictNoneİlgi bölgesini tanımlayan noktalar: (x, y) demetlerinden oluşan bir liste veya birden fazla bölge için bölge adlarını nokta listelerine eşleyen bir sözlük (RegionCounter yalnızca). None olduğunda bölge gerektiren çözümler önceden tanımlanmış varsayılan değere geri döner.
line_widthint2Çözümün çizdiği kutular, kilit noktaları ve sayılar için çizgi kalınlığı.
verboseboolTrueÇözümün kare başına giriş şeklini, sınıf sayılarını ve işlem hızını kaydetmesini etkinleştirir. Takip çağrısı her zaman sessizdir.

Heatmap çözümünde farklı track bağımsız değişkenleri de uygulayabilirsin.

Bağımsız değişkenTürVarsayılanAçıklama
trackerstr'botsort.yaml'Kullanılacak takip 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; daha düşük değerler daha fazla nesnenin takip edilmesine olanak tanır ancak yanlış pozitifler içerebilir.
ioufloat0.7Örtüşen algılamaları filtrelemek için Birleşim Üzerindeki Kesişim (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ı takip eder.
devicestrNoneÇıkarım için cihazı belirtir (ör. cpu, cuda:0 veya 0). Kullanıcıların model çalıştırma işlemi için CPU, belirli bir GPU veya diğer hesaplama cihazları arasında seçim yapmasına olanak tanır.
imgszint or tuple640Hedef çıkarım görüntü boyutu: kare için bir tamsayı veya bir (height, width) çifti. Şekiller model adımına göre ayarlanır.
max_detint300Takipten önce kare başına tutulan maksimum algılama sayısı, yoğun sahnelerde bir çözümün işlediği nesneleri sınırlar.
quantizeint or strNoneÇıkarım hassasiyeti: PyTorch ve TorchScript modelleri için 16 (FP16) veya 32/belirtilmemiş (FP32); diğer formatlar, yapıtlarının ve çalışma zamanlarının seçtiği hassasiyette hesaplama yapar. Kullanımdan kaldırılan half bayrağının yerini alır.

Ayrıca desteklenen görselleştirme bağımsız değişkenleri aşağıda listelenmiştir:

Bağımsız değişkenTürVarsayılanAçıklama
showboolFalseTrue olduğunda 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 almak için kullanışlıdır.
show_confboolTrueHer algılamanın güven skorunu etiketin yanında görüntüler. Modelin her algılamaya ilişkin kesinliği hakkında fikir verir.
show_labelsboolTrueGörsel çıktıda her algılama için etiketleri görüntüler. Algılanan nesnelerin hemen anlaşılmasını sağlar.

Isı Haritası Renk Haritaları#

colormap bağımsız değişkeni, herhangi bir OpenCV renk haritasını kabul eder. Sabiti cv2 modülünden ilet; örneğin colormap=cv2.COLORMAP_INFERNO:

Renk Haritası AdıAçıklama
cv2.COLORMAP_AUTUMNAutumn renk haritası
cv2.COLORMAP_BONEBone renk haritası
cv2.COLORMAP_JETJet renk haritası
cv2.COLORMAP_WINTERWinter renk haritası
cv2.COLORMAP_RAINBOWRainbow renk haritası
cv2.COLORMAP_OCEANOcean renk haritası
cv2.COLORMAP_SUMMERSummer renk haritası
cv2.COLORMAP_SPRINGSpring renk haritası
cv2.COLORMAP_COOLCool renk haritası
cv2.COLORMAP_HSVHSV (Ton, Doygunluk, Değer) renk haritası
cv2.COLORMAP_PINKPink renk haritası
cv2.COLORMAP_HOTHot renk haritası
cv2.COLORMAP_PARULAParula renk haritası
cv2.COLORMAP_MAGMAMagma renk haritası
cv2.COLORMAP_INFERNOInferno renk haritası
cv2.COLORMAP_PLASMAPlasma renk haritası
cv2.COLORMAP_VIRIDISViridis renk haritası
cv2.COLORMAP_CIVIDISCividis renk haritası
cv2.COLORMAP_TWILIGHTTwilight renk haritası
cv2.COLORMAP_TWILIGHT_SHIFTEDShifted Twilight renk haritası
cv2.COLORMAP_TURBOTurbo renk haritası
cv2.COLORMAP_DEEPGREENDeep Green renk haritası

Isı Haritaları Nasıl Çalışır?#

Isı haritası çözümü, ObjectCounter sınıfını genişletir. İşlenen ilk karede, kare boyutlarıyla eşleşen boş bir yoğunluk katmanı oluşturur. Ardından her kare iki adımda işlenir:

  1. YOLO26, karedeki her nesneyi algılar ve takip eder
  2. Takip edilen her nesne için, sınırlayıcı kutusunun merkezindeki dairesel bir bölge içindeki ısı haritası yoğunluğu artırılır

Kare başına bir kez, biriken yoğunluk katmanı normalleştirilir, seçilen renk haritasıyla renklendirilir ve özgün kareyle harmanlanır. Bindirme, en az bir nesne takip edilir edilmez görünür; takip edilen nesne bulunmayan kareler ısı haritası bindirmesi olmadan gösterilir.

Sonuç, zaman içinde oluşan dinamik bir görselleştirmedir ve video verilerindeki trafik örüntülerini, kalabalık hareketlerini veya diğer mekânsal davranışları ortaya çıkarır. Bir region ayarlandığında çözüm, ısı haritası oluşturulurken bu bölgeye giren ve çıkan nesneleri de sayar.

Sonuç#

Ultralytics YOLO26 Isı Haritası çözümü, birkaç satır kodla nesne takibi sonuçlarını sezgisel bir etkinlik bindirmesine dönüştürür. Daha ileri gitmek için bunu nesne sayımı ile birleştirebilir, diğer Ultralytics Çözümlerini inceleyebilir veya temelindeki takip modu hakkında bilgi edinebilirsin.

SSS#

  • Ultralytics YOLO26, video kareleri boyunca nesneleri takip eder ve her takip edilen nesnenin konumunda bir yoğunluk değeri biriktirir; ardından sonucu renklendirip özgün kareyle harmanlayarak ısı haritaları oluşturur. Nesnelerin sık göründüğü veya uzun süre kaldığı alanlarda yoğunluk artar ve bu alanlar daha sıcak renklerle gösterilir. Yapılandırma seçenekleri için Heatmap() Bağımsız Değişkenleri bölümüne bak.

  • Ana örnekte gösterildiği gibi, OpenCV'nin cv2.VideoWriter aracını kullan ve işlenen her kare için results.plot_im yaz. plot_im özniteliği, ısı haritası bindirmesi zaten uygulanmış kareyi içerir.

  • Evet. Çizgi, dikdörtgen veya çokgen noktaları içeren bir region bağımsız değişkenini Heatmap() öğesine ilet; çözüm, ısı haritası oluşturulurken bu bölgeye giren ve çıkan nesneleri sayar. Döndürülen sonuçlar in_count, out_count ve sınıf başına sayımları içerir. Bölge yapılandırması ayrıntıları için nesne sayımı kılavuzuna bak.

  • Korumak istediğin sınıf dizinleriyle birlikte classes bağımsız değişkenini Heatmap() öğesine ilet. Örneğin classes=[0, 2], ısı haritasını yalnızca insanlar ve arabalardan oluşturur (COCO sınıf dizinleri 0 ve 2):

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.mp4")
    heatmap = solutions.Heatmap(show=True, model="yolo26n.pt", classes=[0, 2])
    
    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            break
        results = heatmap(im0)
    cap.release()
    cv2.destroyAllWindows()
  • Ultralytics YOLO26 ısı haritaları nesne algılama, takip, yoğunluk biriktirme ve bindirme oluşturm entrelerini tek bir çağrıda birleştirir; OpenCV veya Matplotlib gibi genel amaçlı araçlarda ise bu işlem hattını kendin oluşturman gerekir. Çözüm, video akışlarını gerçek zamanlı işler ve kalıcı takip ile özelleştirilebilir renk haritalarını kullanıma hazır olarak destekler. Temel model hakkında ayrıntılar için YOLO26 model sayfasına bak.

Yorumlar