Ultralytics YOLO26 ile Mesafe Hesaplama#
Mesafe Hesaplama Nedir?#
Mesafe hesaplama, bir görüntü veya video karesi içindeki tespit edilmiş iki nesne arasındaki mesafenin ölçülmesi işlemidir. Ultralytics YOLO26 söz konusu olduğunda, kullanıcının vurguladığı sınırlayıcı kutular arasındaki mesafe, sınırlayıcı kutunun ağırlık merkezi kullanılarak hesaplanır.
İzle: Ultralytics YOLO ile Algılanan Nesneler Arasındaki Mesafe Piksel Cinsinden Nasıl Tahmin Edilir 🚀
Görseller#
| Ultralytics YOLO26 ile Mesafe Hesaplama |
|---|
![]() |
Mesafe Hesaplamanın Avantajları#
- Yerelleştirme Hassasiyeti: Bilgisayarlı görü görevlerinde hassas konum belirlemeyi geliştirir.
- Boyut Tahmini: Bağlamsal kavrayışı iyileştirmek için nesne boyutunun tahmin edilmesini sağlar.
- Sahneyi Anlama: Otonom araçlar ve gözetim sistemleri gibi uygulamalarda daha iyi karar vermek için 3B sahne kavrayışını geliştirir.
- Çarpışmayı Önleme: Hareketli nesneler arasındaki mesafeleri izleyerek sistemlerin olası çarpışmaları tespit etmesini sağlar.
- Mekânsal Analiz: İzlenen ortam içindeki nesne ilişkilerinin ve etkileşimlerinin analizini kolaylaştırır.
Mesafe Hesaplama
- Mesafeyi hesaplamak için sol fare düğmesiyle herhangi iki sınırlayıcı kutuya tıkla.
- Çizilen tüm noktaları silmek için sağ fare düğmesini kullan.
Mesafe bir tahmindir
Mesafe bir tahmindir ve derinlik bilgisi içermeyen 2B veriler kullanılarak hesaplandığı için tamamen doğru olmayabilir.
YOLO26 ile Mesafeleri Hesapla#
DistanceCalculation çözümü nesneleri kareler boyunca izler ve fareyle seçtiğin herhangi iki sınırlayıcı kutunun ağırlık merkezleri arasındaki Öklid mesafesini piksel cinsinden ölçer. Aşağıdaki örneği çalıştır, ardından bağlantı çizgisini çizmek ve mesafeyi görmek için iki nesneye sol tıkl; seçimini temizlemek için sağ tıkla.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video yazıcısı
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("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Mesafe hesaplama nesnesini başlat
distancecalculator = solutions.DistanceCalculation(
model="yolo26n.pt", # YOLO26 model dosyasının yolu.
show=True, # çıktıyı görüntüle
)
# Videoyu işle
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = distancecalculator(im0)
print(results) # çıktıya eriş
video_writer.write(results.plot_im) # işlenmiş kareyi yaz.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # açık tüm pencereleri kapatDistanceCalculation() Bağımsız Değişkenleri#
Aşağıda DistanceCalculation bağımsız değişkenlerini içeren bir tablo bulabilirsin:
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
model | str | None | Ultralytics YOLO model dosyasının yolu. |
line_width | int | 2 | Çözümün çizdiği kutular, anahtar noktalar ve sayılar için çizgi kalınlığı. |
verbose | bool | True | Çö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. |
DistanceCalculation çözümünde çeşitli track bağımsız değişkenlerinden de yararlanabilirsin.
| Bağımsız değişken | Tür | 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.25 | Algı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. |
iou | float | 0.7 | Çakışan algılamaları filtrelemek için Kesişim-Birleşim Oranı (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ı izler. |
device | str | None | Çı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. |
imgsz | int or tuple | 640 | Hedef çı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_det | int | 300 | Yoğ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ı. |
quantize | int or str | None | Çıkarım hassasiyeti: CPU dışında PyTorch ve TorchScript modelleri için 16 (FP16) veya 32/unset (FP32); diğer biçimler, model yapıtının ve çalışma zamanının seçtiği hassasiyeti kullanır. Kullanımdan kaldırılan half argümanının yerini alır. |
Ayrıca aşağıdaki görselleştirme bağımsız değişkenleri kullanılabilir:
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
show | bool | False | True 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_conf | bool | True | Her 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_labels | bool | True | Görsel çıktıda her algılama için etiketleri gösterir. Algılanan nesnelerin hemen anlaşılmasını sağlar. |
Uygulama Ayrıntıları#
DistanceCalculation sınıfı, nesneleri video kareleri boyunca izleyerek ve seçilen sınırlayıcı kutuların ağırlık merkezleri arasındaki Öklid mesafesini hesaplayarak çalışır. İki nesneye tıkladığında çözüm şunları yapar:
- Seçilen sınırlayıcı kutuların ağırlık merkezlerini (merkez noktalarını) çıkarır
- Bu ağırlık merkezleri arasındaki Öklid mesafesini piksel cinsinden hesaplar
- Nesneler arasına bağlantı çizgisi çizerek mesafeyi kare üzerinde gösterir
Uygulama, fare etkileşimlerini yönetmek için mouse_event_for_distance yöntemini kullanır; böylece kullanıcılar nesneleri seçebilir ve gerektiğinde seçimleri temizleyebilir. process yöntemi ise kare kare işlemeyi, nesneleri izlemeyi ve mesafeleri hesaplamayı yönetir.
Uygulamalar#
YOLO26 ile mesafe hesaplama, çok sayıda pratik uygulama sunar:
- Perakende Analitiği: Müşterilerin ürünlere yakınlığını ölç ve mağaza yerleşiminin etkinliğini analiz et
- Endüstriyel Güvenlik: Çalışanlar ve makineler arasındaki güvenli mesafeleri izle
- Trafik Yönetimi: Araçlar arasındaki mesafeyi analiz et ve takip mesafesini korumama durumlarını tespit et
- Spor Analizi: Oyuncular, top ve sahadaki önemli konumlar arasındaki mesafeleri hesapla
- Sağlık Hizmetleri: Bekleme alanlarında uygun mesafeyi koru ve hasta hareketlerini izle
- Robotik: Robotların engellere ve insanlara uygun mesafeyi korumasını sağla
Sık Sorulan Sorular#
Ultralytics YOLO26 ile nesneler arasındaki mesafeleri hesaplamak için tespit edilen nesnelerin sınırlayıcı kutularının ağırlık merkezlerini belirlemen gerekir. Bu işlem, Ultralytics'in
solutionsmodülündekiDistanceCalculationsınıfını başlatmayı ve mesafeleri hesaplamak için modelin izleme çıktılarını kullanmayı içerir.Ultralytics YOLO26 ile mesafe hesaplama çeşitli avantajlar sunar:
- Yerelleştirme Hassasiyeti: Nesnelerin konumunu hassas biçimde belirler.
- Boyut Tahmini: Fiziksel boyutları tahmin etmeye yardımcı olarak bağlamsal kavrayışı iyileştirir.
- Sahneyi Anlama: 3B sahne kavrayışını geliştirerek otonom sürüş ve gözetim gibi uygulamalarda daha iyi kararlar alınmasına yardımcı olur.
- Gerçek Zamanlı İşleme: Hesaplamaları anında yaparak canlı video analizine uygunluk sağlar.
- Entegrasyon Olanakları: Nesne izleme ve hız tahmini gibi diğer YOLO26 çözümleriyle sorunsuz çalışır.
Evet, Ultralytics YOLO26 ile gerçek zamanlı video akışlarında mesafe hesaplayabilirsin. Bu işlem, OpenCV kullanarak video karelerini yakalamayı, YOLO26 ile nesne tespiti yapmayı ve ardışık karelerdeki nesneler arasındaki mesafeleri hesaplamak için
DistanceCalculationsınıfını kullanmayı içerir. Ayrıntılı bir uygulama için video akışı örneğine bak.Ultralytics YOLO26 ile mesafe hesaplarken çizilen noktaları silmek için sağ fare düğmesiyle tıklayabilirsin. Bu işlem çizdiğin tüm noktaları temizler. Daha fazla ayrıntı için mesafe hesaplama örneğinin altındaki notlar bölümüne bak.
Ultralytics YOLO26'da
DistanceCalculationsınıfını başlatmak için kullanılan temel bağımsız değişkenler şunlardır:model: YOLO26 model dosyasının yolu.tracker: Kullanılacak izleme algoritması (Solutions varsayılan olaraktracktrack.yamlkullanır).conf: Tespitler için güven eşiği.show: Çıktıyı görüntüleme bayrağı.
Eksiksiz liste ve varsayılan değerler için DistanceCalculation bağımsız değişkenlerine bak.
