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

दूरी गणना का उपयोग कर Ultralytics YOLOv8 🚀

दूरी की गणना क्या है?

दो वस्तुओं के बीच की खाई को मापने को एक निर्दिष्ट स्थान के भीतर दूरी गणना के रूप में जाना जाता है। के मामले में Ultralytics YOLOv8, बाउंडिंग बॉक्स सेंट्रोइड को उपयोगकर्ता द्वारा हाइलाइट किए गए बाउंडिंग बॉक्स के लिए दूरी की गणना करने के लिए नियोजित किया जाता है।



सतर्कता: दूरी गणना का उपयोग कर Ultralytics YOLOv8

दृश्यों

दूरी गणना का उपयोग कर Ultralytics YOLOv8
Ultralytics YOLOv8 दूरी की गणना

दूरी गणना के लाभ?

  • स्थानीयकरण परिशुद्धता: कंप्यूटर दृष्टि कार्यों में सटीक स्थानिक स्थिति को बढ़ाता है।
  • आकार अनुमान: बेहतर प्रासंगिक समझ के लिए भौतिक आकारों के अनुमान की अनुमति देता है।
  • दृश्य समझ: बेहतर निर्णय लेने के लिए पर्यावरण की 3D समझ में योगदान देता है।
दूरी की गणना
  • दूरी गणना के लिए बाएं माउस क्लिक के साथ किसी भी दो बाउंडिंग बॉक्स पर क्लिक करें

दूरी गणना का उपयोग कर YOLOv8 उदाहरण

from ultralytics import YOLO
from ultralytics.solutions import distance_calculation
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("distance_calculation.avi",
                               cv2.VideoWriter_fourcc(*'mp4v'),
                               fps,
                               (w, h))

# Init distance-calculation obj
dist_obj = distance_calculation.DistanceCalculation()
dist_obj.set_args(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 = dist_obj.start_process(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
नोट
  • माउस राइट क्लिक सभी खींचे गए बिंदुओं को हटा देगा
  • माउस लेफ्ट क्लिक का उपयोग अंक आकर्षित करने के लिए किया जा सकता है

वैकल्पिक तर्क set_args

नाम प्रकार चूक विवरण: __________
names dict None कक्षाओं के नाम
view_img bool False गिनती के साथ फ़्रेम प्रदर्शित करें
line_thickness int 2 बाउंडिंग बॉक्स की मोटाई बढ़ाएं
line_color RGB (255, 255, 0) दो बाउंडिंग बॉक्स पर सेंट्रोइड मैपिंग के लिए लाइन रंग
centroid_color RGB (255, 0, 255) प्रत्येक बाउंडिंग बॉक्स के लिए केन्द्रक रंग

तर्क 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-03-01
लेखक: chr043416@gmail.com (5), ग्लेन-जोचर (2), आयुषएक्सेल (1)

टिप्पणियाँ