Ultralytics YOLO27:

Ultralytics YOLO26 ile TrackZone#

TrackZone nedir?#

Open TrackZone In Colab

TrackZone, tüm kare yerine bir karenin belirlenmiş alanlarındaki nesneleri izleme konusunda uzmanlaşır. Ultralytics YOLO26 temel alınarak geliştirilen çözüm, video ve canlı kamera akışlarında özellikle bölgeler içindeki nesne tespiti ile izlemeyi bir araya getirir. YOLO26'nın gelişmiş algoritmaları ve derin öğrenme teknolojileri, kalabalık izleme ve gözetim gibi uygulamalarda hassas ve verimli nesne takibi sunarak onu gerçek zamanlı kullanım senaryoları için ideal bir seçenek haline getirir.



Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀

Bölgelerde Nesne Takibinin Avantajları (TrackZone)#

  • Hedefli Analiz: Nesneleri belirli bölgelerde izlemek, daha odaklı içgörüler elde edilmesini sağlar ve giriş noktaları veya kısıtlı bölgeler gibi ilgi alanlarının hassas bir şekilde izlenmesine ve analiz edilmesine olanak tanır.
  • Azaltılmış Sonraki İşlem Yükü: TrackZone, bölgenin dışındaki nesneleri yok sayarak alakasız tespitleri kaldırır; böylece üzerine oluşturduğun mantıkta sayılacak, günlüğe kaydedilecek veya uyarı üretilecek daha az nesne olur. Tespit, bölgenin sıkı bir kırpılmış görüntüsü yerine tam boyutlu maskelenmiş bir kare üzerinde çalışmaya devam eder; dolayısıyla avantaj daha hızlı model çıkarımı değil, daha temiz ve odaklı çıktıdır.
  • Gelişmiş Güvenlik: Bölgesel izleme, kritik alanları izleyerek gözetimi iyileştirir ve olağan dışı etkinliklerin veya güvenlik ihlallerinin erken tespitine yardımcı olur.
  • Ölçeklenebilir Çözümler: Belirli bölgelere odaklanabilmesi, TrackZone'u perakende alanlarından endüstriyel ortamlara kadar çeşitli senaryolara uyarlanabilir hale getirerek sorunsuz entegrasyon ve ölçeklenebilirlik sağlar.

Gerçek Dünya Uygulamaları#

TarımUlaşım
Ultralytics YOLO26 Kullanılarak Tarladaki Bitkilerin İzlenmesiUltralytics YOLO26 Kullanılarak Yoldaki Araçların İzlenmesi
Ultralytics YOLO26 Kullanılarak Tarladaki Bitkilerin İzlenmesiUltralytics YOLO26 Kullanılarak Yoldaki Araçların İzlenmesi
Ultralytics YOLO ile TrackZone
# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone source="path/to/video.mp4" show=True

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"

TrackZone, karenin hangi bölümünün izleneceğini öğrenmek için region listesini kullanır. Poligonu ilgilendiğin fiziksel bölgeyle (kapılar, geçitler vb.) eşleşecek şekilde tanımla ve kaplamanın video akışıyla hizalandığını doğrulayabilmek için yapılandırma sırasında show=True seçeneğini etkin tut.

İzleme bölgesini tanımlama
  • region içindeki her giriş, video karesindeki bir (x, y) piksel koordinatıdır. Noktaları, izlemek istediğin alanın çevresi boyunca birbirine bağlanmaları gereken sırayla listele.
  • Koordinatlar kare çözünürlüğüne bağlıdır; bu nedenle 1280×720 akışı için boyutlandırılmış bir bölge 640×480 akışla hizalanmaz. Kaplamanın akışınla eşleştiğini doğrulayabilmek için yapılandırma sırasında show=True seçeneğini etkin tut.
  • TrackZone, noktaları dışbükey kabuklarına indirger; bu nedenle içbükey bir şekil, tüm noktalarını içeren en küçük dışbükey poligona basitleştirilir. Dışbükey olmayan şekiller veya birden fazla ayrı alan için bunun yerine RegionCounter çözümünü kullan.
  • region seçeneğini tamamen çıkarırsan [(75, 75), (565, 75), (565, 285), (75, 285)] varsayılan bölgesi kullanılır.

