YOLO Vision 2026:

Ultralytics YOLO26 kullanarak Mesafe Hesaplama#

Mesafe Hesaplama nedir?#

Mesafe hesaplama, bir görüntü veya video karesindeki tespit edilen iki nesne arasındaki boşluğu ölçme sürecidir. Ultralytics YOLO26 durumunda, kullanıcının vurguladığı sınırlayıcı kutular için mesafeyi hesaplamak amacıyla 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 kullanarak Mesafe Hesaplama
Ultralytics YOLO26 Mesafe Hesaplama

Mesafe Hesaplamanın Avantajları#

  • Konumlandırma Hassasiyeti: computer vision görevlerinde doğru uzaysal konumlandırmayı geliştirir.
  • Boyut Tahmini: Daha iyi bağlamsal anlayış için nesne boyutunun tahmin edilmesini sağlar.
  • Sahne Anlama: autonomous vehicles ve gözetim sistemleri gibi uygulamalarda daha iyi karar verme için 3B sahne kavramasını iyileştirir.
  • Çarpışma Önleme: Hareketli nesneler arasındaki mesafeleri izleyerek sistemlerin olası çarpışmaları algılamasını sağlar.
  • Uzamsal Analiz: İzlenen ortamdaki nesne ilişkilerinin ve etkileşimlerinin analizini kolaylaştırır.
Mesafe Hesaplama
  • Mesafeyi hesaplamak için farenin sol tuşuyla herhangi iki sınırlayıcı kutuya tıkla.
  • Çizilen tüm noktaları silmek için farenin sağ tuşunu kullan.
  • Yeni noktalar eklemek için çerçeve içinde herhangi bir yere sol tıkla.
Mesafe bir tahmindir

Mesafe bir tahmindir ve derinlik bilgisinden yoksun 2D veriler kullanılarak hesaplandığı için tam olarak doğru olmayabilir.

YOLO26 ile Mesafeleri Hesapla#

DistanceCalculation çözümü, nesneleri kareler arasında takip eder ve fare ile seçtiğiniz 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ın, ardından bağlantı çizgisini çizmek ve mesafeyi okumak için iki nesneye sol tıklayın; seçiminizi temizlemek için sağ tıklayın.

Ultralytics YOLO kullanarak 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 DistanceCalculation argümanlarını içeren bir tablo:

ArgümanTipVarsayılanAçıklama
modelstrNoneBir Ultralytics YOLO model dosyasına giden yol.

DistanceCalculation çözümünde çeşitli track argümanlarından da yararlanabilirsin.

ArgümanTipVarsayılanAçıklama
trackerstr'tracktrack.yaml'Kullanılacak izleme algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Algı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.
ioufloat0.7Örtüşen tespitleri filtrelemek için Intersection over Union (IoU) eşiğini ayarlar.
classeslistNoneSonuçları sınıf indeksine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler.
verboseboolTrueİzlenen nesnelerin görsel bir çıktısını sağlayarak izleme sonuçlarının görüntülenmesini kontrol eder.
devicestrNoneÇı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.

Dahası, aşağıdaki görselleştirme argümanları da mevcuttur:

ArgümanTipVarsayılanAçıklama
showboolFalseEğ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_widthint or NoneNoneSı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_confboolTrueHer 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_labelsboolTrueGörsel çıktıda her bir tespit için etiketleri görüntüler. Tespit edilen nesnelerin anında anlaşılmasını sağlar.

Uygulama Detayları#

DistanceCalculation sınıfı, nesneleri video kareleri arasında takip ederek ve seçilen sınırlayıcı kutuların ağırlık merkezleri arasındaki Öklid mesafesini hesaplayarak çalışır. İki nesneye tıkladığınızda çözüm:

  1. Seçilen sınırlayıcı kutuların merkez noktalarını (center points) çıkarır
  2. Bu merkez noktalar arasındaki Öklid mesafesini piksel cinsinden hesaplar
  3. Mesafeyi, nesneler arasında birleştirici bir çizgi ile kare üzerinde görüntüler

