İçeriğe geç

Kullanarak Mesafe Hesaplama Ultralytics YOLO11

Mesafe Hesaplama Nedir?

İki nesne arasındaki boşluğun ölçülmesi, belirli bir alan içinde mesafe hesaplaması olarak bilinir. Bu durumda Ultralytics YOLO11sınırlayıcı kutu merkezi, kullanıcı tarafından vurgulanan sınırlayıcı kutuların mesafesini hesaplamak için kullanılır.



İzle: Kullanarak Mesafe Hesaplama Ultralytics YOLO11

Görseller

Kullanarak Mesafe Hesaplama Ultralytics YOLO11
Ultralytics YOLO11 Mesafe Hesaplama

Mesafe Hesaplamanın Avantajları?

  • Yerelleştirme Hassasiyeti: Bilgisayarla görme 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özetleme sistemleri gibi uygulamalarda daha iyi karar verme için 3D sahne kavramayı geliştirir.
  • Çarpışmadan Kaçınma: Sistemlerin hareketli nesneler arasındaki mesafeleri izleyerek olası çarpışmaları tespit etmesini sağlar.
  • Mekânsal Analiz: İzlenen ortamdaki nesne ilişkilerinin ve etkileşimlerinin analizini kolaylaştırır.
Mesafe Hesaplama
  • Mesafe hesaplaması için herhangi iki sınırlayıcı kutuya Sol Fare tıklaması ile tıklayın
  • Fare Sağ Tıklaması çizilen tüm noktaları silecektir
  • Fare Sol Tıklaması nokta çizmek için kullanılabilir
Mesafe Tahminidir
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data,
which lacks information about the object's depth.

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="yolo11n.pt",  # path to the YOLO11 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 bir tablo DistanceCalculation Argümanlar:

Tartışma Tip Varsayılan Açıklama
model str None Ultralytics YOLO Model Dosyasının Yolu.

Ayrıca çeşitli araçlardan da yararlanabilirsiniz. track içindeki argümanlar DistanceCalculation Çözüm.

Tartışma Tip Varsayılan Açıklama
tracker str 'botsort.yaml' Kullanılacak izleme algoritmasını belirtir, örn, bytetrack.yaml veya botsort.yaml.
conf float 0.3 Algılamalar için güven eşiğini ayarlar; düşük değerler daha fazla nesnenin izlenmesine izin verir ancak yanlış pozitifler içerebilir.
iou float 0.5 Çakışan algılamaları filtrelemek için Birlik üzerinde Kesişim (IoU) eşiğini ayarlar.
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.
verbose bool True İzleme sonuçlarının görüntülenmesini kontrol ederek 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 CPU, belirli bir GPU veya model yürütme için diğer hesaplama cihazları arasında seçim yapmasına olanak tanır.

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

Tartışma Tip Varsayılan Açıklama
show bool False Eğer True, 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 None or int 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.

Uygulama Detayları

Bu DistanceCalculation sınıfı, video kareleri boyunca nesneleri izleyerek ve seçilen sınırlayıcı kutuların 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 merkezlerini (merkez noktalarını) çıkarır
  2. Bu merkezler arasındaki Öklid mesafesini piksel cinsinden hesaplar
  3. Çerçeve üzerindeki mesafeyi nesneler arasında bir bağlantı çizgisi ile görüntüler

Uygulama, aşağıdakileri kullanır mouse_event_for_distance yöntemi, fare etkileşimlerini işlemek için kullanıcıların nesneleri seçmesine ve gerektiğinde seçimleri temizlemesine olanak tanır. Bu yöntem process yöntemi, kare kare işleme, nesneleri izleme ve mesafeleri hesaplama işlemlerini gerçekleştirir.

Uygulamalar

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

  • Perakende Analitiği: Müşterilerin ürünlere yakınlığını ölçün ve mağaza düzeninin etkinliğini analiz edin
  • Endüstriyel Güvenlik: Çalışanlar ve makineler arasındaki güvenli mesafeleri izleyin
  • Trafik Yönetimi: Araç aralıklarını analiz edin ve arka arkaya geçişleri 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 hareketlerini izleyin
  • Robotik: Robotların engellerden ve insanlardan uygun mesafeleri korumasını sağlayın

SSS

Ultralytics YOLO11 adresini kullanarak nesneler arasındaki mesafeleri nasıl hesaplayabilirim?

Nesneler arasındaki mesafeleri hesaplamak için Ultralytics YOLO11'de, algılanan nesnelerin sınırlayıcı kutu merkezlerini belirlemeniz gerekir. Bu işlem, nesnelerin sınırlayıcı kutu DistanceCalculation sınıfından Ultralytics' solutions modülünü ve mesafeleri hesaplamak için modelin izleme çıktılarını kullanmak.

Mesafe hesaplamasını Ultralytics YOLO11 ile kullanmanın avantajları nelerdir?

Mesafe hesaplamasını Ultralytics YOLO11 ile kullanmak çeşitli avantajlar sunar:

  • Yerelleştirme Hassasiyeti: Nesneler için doğru uzamsal konumlandırma sağlar.
  • Boyut Tahmini: Fiziksel boyutların tahmin edilmesine yardımcı olarak bağlamın daha iyi anlaşılmasına katkıda bulunur.
  • Sahne Anlama: 3D sahne kavrayışını geliştirerek otonom sürüş ve gözetleme gibi uygulamalarda gelişmiş karar verme sürecine yardımcı olur.
  • Gerçek Zamanlı İşleme: Hesaplamaları anında gerçekleştirerek canlı video analizi için uygun hale getirir.
  • Entegrasyon Yetenekleri: Nesne izleme ve hız tahmini gibi diğer YOLO11 çözümleriyle sorunsuz çalışır.

Ultralytics YOLO11 ile gerçek zamanlı video akışlarında mesafe hesaplaması yapabilir miyim?

Evet, Ultralytics YOLO11 ile gerçek zamanlı video akışlarında mesafe hesaplaması yapabilirsiniz. İşlem, aşağıdakileri kullanarak video karelerini yakalamayı içerir OpenCV, koşmak YOLO11 nesne algılamave kullanarak DistanceCalculation sınıfı, birbirini izleyen karelerdeki nesneler arasındaki mesafeleri hesaplamak için kullanılır. Ayrıntılı bir uygulama için bkz. video akışı örneği.

Ultralytics YOLO11 adresini kullanarak mesafe hesaplaması sırasında çizilen noktaları nasıl silebilirim?

Ultralytics YOLO11 ile mesafe hesaplaması sırasında çizilen noktaları silmek için farenin sağ tuşunu kullanabilirsiniz. Bu işlem çizdiğiniz tüm noktaları silecektir. Daha fazla ayrıntı için mesafe hesaplama örneğinin altındaki not bölümüne bakın.

Ultralytics YOLO11 adresinde DistanceCalculation sınıfını başlatmak için temel argümanlar nelerdir?

Başlatmak için temel argümanlar DistanceCalculation sınıfına Ultralytics YOLO11 adresinden ulaşabilirsiniz:

  • model: YOLO11 model dosyasının yolu.
  • tracker: Kullanılacak izleme algoritması (varsayılan 'botsort.yaml').
  • conf: Tespitler için güven eşiği.
  • show: Çıktıyı görüntülemek için bayrak.

Kapsamlı bir liste ve varsayılan değerler için DistanceCalculation argümanlarına bakın.

📅1 yıl önce oluşturuldu ✏️ 6 gün önce güncellendi

Yorumlar