Ultralytics YOLO27:
Get Started

Ultralytics YOLO26 ile TrackZone#

TrackZone Nedir?#

Open TrackZone In Colab

TrackZone, nesneleri tüm kare yerine karenin belirlenmiş alanlarında izleme konusunda uzmanlaşmıştır. Ultralytics YOLO26 temel alınarak geliştirilen çözüm, video ve canlı kamera akışlarında özellikle bölgelerde nesne algılama ve takibi 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 çözümü gerçek zamanlı kullanım senaryoları için ideal hâle getirir.



İzle: Ultralytics YOLO26 ile Bir Bölgedeki Nesneler Nasıl İzlenir | TrackZone 🚀

Bölgelerde Nesne Takibinin Avantajları (TrackZone)#

  • Hedef Odaklı Analiz: Nesneleri belirli bölgelerde takip etmek, daha odaklı içgörüler elde etmeyi sağlar ve giriş noktaları veya kısıtlı bölgeler gibi ilgi alanlarının hassas biçimde izlenmesine ve analiz edilmesine olanak tanır.
  • Sonraki Aşamalardaki İş Yükünün Azalması: TrackZone, bölgenin dışındaki nesneleri yok sayarak ilgisiz algılamaları eler; böylece üzerine kurduğun mantıkta sayılacak, kaydedilecek veya uyarı oluşturulacak daha az nesne olur. Algılama, bölgenin dar bir kırpımı yerine tam boyutlu maskelenmiş bir kare üzerinde çalışmaya devam eder; bu nedenle avantaj, model çıkarımının hızlanmasından çok daha temiz ve odaklı bir çıktıdır.
  • Gelişmiş Güvenlik: Bölgesel takip, 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 odaklanabilme özelliği, TrackZone'u perakende alanlarından endüstriyel ortamlara kadar çeşitli senaryolara uyarlanabilir hâle getirir ve sorunsuz entegrasyon ile ölçeklenebilirlik sağlar.

Gerçek Dünya Uygulamaları#

TarımUlaşım
Ultralytics YOLO26 ile Tarladaki Bitkilerin TakibiUltralytics YOLO26 ile Yoldaki Araçların Takibi
Ultralytics YOLO26 ile Tarladaki Bitkilerin TakibiUltralytics YOLO26 ile Yoldaki Araçların Takibi
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ü izleyeceğini belirlemek için region listesine dayanır. Çokgeni ilgilendiğin fiziksel bölgeye (kapılar, geçitler vb.) uyacak şekilde tanımla ve yer paylaşımının video akışıyla hizalandığını doğrulamak için yapılandırma sırasında show=True seçeneğini etkin tut.

Takip bölgesini tanımlama
  • region içindeki her girdi, video karesindeki bir (x, y) piksel koordinatıdır. İzlemek istediğin alanın çevresini oluşturacak şekilde noktaları birleştirme sırasına göre listele.
  • Koordinatlar kare çözünürlüğüne bağlıdır; bu nedenle 1280×720 akış için belirlenen bir bölge, 640×480 akışla hizalanmaz. Yer paylaşımının akışınla eşleştiğini doğrulamak için yapılandırma sırasında show=True seçeneğini etkin tut.
  • TrackZone, noktaları dışbükey zarflarına indirger; bu nedenle içbükey bir şekil, tüm noktalarını içeren en küçük dışbükey çokgene basitleştirilir. Dışbükey olmayan şekiller veya birbirinden ayrı birkaç alan için bunun yerine RegionCounter çözümünü kullan.
  • region hiç belirtilmezse varsayılan [(75, 75), (565, 75), (565, 285), (75, 285)] bölgesi kullanılır.

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

Aşağıda TrackZone 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.

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

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: PyTorch ve TorchScript modellerinde 16 (FP16) veya 32/ayarlanmamış (FP32); diğer biçimlerde hesaplama, yapıtın ve çalışma zamanının seçtiği hassasiyetle yapılır. Kullanımdan kaldırılan half bayrağının yerine geçer.

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

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ölgenin İçindeki Nesneleri Sayma#

İzleyiciye yapılan her çağrı, SolutionResults nesnesi döndürür; bu nesnenin total_tracks özniteliği, o anda bölge içinde takip edilen nesnelerin sayısını tutar. Canlı doluluğu 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 kaydet:

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()

Sık Sorulan Sorular#

  • Ultralytics YOLO26 ile bir video karesinin tanımlı bir alanındaki veya bölgesindeki nesneleri takip etmek oldukça kolaydır. Takibi başlatmak için aşağıda verilen komutu kullanman yeterli. Bu yaklaşım verimli analiz ve doğru sonuçlar sağlar; bu da onu gözetim, kalabalık yönetimi veya bölgesel takip gerektiren diğer senaryolar için ideal hâle getirir.

    yolo solutions trackzone source="path/to/video.mp4" show=True
  • Yalnızca birkaç satır kodla belirli bölgelerde nesne takibini ayarlayabilir ve 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 kolaydır ve özelleştirilebilir. İzlemek istediğin alanlar üzerinde hassas kontrol sahibi olmak için bölgeleri doğrudan bir Python betiğiyle tanımlayıp ayarlayabilirsin.

    from ultralytics import solutions
    
    # Bölge noktalarını tanımla
    region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
    
    # trackzone'u başlat
    trackzone = solutions.TrackZone(
        show=True,  # çıktıyı görüntüle
        region=region_points,  # bölge noktalarını ilet
    )

    TrackZone noktaları dışbükey zarflarına indirger; bu nedenle içbükey bir dış hat, tüm noktalarını içeren en küçük dışbükey çokgene basitleştirilir.

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

    ÇözümŞu amaçla kullanTipik çıktı
    TrackZoneTek bir dışbükey bölgedeki nesneleri takip etmek ve canlı doluluğu izlemekTakip edilen kimlikler ve bölgeye ait 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 keyfî (dışbükey olmayanlar dâhil) bölgedeki nesneleri saymakBölge başına nesne sayıları

    Bir alanda kesintisiz takip istiyorsan TrackZone'u; birden fazla bölgeye veya dışbükey olmayan bir şekle ihtiyacın varsa RegionCounter çözümünü seç.

Yorumlar