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

वर्कआउट का उपयोग करके निगरानी Ultralytics YOLOv8 🚀

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

वर्कआउट मॉनिटरिंग के फायदे?

  • अनुकूलित प्रदर्शन: बेहतर परिणामों के लिए डेटा की निगरानी के आधार पर वर्कआउट की तैयारी।
  • लक्ष्य उपलब्धि: मापने योग्य प्रगति के लिए फिटनेस लक्ष्यों को ट्रैक और समायोजित करें।
  • वैयक्तिकरण: प्रभावशीलता के लिए व्यक्तिगत डेटा के आधार पर अनुकूलित कसरत योजनाएं।
  • स्वास्थ्य जागरूकता: स्वास्थ्य के मुद्दों या अति-प्रशिक्षण का संकेत देने वाले पैटर्न का शीघ्र पता लगाना।
  • सूचित निर्णय: दिनचर्या को समायोजित करने और यथार्थवादी लक्ष्य निर्धारित करने के लिए डेटा-संचालित निर्णय।

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

वर्कआउट की निगरानी वर्कआउट की निगरानी
पुशअप्स काउंटिंग पुलअप काउंटिंग
पुशअप्स काउंटिंग पुलअप काउंटिंग

वर्कआउट निगरानी उदाहरण

from ultralytics import YOLO
from ultralytics.solutions import ai_gym
import cv2

model = YOLO("yolov8n-pose.pt")
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))

gym_object = ai_gym.AIGym()  # init AI GYM module
gym_object.set_args(line_thickness=2,
                    view_img=True,
                    pose_type="pushup",
                    kpts_to_check=[6, 8, 10])

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
      print("Video frame is empty or video processing has been successfully completed.")
      break
    frame_count += 1
    results = model.predict(im0, verbose=False)
    im0 = gym_object.start_counting(im0, results, frame_count)

cv2.destroyAllWindows()
from ultralytics import YOLO
from ultralytics.solutions import ai_gym
import cv2

model = YOLO("yolov8n-pose.pt")
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 = cv2.VideoWriter("workouts.avi",
                                cv2.VideoWriter_fourcc(*'mp4v'),
                                fps,
                                (w, h))

gym_object = ai_gym.AIGym()  # init AI GYM module
gym_object.set_args(line_thickness=2,
                    view_img=True,
                    pose_type="pushup",
                    kpts_to_check=[6, 8, 10])

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
      print("Video frame is empty or video processing has been successfully completed.")
      break
    frame_count += 1
    results = model.predict(im0, verbose=False)
    im0 = gym_object.start_counting(im0, results, frame_count)
    video_writer.write(im0)

cv2.destroyAllWindows()
video_writer.release()
जीविका

"पुशअप", "पुलअप" और "एब्सवर्क" समर्थित

कीपॉइंट्स मैप

कीपॉइंट्स ऑर्डर Ultralytics YOLOv8 भंगिमा

तर्क set_args

नाम प्रकार चूक विवरण: __________
kpts_to_check list None विशिष्ट कसरत की गिनती के लिए तीन कीपॉइंट इंडेक्स की सूची, उसके बाद कीपॉइंट मैप
view_img bool False फ़्रेम को गणना के साथ प्रदर्शित करें
line_thickness int 2 गिनती मूल्य की मोटाई बढ़ाएँ
pose_type str pushup पोज जिसे मॉनिटर करने की जरूरत है, pullup और abworkout भी समर्थन किया
pose_up_angle int 145 पोज अप एंगल वैल्यू
pose_down_angle int 90 पोज डाउन एंगल वैल्यू

तर्क model.predict

नाम प्रकार चूक विवरण: __________
source str 'ultralytics/assets' छवियों या वीडियो के लिए स्रोत निर्देशिका
conf float 0.25 पता लगाने के लिए ऑब्जेक्ट कॉन्फिडेंस थ्रेशोल्ड
iou float 0.7 एनएमएस के लिए संघ (आईओयू) सीमा पर चौराहा
imgsz int or tuple 640 स्केलर या (एच, डब्ल्यू) सूची के रूप में छवि का आकार, यानी (640, 480)
half bool False आधी परिशुद्धता (FP16) का उपयोग करें
device None or str None चालू चलाने के लिए डिवाइस, यानी क्यूडा डिवाइस = 0/1/2/3 या डिवाइस = सीपीयू
max_det int 300 प्रति छवि पता लगाने की अधिकतम संख्या
vid_stride bool False वीडियो फ्रेम-दर स्ट्राइड
stream_buffer bool False सभी स्ट्रीमिंग फ़्रेम (सही) को बफ़र करें या नवीनतम फ़्रेम (गलत) लौटाएं
visualize bool False मॉडल सुविधाओं की कल्पना करें
augment bool False पूर्वानुमान स्रोतों पर छवि वृद्धि लागू करें
agnostic_nms bool False वर्ग-अज्ञेयवादी एनएमएस
classes list[int] None कक्षा द्वारा फ़िल्टर परिणाम, यानी कक्षाएं = 0, या कक्षाएं = [0,2,3]
retina_masks bool False उच्च-रिज़ॉल्यूशन सेगमेंटेशन मास्क का उपयोग करें
embed list[int] None दी गई परतों से सुविधा वैक्टर/एम्बेडिंग लौटाएं


2023-12-02 बनाया गया, अपडेट किया गया 2024-03-03
लेखक: ग्लेन-जोचर (5), chr043416@gmail.com (2), रिज़वानमुनव्वर (1)

टिप्पणियाँ