TrackZone Bağımsız Değişkenleri#

TrackZone 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.
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.

TrackZone çözümü, track parametrelerini destekler:

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_detint300İzlemeden ö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/ayarlanmamış (FP32); diğer formatlar, yapılarının ve çalışma zamanının seçtiği hassasiyette hesaplama yapar. Kullanımdan kaldırılan half bayrağının yerini alır.

Ayrıca aşağıdaki görselleştirme seçenekleri kullanılabilir:

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.

Bölgenin İçindeki Nesneleri Sayma#

İzleyiciye yapılan her çağrı, SolutionResults nesnesi döndürür; bu nesnenin total_tracks özniteliği, şu anda bölge içinde izlenen nesnelerin sayısını içerir. Canlı doluluk durumunu izlemek için bu değeri her karede oku; örneğin bir giriş noktasının veya kısıtlı alanın ne kadar yoğun olduğunu günlüğe kaydedebilirsin:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = trackzone(im0)
    print(f"Objects currently in zone: {results.total_tracks}")  # live zone occupancy

cap.release()

SSS#

  • Bir video karesindeki tanımlanmış bir alan veya bölgede nesneleri izlemek Ultralytics YOLO26 ile oldukça kolaydır. İzlemeyi başlatmak için aşağıda verilen komutu kullanman yeterlidir. Bu yaklaşım, verimli analiz ve doğru sonuçlar sağlayarak gözetim, kalabalık yönetimi veya bölgesel izleme gerektiren her türlü senaryo için idealdir.

    yolo solutions trackzone source="path/to/video.mp4" show=True
  • Yalnızca birkaç satır kodla belirli bölgelerde nesne takibini ayarlayabilir ve bunu projelerine kolayca entegre edebilirsin.

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.mp4")
    assert cap.isOpened(), "Error reading video file"
    w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
    video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
    
    trackzone = solutions.TrackZone(
        show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt"
    )
    
    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            break
        results = trackzone(im0)
        video_writer.write(results.plot_im)
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()
  • Ultralytics TrackZone ile video işleme için bölge noktalarını yapılandırmak basit ve özelleştirilebilirdir. Bölgeleri doğrudan bir Python betiği üzerinden tanımlayıp ayarlayarak izlemek istediğin alanlar üzerinde hassas denetim sağlayabilirsin.

    # Define region points
    region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
    
    # Initialize trackzone
    trackzone = solutions.TrackZone(
        show=True,  # display the output
        region=region_points,  # pass region points
    )

    TrackZone noktaları dışbükey kabuklarına indirger; bu nedenle noktaları izlemek istediğin alanın çevresi boyunca sırayla listelemeyi unutma.

  • Her üç çözüm de bölgelerle çalışır, ancak farklı sorulara yanıt verir:

    ÇözümŞunun için kullanTipik çıktı
    TrackZoneTek bir dışbükey bölgenin içindeki nesneleri izlemek ve canlı doluluğu takip etmekİzlenen kimlikler ve bölge için total_tracks
    ObjectCounterBir çizgiyi geçen veya bir bölgeye girip çıkan nesneleri saymakKümülatif giriş ve çıkış sayıları
    RegionCounterBir veya daha fazla isteğe bağlı (dışbükey olmayanlar da dahil) bölgenin içindeki nesneleri saymakBölge başına nesne sayıları

    Tek bir alanın içinde sürekli izleme yapmak istediğinde TrackZone'u, birden fazla bölgeye veya dışbükey olmayan bir şekle ihtiyaç duyduğunda ise RegionCounter çözümünü seç.

Yorumlar