YOLO Vision 2026:

Ultralytics YOLO26 ile TrackZone#

TrackZone nedir?#

Open TrackZone In Colab

TrackZone, tüm çerçeve yerine bir çerçerzenin belirlenen alanlarındaki nesneleri izleme konusunda uzmandır. Ultralytics YOLO26 üzerine inşa edilmiştir; videolar ve canlı kamera akışları için nesne algılamayı ve izlemeyi özellikle bölgeler içinde entegre eder. YOLO26'nın gelişmiş algoritmaları ve derin öğrenme teknolojileri onu, kalabalık izleme ve gözetim gibi uygulamalarda hassas ve verimli nesne takibi sunarak gerçek zamanlı kullanım senaryoları için mükemmel bir seçim haline getirir.



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

Bölgelerde Nesne Takibinin (TrackZone) Avantajları#

  • Hedefe Yönelik Analiz: Nesneleri belirli bölgeler içinde izlemek, daha odaklı içgörüler sağlar; bu da giriş noktaları veya kısıtlı bölgeler gibi ilgi alanlarının hassas bir şekilde izlenmesini ve analiz edilmesini mümkün kılar.
  • Azaltılmış Akış Aşağı İş Yükü: TrackZone, bölge dışındaki nesneleri görmezden gelerek alakasız algılamaları ortadan kaldırır, böylece üzerine inşa ettiğin mantıkta sayılacak, günlüğe kaydedilecek veya hakkında uyarı verilecek daha az nesne olur. Algılama işlemi, bölgenin dar bir kırpılmış hali yerine tam boyutlu maskelenmiş kare üzerinde çalıştığından, avantaj, daha hızlı model çıkarımı yerine daha temiz ve odaklanmış bir çıktıdır.
  • Gelişmiş Güvenlik: Bölgesel izleme, kritik alanları izleyerek güvenliği artırır ve olağandışı etkinliklerin veya güvenlik ihlallerinin erken tespitine yardımcı olur.
  • Ölçeklenebilir Çözümler: Belirli bölgelere odaklanabilme yeteneği, TrackZone'u perakende alanlarından endüstriyel ortamlara kadar çeşitli senaryolara uyumlu hale getirerek sorunsuz entegrasyon ve ölçeklenebilirlik sağlar.

Gerçek Dünya Uygulamaları#

TarımUlaşım
Plants Tracking in Field Using Ultralytics YOLO26Vehicles Tracking on Road using Ultralytics YOLO26
Ultralytics YOLO26 Kullanarak Tarlada Bitki TakibiUltralytics YOLO26 Kullanarak Yolda Araç 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, çerçerzenin hangi kısmının izleneceğini bilmek için region listesine güvenir. İlgilendiğin fiziksel bölgeyle (kapılar, geçitler vb.) eşleşecek çokgeni tanımla ve kaplamanın video akışıyla hizalandığını doğrulayabilmek için yapılandırma sırasında show=True öğesini etkin tut.

İzleme bölgesini tanımlama
  • region içindeki her bir girdi, video akışındaki bir (x, y) piksel koordinatıdır. Noktaları, izlemek istediğin alanın çevresi etrafında bağlanmaları gereken sırayla listele.
  • Koordinatlar çerçeve çözünürlüğüne bağlıdır; bu nedenle 1280×720 boyutundaki bir akış için boyutlandırılmış bir bölge, 640×480'lik bir akışla uyuşmaz. Kaplamanın akışınla eşleştiğini onaylayabilmek için yapılandırma sırasında show=True öğesini koru.
  • 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. İçbükey şekiller veya birkaç ayrı alan için bunun yerine RegionCounter çözümünü kullan.
  • region öğesini tamamen atlarsan, varsayılan bir [(75, 75), (565, 75), (565, 285), (75, 285)] bölgesi kullanılır.

TrackZone Argümanları#

İşte TrackZone 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.

TrackZone çözümü, track parametreleri için destek içerir:

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 seçenekleri de mevcuttur:

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

İzleyiciye yapılan her çağrı, total_tracks özniteliği bölge içinde şu anda izlenen nesnelerin sayısını tutan bir SolutionResults nesnesi döndürür. Örneğin bir giriş noktasının veya kısıtlı alanın ne kadar yoğun olduğunu kaydetmek için canlı doluluğu izlemek üzere bunu her karede oku:

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#

Ultralytics YOLO26 kullanarak bir video karesinin belirli bir alanında veya bölgesinde nesneleri nasıl izlerim?#

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

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

Python'da Ultralytics YOLO26 ile TrackZone'u nasıl kullanabilirim?#

Sadece birkaç satır kod ile 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 kullanarak video işleme için bölge noktalarını nasıl yapılandırırım?#

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 aracılığıyla tanımlayabilir ve ayarlayabilirsin, bu da izlemek istediğin alanlar üzerinde hassas kontrol sağlar.

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

Unutma ki TrackZone, noktaları dışbükey zarflarına indirger; bu nedenle bunları izlemek istediğin alanın çevresi boyunca sırayla listele.

ObjectCounter veya RegionCounter yerine ne zaman TrackZone kullanmalıyım?#

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

ÇözümŞunun için kullanTipik çıktı
TrackZoneTek bir dışbükey bölge içindeki nesneleri izle ve canlı doluluğu takip etTakip Edilen Kimlikler ve Bölge için total_tracks
ObjectCounterBir çizgiyi geçen veya bir bölgeye girip çıkan nesneleri sayKümülatif giriş ve çıkış sayıları
RegionCounterBir veya daha fazla rastgele (içbükey dahil) bölge içindeki nesneleri sayBölge bazlı nesne sayıları

Tek bir alan içinde sürekli takip istediğinde TrackZone'u, birden fazla bölgeye veya içbükey bir şekle ihtiyaç duyduğunda ise RegionCounter öğesini seç.

Yorumlar