Ultralytics YOLO26 Kullanarak Mesafe Hesaplama
Mesafe Hesaplama (Distance Calculation) nedir?
İki nesne arasındaki boşluğu ölçmek, belirli bir alandaki mesafe hesaplaması olarak bilinir. Ultralytics YOLO26 durumunda, kullanıcının vurguladığı sınırlayıcı kutu merkezi, sınırlayıcı kutular için mesafeyi hesaplamak amacıyla kullanılır.
İzle: Ultralytics YOLO ile algılanan nesneler arasındaki mesafe Piksellerde nasıl tahmin edilir 🚀
Görseller
| Ultralytics YOLO26 Kullanarak Mesafe Hesaplama |
|---|
![]() |
Mesafe Hesaplamanın Avantajları
- Konumlandırma Hassasiyeti: Bilgisayar görüşü görevlerinde doğru uzamsal konumlandırmayı geliştirir.
- Boyut Tahmini: Daha iyi bağlamsal anlayış için nesne boyutunun tahmin edilmesini sağlar.
- Sahne Anlama: Otonom araçlar ve gözetim sistemleri gibi uygulamalarda daha iyi karar verme için 3D sahne algısını geliştirir.
- Çarpışma Önleme: Hareketli nesneler arasındaki mesafeleri izleyerek sistemlerin potansiyel çarpışmaları detect etmesini sağlar.
- Konumsal Analiz: İzlenen ortamdaki 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ırlandırma kutusuna tıklayın.
- Çizilen tüm noktaları silmek için sağ fare düğmesini kullanın.
- Yeni noktalar eklemek için çerçeve içinde herhangi bir yere sol tıklayın.
Mesafe bir tahmindir
Mesafe bir tahmindir ve derinlik bilgisi olmayan 2B veriler kullanılarak hesaplandığı için tam olarak doğru olmayabilir.
Ultralytics YOLO kullanılarak Mesafe Hesaplama
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 windows
DistanceCalculation() Argümanlar
İşte şunları içeren bir tablo: DistanceCalculation argümanlar:
| Argüman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
model | str | None | Bir Ultralytics YOLO model dosyasının yolu. |
Ayrıca çeşitli olanaklardan da yararlanabilirsiniz: track içindeki argümanlar DistanceCalculation çözümü.
| Argüman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Kullanılacak izleme algoritmasını belirtir, örneğin: bytetrack.yaml veya botsort.yaml. |
conf | float | 0.1 | Algılamalar için güven eşiğini ayarlar; daha düşük değerler daha fazla nesnenin izlenmesine olanak tanır ancak yanlış pozitifleri 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 | İzleme sonuçlarının görüntülenmesini kontrol eder ve izlenen nesnelerin görsel bir çıktısını sağlar. |
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 argümanları mevcuttur:
| Argüman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
show | bool | False | Eğer True, ek 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. Eğer None, ç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 | Etiketin yanında her algılama için güvenilirlik puanını görüntüler. Modelin her algılama için kesinliği hakkında fikir verir. |
show_labels | bool | True | Görsel çıktıdaki her algılama için etiketleri görüntüler. Algılanan nesnelerin anında anlaşılmasını sağlar. |
Uygulama Detayları
DistanceCalculation sınıfı, video kareleri arasında nesneleri izleyerek ve seçilen sınırlayıcı kutuların merkez noktaları arasındaki Öklid mesafesini hesaplayarak çalışır. İki nesneye tıkladığınızda, çözüm:
- Seçilen sınırlayıcı kutuların centroidlerini (merkez noktalarını) çıkarır
- Bu centroidler arasındaki Öklid mesafesini piksel cinsinden hesaplar
- Çerçeve üzerindeki mesafeyi nesneler arasında bağlantı çizgisiyle birlikte görüntüler
Uygulama şunu kullanır: mouse_event_for_distance kullanıcıların nesneleri seçmesine ve gerektiğinde seçimleri temizlemesine olanak tanıyan fare etkileşimlerini işleme method'u. The process yöntemi, kare kare işlemeyi, nesneleri izlemeyi ve mesafeleri hesaplamayı yönetir.
Uygulamalar
YOLO26 ile mesafe hesaplamasının çok sayıda pratik uygulaması vardır:
- Perakende Analitiği: Müşterinin ürünlere yakınlığını ölçün ve mağaza yerleşiminin etkinliğini analiz edin.
- Endüstriyel Güvenlik: İşçiler ve makineler arasındaki güvenli mesafeleri izleyin
- Trafik Yönetimi: Araç aralığını analiz edin ve takip mesafesini ihlalini tespit edin
- Spor Analizi: Oyuncular, top ve önemli saha pozisyonları arasındaki mesafeleri hesaplayın
- Sağlık Hizmetleri: Bekleme alanlarında uygun mesafeyi sağlayın ve hasta hareketini izleyin
- Robotik: Robotların engellerden ve insanlardan uygun mesafeleri korumasını sağlayın
SSS
Ultralytics YOLO26 kullanarak nesneler arasındaki mesafeleri nasıl hesaplarım?
Şunu kullanarak nesneler arasındaki mesafeleri hesaplamak için Ultralytics YOLO26, algılanan nesnelerin sınırlayıcı kutu merkez noktalarını belirlemeniz gerekir. Bu işlem, şunun başlatılmasını içerir: DistanceCalculation Ultralytics'in sınıfından solutions modülü ve modelin izleme çıktılarını kullanarak mesafeleri hesaplar.
Ultralytics YOLO26 ile mesafe hesaplaması kullanmanın avantajları nelerdir?
Ultralytics YOLO26 ile mesafe hesaplaması kullanmanın çeşitli avantajları vardır:
- 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ştirir, otonom sürüş ve gözetim gibi uygulamalarda iyileştirilmiş karar almaya yardımcı olur.
- Gerçek zamanlı İşleme: Anında hesaplamalar yaparak canlı video analizi için uygun hale getirir.
- Entegrasyon Yetenekleri: nesne track ve hız tahmini gibi diğer YOLO26 çözümleriyle sorunsuz çalışır.
Ultralytics YOLO26 ile gerçek zamanlı video akışlarında mesafe hesaplaması yapabilir miyim?
Evet, Ultralytics YOLO26 ile gerçek zamanlı video akışlarında mesafe hesaplaması yapabilirsiniz. Bu süreç, video karelerini şunları kullanarak yakalamayı içerir: OpenCV, YOLO26'yı çalıştırarak nesne tespiti, ve şunu kullanarak DistanceCalculation ardışık karelerdeki nesneler arasındaki mesafeleri hesaplamak için sınıf. Ayrıntılı bir uygulama için bkz. video akışı örneği.
Ultralytics YOLO26 kullanarak mesafe hesaplaması sırasında çizilen noktaları nasıl silerim?
Ultralytics YOLO26 ile mesafe hesaplaması sırasında çizilen noktaları silmek için sağ fare tıklaması kullanabilirsiniz. Bu eylem, çizdiğiniz tüm noktaları temizleyecektir. Daha fazla ayrıntı için mesafe hesaplama örneğinin altındaki not bölümüne bakın.
Ultralytics YOLO26'daki DistanceCalculation sınıfını başlatmak için temel argümanlar nelerdir?
Başlatmak için temel argümanlar DistanceCalculation Ultralytics YOLO26'daki sınıf şunları içerir:
model: YOLO26 model dosyasına giden yol.tracker: Kullanılacak izleme algoritması (varsayılan 'botsort.yaml').conf: Algılamalar için güven eşiği.show: Çıktıyı görüntüleme bayrağı.
Kapsamlı bir liste ve varsayılan değerler için, DistanceCalculation argümanlarına bakın.
