Ultralytics YOLO11 Kullanarak Mesafe Hesaplama
Mesafe Hesaplama (Distance Calculation) nedir?
İki nesne arasındaki boşluğu ölçmek, belirli bir alanda mesafe hesaplama olarak bilinir. Ultralytics YOLO11 durumunda, kullanıcı tarafından vurgulanan sınırlayıcı kutuların mesafesini hesaplamak için sınırlayıcı kutu centroidi kullanılır.
İzle: Ultralytics YOLO11 Kullanarak Mesafe Hesaplama
Görseller
Ultralytics YOLO11 Kullanarak Mesafe Hesaplama |
---|
![]() |
Mesafe Hesaplamanın Avantajları Nelerdir?
- 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ı tespit etmesini sağlar.
- Konumsal Analiz: İzlenen ortamdaki nesne ilişkilerinin ve etkileşimlerinin analizini kolaylaştırır.
Mesafe Hesaplama
- Mesafe hesabı için Sol Fare tıklaması ile herhangi iki sınırlayıcı kutuya tıklayın
- Sağ Fare Tıklaması çizilen tüm noktaları siler
- Sol Fare Tıklaması noktalar ç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 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="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 şunları içeren bir tablo: DistanceCalculation
argümanlar:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO Model Dosyasına Giden Yol. |
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.3 |
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.5 |
Ç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 |
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. |
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
YOLO11 ile mesafe hesaplamanı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ıklarını analiz edin ve yakın takibi 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 YOLO11 kullanarak nesneler arasındaki mesafeleri nasıl hesaplarım?
Şunu kullanarak nesneler arasındaki mesafeleri hesaplamak için Ultralytics YOLO11, 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 YOLO11 ile mesafe hesaplaması kullanmanın avantajları nelerdir?
Ultralytics YOLO11 ile mesafe hesaplaması kullanmak çeşitli avantajlar sunar:
- 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 takibi 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. Bu işlem, video kareleri yakalamayı içerir: OpenCV, YOLO11 ç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 YOLO11 kullanarak mesafe hesaplaması sırasında çizilen noktaları nasıl silerim?
Ultralytics YOLO11 ile mesafe hesaplaması sırasında çizilen noktaları silmek için sağ fare tuşunu 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 YOLO11'de DistanceCalculation sınıfını başlatmak için temel argümanlar nelerdir?
Başlatmak için temel argümanlar DistanceCalculation
Ultralytics YOLO11'deki sınıf şunları içerir:
model
: YOLO11 model dosyasının yolu.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.