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 |
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)
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ığı. |
spdl_dist_thresh |
int |
10 |
Hız hesaplaması için mesafe eşiği. |
Argümanlar model.track
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
source |
str |
None |
Specifies the source directory for images or videos. Supports file paths and URLs. |
persist |
bool |
False |
Enables persistent tracking of objects between frames, maintaining IDs across video sequences. |
tracker |
str |
botsort.yaml |
Specifies the tracking algorithm to use, e.g., bytetrack.yaml veya botsort.yaml . |
conf |
float |
0.3 |
Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou |
float |
0.5 |
Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes |
list |
None |
Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose |
bool |
True |
Controls the display of tracking results, providing a visual output of tracked objects. |
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:
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.