İç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

Blogumuza Göz Atın

Hız tahmini hakkında daha derin bilgiler için blog yazımıza göz atın: Ultralytics YOLOv8 for Speed Estimation in Computer Vision Projects

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

import cv2

from ultralytics import YOLO, solutions

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 = solutions.SpeedEstimator(
    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.

Argümanlar SpeedEstimator

İsim Tip Varsayılan Açıklama
names dict None Sınıf adları sözlüğü.
reg_pts list [(20, 400), (1260, 400)] Hız tahmini için bölge noktalarının listesi.
view_img bool False Görüntünün ek açıklamalarla görüntülenip görüntülenmeyeceği.
line_thickness int 2 Kutuları ve izleri çizmek için çizgilerin kalınlığı.
region_thickness int 5 Bölge çizgilerinin kalınlığı.
spdl_dist_thresh int 10 Hız hesaplaması için mesafe 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

SSS

Ultralytics YOLOv8 adresini kullanarak nesne hızını nasıl tahmin edebilirim?

Ultralytics YOLOv8 ile nesne hızını tahmin etmek, nesne algılama ve izleme tekniklerini birleştirmeyi içerir. Öncelikle, YOLOv8 modelini kullanarak her karedeki nesneleri tespit etmeniz gerekir. Ardından, zaman içindeki hareketlerini hesaplamak için bu nesneleri kareler boyunca izleyin. Son olarak, hızını tahmin etmek için nesnenin kareler arasında kat ettiği mesafeyi ve kare hızını kullanın.

Örnek:

import cv2

from ultralytics import YOLO, solutions

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

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

# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
    reg_pts=[(0, 360), (1280, 360)],
    names=names,
    view_img=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        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()

Daha fazla ayrıntı için resmi blog gönderimize bakın.

Trafik yönetiminde hız tahmini için Ultralytics YOLOv8 adresini kullanmanın faydaları nelerdir?

Hız tahmini için Ultralytics YOLOv8 adresinin kullanılması trafik yönetiminde önemli avantajlar sunmaktadır:

  • Gelişmiş Güvenlik: Aşırı hızı tespit etmek ve yol güvenliğini artırmak için araç hızlarını doğru bir şekilde tahmin edin.
  • Gerçek Zamanlı İzleme: Trafik akışını ve sıkışıklığını etkin bir şekilde izlemek için YOLOv8'un gerçek zamanlı nesne algılama özelliğinden yararlanın.
  • Ölçeklenebilirlik: Modeli uç cihazlardan sunuculara kadar çeşitli donanım kurulumlarına dağıtarak büyük ölçekli uygulamalar için esnek ve ölçeklenebilir çözümler sağlar.

Daha fazla uygulama için hız tahmininin avantajları bölümüne bakın.

YOLOv8 , TensorFlow veya PyTorch gibi diğer yapay zeka çerçeveleri ile entegre edilebilir mi?

Evet, YOLOv8 , TensorFlow ve PyTorch gibi diğer AI çerçeveleriyle entegre edilebilir. Ultralytics , YOLOv8 modellerini ONNX, TensorRT ve CoreML gibi çeşitli formatlara aktarma desteği sağlayarak diğer ML çerçeveleriyle sorunsuz birlikte çalışabilirlik sağlar.

Bir YOLOv8 modelini ONNX formatına aktarmak için:

yolo export --weights yolov8n.pt --include onnx

Dışa aktarma kılavuzumuzda modelleri dışa aktarma hakkında daha fazla bilgi edinin.

Ultralytics YOLOv8 adresini kullanarak hız tahmini ne kadar doğrudur?

Ultralytics YOLOv8 adresini kullanarak yapılan hız tahmininin doğruluğu, nesne takibinin kalitesi, videonun çözünürlüğü ve kare hızı ve çevresel değişkenler gibi çeşitli faktörlere bağlıdır. Hız tahmincisi güvenilir tahminler sağlarken, kare işleme hızı ve nesne tıkanıklığındaki farklılıklar nedeniyle %100 doğru olmayabilir.

Not: Her zaman hata payını göz önünde bulundurun ve mümkün olduğunda tahminleri yer gerçeği verileriyle doğrulayın.

Daha fazla doğruluk geliştirme ipucu için Argümanlar SpeedEstimator bölüm.

Neden TensorFlow Object Detection API gibi diğer nesne algılama modelleri yerine Ultralytics YOLOv8 adresini seçmelisiniz?

Ultralytics YOLOv8 TensorFlow Object Detection API gibi diğer nesne algılama modellerine göre çeşitli avantajlar sunar:

  • Gerçek Zamanlı Performans: YOLOv8 gerçek zamanlı algılama için optimize edilmiştir, yüksek hız ve doğruluk sağlar.
  • Kullanım Kolaylığı: Kullanıcı dostu bir arayüzle tasarlanan YOLOv8 , model eğitimini ve dağıtımını basitleştirir.
  • Çok yönlülük: Nesne algılama, segmentasyon ve poz tahmini dahil olmak üzere birden fazla görevi destekler.
  • Topluluk ve Destek: YOLOv8 , geliştiricilerin ihtiyaç duydukları kaynaklara sahip olmalarını sağlayan aktif bir topluluk ve kapsamlı belgelerle desteklenmektedir.

YOLOv8'un faydaları hakkında daha fazla bilgi için ayrıntılı model sayfamızı inceleyin.



Oluşturma 2024-01-05, Güncelleme 2024-07-05
Yazarlar: glenn-jocher (7), IvorZhu331 (1), RizwanMunawar (2), Burhan-Q (1), AyushExel (1)

Yorumlar