Ultralytics YOLO26 ile TrackZone#
TrackZone nedir?#
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ım | Ulaşım |
|---|---|
| Ultralytics YOLO26 Kullanarak Tarlada Bitki Takibi | Ultralytics YOLO26 Kullanarak Yolda Araç Takibi |
# 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.
regioniç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üman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
model | str | None | Bir Ultralytics YOLO model dosyasına giden yol. |
region | list veya dict | None | İ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üman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Kullanılacak izleme algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Algı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. |
iou | float | 0.7 | Örtüşen tespitleri filtrelemek için Intersection over Union (IoU) eşiğini ayarlar. |
classes | list | None | Sonuçları sınıf indeksine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler. |
verbose | bool | True | İzlenen nesnelerin görsel bir çıktısını sağlayarak izleme sonuçlarının görüntülenmesini kontrol eder. |
device | str | None | Çı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üman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
show | bool | False | Eğ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_width | int or None | None | Sı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_conf | bool | True | Her 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_labels | bool | True | Gö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=TruePython'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 kullan | Tipik çıktı |
|---|---|---|
| TrackZone | Tek bir dışbükey bölge içindeki nesneleri izle ve canlı doluluğu takip et | Takip Edilen Kimlikler ve Bölge için total_tracks |
| ObjectCounter | Bir çizgiyi geçen veya bir bölgeye girip çıkan nesneleri say | Kümülatif giriş ve çıkış sayıları |
| RegionCounter | Bir veya daha fazla rastgele (içbükey dahil) bölge içindeki nesneleri say | Bö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ç.