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