Ultralytics YOLO26 ile Mesafe Hesaplama#
Mesafe Hesaplama Nedir?#
Mesafe hesaplama, bir görüntü veya video karesi içindeki tespit edilen iki nesne arasındaki mesafeyi ölçme işlemidir. Ultralytics YOLO26 kullanıldığında, kullanıcı tarafından seçilen sınırlayıcı kutuların mesafesini hesaplamak için sınırlayıcı kutu ağırlık merkezi kullanılır.
Watch: How to estimate distance between detected objects with Ultralytics YOLO in Pixels 🚀
Görseller#
| Ultralytics YOLO26 ile Mesafe Hesaplama |
|---|
![]() |
Mesafe Hesaplamanın Avantajları#
- Konumlandırma Hassasiyeti: Bilgisayarlı görü görevlerinde doğru uzamsal konumlandırmayı geliştirir.
- Boyut Tahmini: Daha iyi bağlamsal anlayış için nesne boyutlarının tahmin edilmesini sağlar.
- Sahne Anlayışı: Otonom araçlar ve gözetim sistemleri gibi uygulamalarda daha iyi karar verme için 3B sahne anlayışını geliştirir.
- Çarpışmadan Kaçınma: Hareketli nesneler arasındaki mesafeleri izleyerek sistemlerin olası çarpışmaları tespit etmesini sağlar.
- Uzamsal Analiz: İzlenen ortam içindeki nesne ilişkilerinin ve etkileşimlerinin analizini kolaylaştırır.
Mesafe Hesaplama
- Mesafeyi hesaplamak için herhangi iki sınırlayıcı kutuya sol fare düğmesiyle tıklayın.
- Çizilen tüm noktaları silmek için sağ fare düğmesini kullanın.
Mesafe bir tahmindir
Mesafe bir tahmindir ve derinlik bilgisinden yoksun 2B veriler kullanılarak hesaplandığı için tamamen doğru olmayabilir.
YOLO26 ile Mesafeleri Hesaplama#
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 okumak için iki nesneye sol tıkla; 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 writer
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))
# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
model="yolo26n.pt", # path to the YOLO26 model file.
show=True, # display the output
)
# Process video
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) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windowsDistanceCalculation() Bağımsız Değişkenleri#
DistanceCalculation 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. |
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. |
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 | '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 bağımsız değişkenleri 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. |
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:
- 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örüntüler
Uygulama, fare etkileşimlerini yönetmek için mouse_event_for_distance yöntemini kullanır ve kullanıcıların gerektiğinde nesneleri seçmesine ve seçimleri temizlemesine olanak tanır. process yöntemi ise kare kare işlemeyi, nesneleri izlemeyi ve mesafeleri hesaplamayı yönetir.
Uygulamalar#
YOLO26 ile mesafe hesaplamanın çok sayıda pratik uygulaması vardır:
- Perakende Analitiği: Müşterilerin ürünlere yakınlığını ölçme ve mağaza yerleşiminin etkililiğini analiz etme
- Endüstriyel Güvenlik: Çalışanlar ve makineler arasındaki güvenli mesafeleri izleme
- Trafik Yönetimi: Araçlar arasındaki mesafeyi analiz etme ve takip mesafesi ihlalini tespit etme
- Spor Analizi: Oyuncular, top ve sahanın önemli konumları arasındaki mesafeleri hesaplama
- Sağlık Hizmetleri: Bekleme alanlarında uygun sosyal mesafeyi sağlama ve hastaların hareketlerini izleme
- Robotik: Robotların engellerden ve insanlardan uygun mesafeyi korumasını sağlama
SSS#
Ultralytics YOLO26 kullanarak nesneler arasındaki mesafeleri hesaplamak için tespit edilen nesnelerin sınırlayıcı kutu ağırlık merkezlerini belirlemen gerekir. Bu işlem, Ultralytics'in
solutionsmodülündenDistanceCalculationsınıfının başlatılmasını ve mesafeleri hesaplamak için modelin izleme çıktılarını kullanmayı içerir.Ultralytics YOLO26 ile mesafe hesaplamayı kullanmak çeşitli avantajlar sunar:
- Konumlandırma Hassasiyeti: Nesneler için doğru uzamsal konumlandırma sağlar.
- Boyut Tahmini: Fiziksel boyutların tahmin edilmesine yardımcı olarak daha iyi bağlamsal anlayışa katkıda bulunur.
- Sahne Anlayışı: 3B sahne kavrayışını geliştirerek otonom sürüş ve gözetim gibi uygulamalarda daha iyi karar vermeye yardımcı olur.
- Gerçek Zamanlı İşleme: Hesaplamaları anlık olarak gerçekleştirerek canlı video analizi için uygun hale gelir.
- Entegrasyon Yetenekleri: Nesne takibi ve hız tahmini gibi diğer YOLO26 çözümleriyle sorunsuz şekilde çalışır.
Evet, Ultralytics YOLO26 ile gerçek zamanlı video akışlarında mesafe hesaplayabilirsin. Bu işlem, OpenCV kullanarak video karelerini yakalamayı, YOLO26 nesne tespiti gerçekleştirmeyi 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 bakabilirsin.Ultralytics YOLO26 ile mesafe hesaplama sırasında çizilen noktaları silmek için sağ fare düğmesine tıklayabilirsin. Bu işlem çizdiğin tüm noktaları temizler. Daha fazla bilgi için mesafe hesaplama örneğinin notlar bölümüne bakabilirsin.
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ı (Çözümler varsayılan olarakbotsort.yamldeğerini kullanır).conf: Tespitler için güven eşiği.show: Çıktının görüntülenip görüntülenmeyeceğini belirten bayrak.
Eksiksiz liste ve varsayılan değerler için DistanceCalculation bağımsız değişkenlerine bakabilirsin.
