सामग्री पर जाएं

गति अनुमान का उपयोग कर Ultralytics YOLOv8 🚀

स्पीड अनुमान क्या है?

गति अनुमान किसी दिए गए संदर्भ में किसी वस्तु की गति की दर की गणना करने की प्रक्रिया है, जिसे अक्सर कंप्यूटर दृष्टि अनुप्रयोगों में नियोजित किया जाता है। का उपयोग करके Ultralytics YOLOv8 अब आप दूरी और समय डेटा के साथ ऑब्जेक्ट ट्रैकिंग का उपयोग करके ऑब्जेक्ट की गति की गणना कर सकते हैं, जो ट्रैफ़िक और निगरानी जैसे कार्यों के लिए महत्वपूर्ण है। गति अनुमान की सटीकता सीधे विभिन्न अनुप्रयोगों की दक्षता और विश्वसनीयता को प्रभावित करती है, जिससे यह बुद्धिमान प्रणालियों और वास्तविक समय निर्णय लेने की प्रक्रियाओं की उन्नति में एक महत्वपूर्ण घटक बन जाता है।



सतर्कता: गति अनुमान का उपयोग कर Ultralytics YOLOv8

हमारे ब्लॉग की जाँच करें

गति अनुमान में गहरी अंतर्दृष्टि के लिए, हमारे ब्लॉग पोस्ट देखें: Ultralytics YOLOv8 कंप्यूटर विजन परियोजनाओं में गति अनुमान के लिए

गति अनुमान के लाभ?

  • कुशल यातायात नियंत्रण: सटीक गति अनुमान यातायात प्रवाह के प्रबंधन, सुरक्षा बढ़ाने और रोडवेज पर भीड़ को कम करने में सहायता करता है।
  • सटीक स्वायत्त नेविगेशन: स्व-ड्राइविंग कारों जैसी स्वायत्त प्रणालियों में, विश्वसनीय गति अनुमान सुरक्षित और सटीक वाहन नेविगेशन सुनिश्चित करता है।
  • बढ़ी हुई निगरानी सुरक्षा: निगरानी विश्लेषिकी में गति अनुमान असामान्य व्यवहार या संभावित खतरों की पहचान करने में मदद करता है, सुरक्षा उपायों की प्रभावशीलता में सुधार करता है।

वास्तविक दुनिया अनुप्रयोग

परिवहन परिवहन
सड़क का उपयोग करके गति अनुमान Ultralytics YOLOv8 का उपयोग कर पुल पर गति अनुमान Ultralytics YOLOv8
सड़क का उपयोग करके गति अनुमान Ultralytics YOLOv8 का उपयोग कर पुल पर गति अनुमान Ultralytics YOLOv8

गति अनुमान का उपयोग कर YOLOv8 उदाहरण

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()
गति अनुमान है

गति एक अनुमान होगा और पूरी तरह से सटीक नहीं हो सकता है। इसके अतिरिक्त, अनुमान GPU गति के आधार पर भिन्न हो सकता है।

तर्क SpeedEstimator

नाम प्रकार चूक या क़िस्‍म
names dict None वर्ग के नामों का शब्दकोश।
reg_pts list [(20, 400), (1260, 400)] गति अनुमान के लिए क्षेत्र बिंदुओं की सूची।
view_img bool False छवि को एनोटेशन के साथ प्रदर्शित करना है या नहीं.
line_thickness int 2 ड्राइंग बॉक्स और ट्रैक के लिए लाइनों की मोटाई।
region_thickness int 5 क्षेत्र रेखाओं की मोटाई।
spdl_dist_thresh int 10 गति गणना के लिए दूरी दहलीज।

तर्क model.track

नाम प्रकार चूक या क़िस्‍म
source im0 None छवियों या वीडियो के लिए स्रोत निर्देशिका
persist bool False फ़्रेम के बीच लगातार ट्रैक
tracker str botsort.yaml ट्रैकिंग विधि 'बाइटट्रैक' या 'बॉटसॉर्ट'
conf float 0.3 कॉन्फिडेंस थ्रेशोल्ड
iou float 0.5 IOU थ्रेसहोल्ड
classes list None कक्षा द्वारा फ़िल्टर परिणाम, यानी कक्षाएं = 0, या कक्षाएं = [0,2,3]
verbose bool True ऑब्जेक्ट ट्रैकिंग परिणाम प्रदर्शित करें


बनाया गया 2024-01-05, अपडेट किया गया 2024-05-25
लेखक: रिजवान मुनव्वर (2), ग्लेन-जोचर (4), बुरहान-क्यू (1), आयुषएक्सल (1)

टिप्पणियाँ