İçeriğe geç

Antrenman İzleme kullanarak Ultralytics YOLOv8

ile poz tahmini yoluyla antrenmanların izlenmesi Ultralytics YOLOv8 vücudun önemli noktalarını ve eklemleri gerçek zamanlı olarak doğru bir şekilde takip ederek egzersiz değerlendirmesini geliştirir. Bu teknoloji egzersiz formu hakkında anında geri bildirim sağlar, egzersiz rutinlerini izler ve performans ölçümlerini yaparak hem kullanıcılar hem de eğitmenler için egzersiz seanslarını optimize eder.



İzle: Ultralytics YOLOv8 | Şınav, Barfiks, Ab Egzersizleri Kullanılarak İzlenen Egzersizler

Egzersiz Takibinin Avantajları Nelerdir?

  • Optimize Edilmiş Performans: Daha iyi sonuçlar için izleme verilerine dayalı olarak antrenmanları uyarlama.
  • Hedef Başarısı: Ölçülebilir ilerleme için fitness hedeflerini takip edin ve ayarlayın.
  • Kişiselleştirme: Etkinlik için bireysel verilere dayalı özelleştirilmiş egzersiz planları.
  • Sağlık Farkındalığı: Sağlık sorunlarına veya aşırı antrenmana işaret eden kalıpların erken tespiti.
  • Bilgilendirilmiş Kararlar: Rutinleri ayarlamak ve gerçekçi hedefler belirlemek için veriye dayalı kararlar.

Gerçek Dünya Uygulamaları

Egzersiz İzleme Egzersiz İzleme
Şınav Sayma PullUps Sayma
Şınav Sayma PullUps Sayma

Antrenman İzleme Örneği

import cv2

