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 |
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)