Link to this sectionUltralytics YOLO26 ile TrackZone#
Link to this sectionTrackZone nedir?#
TrackZone, tüm kare yerine bir karenin belirlenmiş alanları içindeki nesneleri izleme konusunda uzmanlaşmıştır. Ultralytics YOLO26 üzerine inşa edilen bu çözüm, nesne algılama ve izleme işlemlerini özellikle videolar ve canlı kamera beslemeleri için bölgeler dahilinde entegre eder. YOLO26'nın gelişmiş algoritmaları ve derin öğrenme teknolojileri, kalabalık izleme ve gözetim gibi uygulamalarda kesin ve verimli nesne izleme sunarak gerçek zamanlı kullanım durumları için mükemmel bir tercih olmasını sağlar.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Link to this sectionBö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.
Link to this sectionGerç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, karenin hangi kısmının izleneceğini bilmek için region listesine güvenir. İlgilendiğin fiziksel bölgeye (kapılar, geçitler vb.) uyacak şekilde çokgeni tanımla ve yapılandırma sırasında bindirmenin video beslemesiyle hizalandığını doğrulamak için show=True seçeneğini etkin tut.
regioniçindeki her girdi, video karesindeki bir(x, y)piksel koordinatıdır. Noktaları, izlemek istediğin alanın çevresinde birbirine bağlanmaları gereken sırayla listele.- Koordinatlar kare çözünürlüğüne bağlıdır, bu nedenle 1280×720 bir besleme için boyutlandırılmış bir bölge, 640×480 bir besleme ile hizalanmaz. Yapılandırma sırasında
show=Trueseçeneğini açık tut, böylece bindirmenin beslemenle eşleştiğini doğrulayabilirsin. TrackZone, noktaları kendi dışbükey gövdesine 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.regionparametresini tamamen atlarsan, varsayılan olarak[(75, 75), (565, 75), (565, 285), (75, 285)]bölgesi kullanılır.
Link to this sectionTrackZone 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 alanını tanımlayan noktalar; ya (x, y) demetlerinden oluşan bir liste ya da birden fazla bölge için bölge adlarını nokta listeleriyle eşleyen bir sözlüktür (sadece RegionCounter için). None olduğunda, bir 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 | '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.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 | Çakışan algılamaları 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 (örn. cpu, cuda:0 veya 0). Kullanıcıların model yürütme için CPU, belirli bir GPU veya diğer 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 | True ise, 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 için kullanışlıdır. |
line_width | int or None | None | Sınırlayıcı kutuların çizgi genişliğini belirtir. 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. |
Link to this sectionBölge İçindeki Nesneleri Sayma#
Every call to the tracker returns a SolutionResults object whose total_tracks attribute holds the number of objects currently tracked inside the zone. Read it on each frame to monitor live occupancy, for example to log how busy an entry point or restricted area is:
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()Link to this sectionSSS#
Link to this sectionUltralytics 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=TrueLink to this sectionPython'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()Link to this sectionUltralytics 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
)TrackZone'un noktaları dışbükey gövdesine indirgediğini unutma, bu yüzden onları izlemek istediğin alanın çevresi boyunca sırayla listele.
Link to this sectionObjectCounter 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 | Bölge için izlenen ID'ler ve 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 izleme istediğinde TrackZone'u, birden fazla bölgeye veya içbükey bir şekle ihtiyaç duyduğunda ise RegionCounter çözümünü seç.