Uygulama, fare etkileşimlerini yönetmek için mouse_event_for_distance yöntemini kullanarak kullanıcıların nesneleri seçmesine ve gerektiğinde seçimleri temizlemesine olanak tanır. process yöntemi kare kare işlemeyi yönetir, nesneleri takip eder ve mesafeleri hesaplar.

Uygulamalar#

YOLO26 ile mesafe hesaplamanın çok sayıda pratik uygulaması vardır:

  • Perakende Analitiği: Müşterilerin ürünlere yakınlığını ölç ve mağaza düzeninin etkinliğini analiz et
  • Endüstriyel Güvenlik: Çalışanlar ve makineler arasındaki güvenli mesafeleri izle
  • Trafik Yönetimi: Araç aralığını analiz et ve yakın takibi algıla
  • Spor Analizi: Oyuncular, top ve sahadaki önemli konumlar arasındaki mesafeleri hesapla
  • Sağlık Hizmetleri: Bekleme alanlarında uygun mesafeyi sağla ve hasta hareketlerini izle
  • Robotik: Robotların engellerden ve insanlardan uygun mesafeyi korumasını sağla

SSS#

Ultralytics YOLO26 kullanarak nesneler arasındaki mesafeleri nasıl hesaplarım?#

Ultralytics YOLO26 kullanarak nesneler arasındaki mesafeleri hesaplamak için tespit edilen nesnelerin sınırlayıcı kutu (bounding box) merkez noktalarını belirlemen gerekir. Bu işlem, Ultralytics'in solutions modülünden DistanceCalculation sınıfını başlatmayı ve mesafeleri hesaplamak için modelin takip çıktılarını kullanmayı içerir.

Ultralytics YOLO26 ile mesafe hesaplamayı kullanmanın avantajları nelerdir?#

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ı tahmin etmeye yardımcı olur ve daha iyi bağlamsal anlayışa katkıda bulunur.
  • Sahne Anlama: 3D sahne kavramasını geliştirerek otonom sürüş ve gözetim gibi uygulamalarda daha iyi karar vermeye yardımcı olur.
  • Gerçek Zamanlı İşleme: Hesaplamaları anında gerçekleştirerek canlı video analizi için uygun hale getirir.
  • Entegrasyon Yetenekleri: object tracking ve speed estimation gibi diğer YOLO26 çözümleriyle sorunsuz bir şekilde çalışır.

Ultralytics YOLO26 ile gerçek zamanlı video akışlarında mesafe hesaplama yapabilir miyim?#

Evet, Ultralytics YOLO26 ile gerçek zamanlı video akışlarında mesafe hesaplaması gerçekleştirebilirsiniz. Süreç, OpenCV kullanarak video kareleri yakalamayı, YOLO26 object detection çalıştırmayı ve art arda gelen karelerdeki nesneler arasındaki mesafeleri hesaplamak için DistanceCalculation sınıfını kullanmayı içerir. Ayrıntılı bir uygulama için video akışı örneği kısmına bakın.

Ultralytics YOLO26 kullanarak mesafe hesaplama sırasında çizilen noktaları nasıl silerim?#

Ultralytics YOLO26 ile mesafe hesaplama sırasında çizilen noktaları silmek için fare sağ tıklamasını kullanabilirsiniz. Bu işlem, çizdiğiniz tüm noktaları temizleyecektir. Daha fazla ayrıntı için mesafe hesaplama örneği altındaki not bölümüne bakın.

Ultralytics YOLO26'da DistanceCalculation sınıfını başlatmak için ana argümanlar nelerdir?#

Ultralytics YOLO26 içinde DistanceCalculation sınıfını başlatmak için temel argümanlar şunları içerir:

  • model: YOLO26 model dosyasının yolu.
  • tracker: Kullanılacak takip algoritması (varsayılan 'botsort.yaml' değeridir).
  • conf: Tespitler 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ı kısmına bakın.

Yorumlar