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 |
---|
![]() |
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:
- Seçilen sınırlayıcı kutuların merkezlerini (merkez noktalarını) çıkarır
- Bu merkezler arasındaki Öklid mesafesini piksel cinsinden hesaplar
- Ç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.