Ultralytics YOLO26 ile TrackZone#
TrackZone nedir?#
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ım | Ulaşım |
|---|---|
![]() | ![]() |
| Ultralytics YOLO26 Kullanılarak Tarladaki Bitkilerin İzlenmesi | Ultralytics YOLO26 Kullanılarak Yoldaki Araçların İzlenmesi |
# 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.
regioniç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=Trueseç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.regionseç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şken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
model | str | None | Bir Ultralytics YOLO model dosyasının yolu. |
region | list veya dict | None | İ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_width | int | 2 | Çözümün çizdiği kutular, kilit noktaları ve sayılar için çizgi kalınlığı. |
verbose | bool | True | Çö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şken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Kullanılacak takip algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Algı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. |
iou | float | 0.7 | Örtüşen algılamaları filtrelemek için Birleşim Üzerindeki Kesişim (IoU) eşiğini belirler. |
classes | list | None | Sonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları takip eder. |
device | str | None | Çı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. |
imgsz | int or tuple | 640 | Hedef çı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_det | int | 300 | İ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. |
quantize | int or str | None | Çı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şken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
show | bool | False | True 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_conf | bool | True | Her 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_labels | bool | True | Gö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=TrueYalnı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 )TrackZonenoktaları 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 kullan Tipik çıktı TrackZone Tek bir dışbükey bölgenin içindeki nesneleri izlemek ve canlı doluluğu takip etmek İzlenen kimlikler ve bölge için total_tracksObjectCounter Bir çizgiyi geçen veya bir bölgeye girip çıkan nesneleri saymak Kümülatif giriş ve çıkış sayıları RegionCounter Bir veya daha fazla isteğe bağlı (dışbükey olmayanlar da dahil) bölgenin içindeki nesneleri saymak Bö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ç.

