Ultralytics YOLO27:
Get Started

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
Ultralytics YOLO26 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.

Ultralytics YOLO ile Mesafe Hesaplama
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 kapat

DistanceCalculation() 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şkenTürVarsayılanAçıklama
modelstrNoneUltralytics YOLO model dosyasının yolu.
line_widthint2Çözümün çizdiği kutular, anahtar noktalar ve sayılar için çizgi kalınlığı.
verboseboolTrueÇö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şkenTürVarsayı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.25Algı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.
ioufloat0.7Çakışan algılamaları filtrelemek için Kesişim-Birleşim Oranı (IoU) eşiğini belirler.
classeslistNoneSonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler.
devicestrNoneÇı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.
imgszint or tuple640Hedef çı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_detint300Yoğ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ı.
quantizeint or strNoneÇı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şkenTürVarsayılanAçıklama
showboolFalseTrue 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_confboolTrueHer 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_labelsboolTrueGö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:

  1. Seçilen sınırlayıcı kutuların ağırlık merkezlerini (merkez noktalarını) çıkarır
  2. Bu ağırlık merkezleri arasındaki Öklid mesafesini piksel cinsinden hesaplar
  3. 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 solutions modülündeki DistanceCalculation sı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 DistanceCalculation sı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 DistanceCalculation sı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 olarak tracktrack.yaml kullanı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.

Yorumlar