İçeriğe geç

Ultralytics YOLOv8 🚀 Kullanarak Hız Tahmini

Hız Tahmini Nedir?

Hız tahmini, genellikle bilgisayarla görme uygulamalarında kullanılan, belirli bir bağlam içinde bir nesnenin hareket oranını hesaplama işlemidir. Kullanma Ultralytics YOLOv8 Artık trafik ve gözetleme gibi görevler için çok önemli olan mesafe ve zaman verilerinin yanı sıra nesne takibini kullanarak nesnenin hızını hesaplayabilirsiniz. Hız tahmininin doğruluğu, çeşitli uygulamaların verimliliğini ve güvenilirliğini doğrudan etkileyerek akıllı sistemlerin ve gerçek zamanlı karar verme süreçlerinin ilerlemesinde kilit bir bileşen haline getirir.



İzle: Kullanarak Hız Tahmini Ultralytics YOLOv8

Hız Tahmininin Avantajları?

  • Verimli Trafik Kontrolü: Doğru hız tahmini, trafik akışını yönetmeye, güvenliği artırmaya ve karayollarındaki tıkanıklığı azaltmaya yardımcı olur.
  • Hassas Otonom Navigasyon: Kendi kendine giden arabalar gibi otonom sistemlerde, güvenilir hız tahmini güvenli ve doğru araç navigasyonu sağlar.
  • Geliştirilmiş Gözetim Güvenliği: Gözetim analitiğindeki hız tahmini, olağandışı davranışların veya potansiyel tehditlerin belirlenmesine yardımcı olarak güvenlik önlemlerinin etkinliğini artırır.

Gerçek Dünya Uygulamaları

Ulaşım Ulaşım
Yol Üzerinde Hız Tahmini Ultralytics YOLOv8 Köprü Üzerinde Hız Tahmini Ultralytics YOLOv8
Yol Üzerinde Hız Tahmini Ultralytics YOLOv8 Köprü Üzerinde Hız Tahmini Ultralytics YOLOv8

YOLOv8 kullanarak Hız Tahmini Örnek

from ultralytics import YOLO
from ultralytics.solutions import speed_estimation
import cv2

model = YOLO("yolov8n.pt")
names = model.model.names

cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
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
video_writer = cv2.VideoWriter("speed_estimation.avi",
                               cv2.VideoWriter_fourcc(*'mp4v'),
                               fps,
                               (w, h))

line_pts = [(0, 360), (1280, 360)]

# Init speed-estimation obj
speed_obj = speed_estimation.SpeedEstimator()
speed_obj.set_args(reg_pts=line_pts,
                   names=names,
                   view_img=True)

while cap.isOpened():

    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    tracks = model.track(im0, persist=True, show=False)

    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
Hız Tahminidir

Hız bir tahmin olacaktır ve tamamen doğru olmayabilir. Ayrıca, tahmin GPU hızına bağlı olarak değişebilir.

İsteğe Bağlı Argümanlar set_args

İsim Tip Varsayılan Açıklama
reg_pts list [(20, 400), (1260, 400)] Bölge Alanını tanımlayan noktalar
names dict None Sınıf adları
view_img bool False Çerçeveleri sayımlarla görüntüleme
line_thickness int 2 Sınırlayıcı kutu kalınlığını artırın
region_thickness int 5 Nesne karşı bölgesi veya çizgi için kalınlık
spdl_dist_thresh int 10 Hız kontrol hattı için Öklid Mesafesi eşiği

Argümanlar model.track

İsim Tip Varsayılan Açıklama
source im0 None resimler veya videolar için kaynak dizin
persist bool False kareler arasında kalıcı izler
tracker str botsort.yaml İzleme yöntemi 'bytetrack' veya 'botsort'
conf float 0.3 Güven Eşiği
iou float 0.5 IOU Eşiği
classes list None sonuçları sınıfa göre filtreleyin, yani classes=0 veya classes=[0,2,3]
verbose bool True Nesne izleme sonuçlarını görüntüleme


Oluşturuldu 2024-01-05, Güncellendi 2024-05-08
Yazarlar: Burhan-Q (1), RizwanMunawar (2), glenn-jocher (2), AyushExel (1)

Yorumlar