from ultralytics import YOLO, solutions

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 = solutions.AIGym(
    line_thickness=2,
    view_img=True,
    pose_type="pushup",
    kpts_to_check=[6, 8, 10],
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    results = model.track(im0, verbose=False)  # Tracking recommended
    # results = model.predict(im0)  # Prediction also supported
    im0 = gym_object.start_counting(im0, results)

cv2.destroyAllWindows()
import cv2

from ultralytics import YOLO, solutions

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 = solutions.AIGym(
    line_thickness=2,
    view_img=True,
    pose_type="pushup",
    kpts_to_check=[6, 8, 10],
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    results = model.track(im0, verbose=False)  # Tracking recommended
    # results = model.predict(im0)  # Prediction also supported
    im0 = gym_object.start_counting(im0, results)
    video_writer.write(im0)

cv2.destroyAllWindows()
video_writer.release()
Destek

"pushup", "pullup" ve "abworkout" desteklenir

KeyPoints Haritası

keyPoints Sıra Ultralytics YOLOv8  Poz

Argümanlar AIGym

İsim Tip Varsayılan Açıklama
kpts_to_check list None Belirli bir antrenmanı saymak için üç anahtar nokta dizini listesi, ardından anahtar nokta Haritası
line_thickness int 2 Çizilen çizgilerin kalınlığı.
view_img bool False Görüntüyü görüntülemek için bayrak.
pose_up_angle float 145.0 'Yukarı' duruşu için açı eşiği.
pose_down_angle float 90.0 'Aşağı' pozu için açı eşiği.
pose_type str pullup Algılanacak poz türü ('pullup', pushup, abworkout, squat).

Argümanlar model.predict

İsim Tip Varsayılan Açıklama
source str 'ultralytics/assets' resimler veya videolar için kaynak dizin
conf float 0.25 algılama için nesne güven eşiği
iou float 0.7 NMS için birleşim üzerinde kesişim (IoU) eşiği
imgsz int or tuple 640 skaler veya (h, w) listesi olarak görüntü boyutu, yani (640, 480)
half bool False yarım hassasiyet (FP16) kullanın
device None or str None üzerinde çalışacak cihaz, yani cuda device=0/1/2/3 veya device=cpu
max_det int 300 görüntü başına maksimum algılama sayısı
vid_stride bool False video kare hızı adımı
stream_buffer bool False tüm akış karelerini arabelleğe alır (True) veya en son kareyi döndürür (False)
visualize bool False model özelliklerini görselleştirin
augment bool False tahmin kaynaklarına görüntü büyütme uygulayın
agnostic_nms bool False sınıf-agnostik NMS
classes list[int] None sonuçları sınıfa göre filtreleyin, yani classes=0 veya classes=[0,2,3]
retina_masks bool False yüksek çözünürlüklü segmentasyon maskeleri kullanın
embed list[int] None Verilen katmanlardan özellik vektörleri/gömme döndürür

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

Antrenmanlarımı Ultralytics YOLOv8 adresini kullanarak nasıl izleyebilirim?

Antrenmanlarınızı Ultralytics YOLOv8 adresini kullanarak izlemek için, vücudun önemli noktalarını ve eklemlerini gerçek zamanlı olarak izlemek ve analiz etmek üzere poz tahmini özelliklerinden yararlanabilirsiniz. Bu, egzersiz formunuz hakkında anında geri bildirim almanıza, tekrarları saymanıza ve performans metriklerini ölçmenize olanak tanır. Gösterildiği gibi şınav, barfiks veya ab egzersizleri için sağlanan örnek kodu kullanarak başlayabilirsiniz:

import cv2

from ultralytics import YOLO, solutions

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 = solutions.AIGym(
    line_thickness=2,
    view_img=True,
    pose_type="pushup",
    kpts_to_check=[6, 8, 10],
)

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

cv2.destroyAllWindows()

Daha fazla özelleştirme ve ayar için belgelerdeki AIGym bölümüne başvurabilirsiniz.

Antrenman takibi için Ultralytics YOLOv8 adresini kullanmanın faydaları nelerdir?

Antrenman takibi için Ultralytics YOLOv8 adresini kullanmak birkaç önemli fayda sağlar:

  • Optimize Edilmiş Performans: Antrenmanları izleme verilerine göre uyarlayarak daha iyi sonuçlar elde edebilirsiniz.
  • Hedefe Ulaşma: Ölçülebilir ilerleme için fitness hedeflerini kolayca takip edin ve ayarlayın.
  • Kişiselleştirme: Optimum etkinlik için kişisel verilerinize dayalı özelleştirilmiş egzersiz planları alın.
  • Sağlık Farkındalığı: Potansiyel sağlık sorunlarına veya aşırı antrenmana işaret eden kalıpların erken tespiti.
  • Bilgilendirilmiş Kararlar: Rutinleri ayarlamak ve gerçekçi hedefler belirlemek için veriye dayalı kararlar alın.

Bu faydaları uygulamalı olarak görmek için bir YouTube video gösterimini izleyebilirsiniz.

Ultralytics YOLOv8 tatbikatları tespit etme ve izleme konusunda ne kadar doğrudur?

Ultralytics YOLOv8 son teknoloji ürünü poz tahmin yetenekleri sayesinde egzersizleri tespit etme ve izleme konusunda son derece hassastır. Temel vücut işaretlerini ve eklemleri doğru bir şekilde izleyerek egzersiz formu ve performans ölçümleri hakkında gerçek zamanlı geri bildirim sağlayabilir. Modelin önceden eğitilmiş ağırlıkları ve sağlam mimarisi yüksek hassasiyet ve güvenilirlik sağlar. Gerçek dünyadan örnekler için dokümantasyondaki şınav ve barfiks sayımını gösteren gerçek dünya uygulamaları bölümüne göz atın.

Özel egzersiz rutinleri için Ultralytics YOLOv8 adresini kullanabilir miyim?

Evet, Ultralytics YOLOv8 özel egzersiz rutinleri için uyarlanabilir. Bu AIGym sınıfı "pushup", "pullup" ve "abworkout" gibi farklı poz türlerini destekler. Belirli egzersizleri tespit etmek için anahtar noktaları ve açıları belirleyebilirsiniz. İşte örnek bir kurulum:

from ultralytics import solutions

gym_object = solutions.AIGym(
    line_thickness=2,
    view_img=True,
    pose_type="squat",
    kpts_to_check=[6, 8, 10],
)

Argümanları ayarlama hakkında daha fazla bilgi için bkz. Argümanlar AIGym bölümü. Bu esneklik, çeşitli egzersizleri izlemenize ve rutinleri ihtiyaçlarınıza göre özelleştirmenize olanak tanır.

Egzersiz izleme çıktısını Ultralytics YOLOv8 adresini kullanarak nasıl kaydedebilirim?

Egzersiz izleme çıktısını kaydetmek için kodu, işlenen kareleri kaydeden bir video yazıcı içerecek şekilde değiştirebilirsiniz. İşte bir örnek:

import cv2

from ultralytics import YOLO, solutions

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 = solutions.AIGym(
    line_thickness=2,
    view_img=True,
    pose_type="pushup",
    kpts_to_check=[6, 8, 10],
)

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

cv2.destroyAllWindows()
video_writer.release()

Bu kurulum, izlenen videoyu bir çıktı dosyasına yazar. Daha fazla ayrıntı için Çıktıyı Kaydet ile İzleme Egzersizleri bölümüne bakın.



Oluşturuldu 2023-12-02, Güncellendi 2024-07-05
Yazarlar: glenn-jocher (12), ambitious-octopus (1), IvorZhu331 (1), RizwanMunawar (4)

Yorumlar