Vai al contenuto

Monitoraggio degli allenamenti con Ultralytics YOLO11

Apri il monitoraggio degli allenamenti in Colab

Monitorare gli allenamenti tramite la stima della posa con Ultralytics YOLO11 migliora la valutazione dell'esercizio tracciando accuratamente i punti di riferimento e le articolazioni chiave del corpo in tempo reale. Questa tecnologia fornisce un feedback immediato sulla forma dell'esercizio, tiene traccia delle routine di allenamento e misura le metriche di performance, ottimizzando le sessioni di allenamento sia per gli utenti che per gli allenatori.



Guarda: Come monitorare gli esercizi di allenamento con Ultralytics YOLO | Squat, leg extension, push-up e altro

Vantaggi del Monitoraggio degli Allenamenti

  • Prestazioni Ottimizzate: Adattamento degli allenamenti in base ai dati di monitoraggio per risultati migliori.
  • Raggiungimento degli obiettivi: Monitora e adatta gli obiettivi di fitness per progressi misurabili.
  • Personalizzazione: Piani di allenamento personalizzati basati sui dati individuali per una maggiore efficacia.
  • Consapevolezza della salute: Rilevamento precoce di modelli che indicano problemi di salute o sovrallenamento.
  • Decisioni Informate: Decisioni basate sui dati per adeguare le routine e fissare obiettivi realistici.

Applicazioni nel mondo reale

Monitoraggio degli allenamentiMonitoraggio degli allenamenti
Conteggio di flessioniConteggio di trazioni alla sbarra
Conteggio di flessioniConteggio di trazioni alla sbarra

Monitoraggio degli allenamenti utilizzando Ultralytics YOLO

# Run a workout example
yolo solutions workout show=True

# Pass a source video
yolo solutions workout source="path/to/video.mp4"

# Use keypoints for pushups
yolo solutions workout kpts="[6, 8, 10]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
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_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init AIGym
gym = solutions.AIGym(
    show=True,  # display the frame
    kpts=[6, 8, 10],  # keypoints for monitoring specific exercise, by default it's for pushup
    model="yolo11n-pose.pt",  # path to the YOLO11 pose estimation model file
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = gym(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

Mappa dei KeyPoints (Punti chiave)

Ordine dei keyPoints (Punti chiave) Ultralytics YOLO11 Pose

AIGym Argomenti

Ecco una tabella con i AIGym argomenti:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso del file del modelloYOLO Ultralytics .
up_anglefloat145.0Soglia angolare per la posa 'alta'.
down_anglefloat90.0Soglia angolare per la posa 'bassa'.
kptslist[int, int, int]'[6, 8, 10]'Elenco dei keypoint utilizzati per monitorare gli allenamenti. Questi keypoint corrispondono alle articolazioni o parti del corpo, come spalle, gomiti e polsi, per esercizi come flessioni, trazioni, squat, allenamenti per gli addominali.

Il AIGym solution supporta anche una serie di parametri di object tracking:

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracking da utilizzare, ad esempio: bytetrack.yaml oppure botsort.yaml.
conffloat0.3Imposta la soglia di confidenza per i rilevamenti; valori inferiori consentono di tracciare più oggetti, ma potrebbero includere falsi positivi.
ioufloat0.5Imposta la soglia Intersection over UnionIoU) per il filtraggio dei rilevamenti sovrapposti.
classeslistNoneFiltra i risultati per indice di classe. Per esempio, classes=[0, 2, 3] traccia solo le classi specificate.
verboseboolTrueControlla la visualizzazione dei risultati del tracking, fornendo un output visivo degli oggetti tracciati.
devicestrNoneSpecifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0 oppure 0). Consente agli utenti di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, è possibile applicare le seguenti impostazioni di visualizzazione:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe True, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
line_widthNone or intNoneSpecifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore della linea viene regolato automaticamente in base alle dimensioni dell'immagine, fornendo una personalizzazione visiva per una maggiore chiarezza.
show_confboolTrueVisualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica sulla certezza del modello per ogni rilevamento.
show_labelsboolTrueMostra le etichette per ogni rilevamento nell'output visivo, fornendo una comprensione immediata degli oggetti rilevati.

FAQ

Come posso monitorare i miei allenamenti utilizzando Ultralytics YOLO11?

Per monitorare gli allenamenti con Ultralytics YOLO11, è possibile utilizzare le funzionalità di stima della posa per track e analizzare i principali punti di riferimento del corpo e le articolazioni in tempo reale. In questo modo è possibile ricevere un feedback immediato sulla forma dell'esercizio, contare le ripetizioni e misurare le metriche di prestazione. Si può iniziare utilizzando il codice di esempio fornito per le flessioni, le trazioni o gli allenamenti per gli addominali, come illustrato:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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 = solutions.AIGym(
    line_width=2,
    show=True,
    kpts=[6, 8, 10],
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break
    results = gym(im0)

cv2.destroyAllWindows()

Per un'ulteriore personalizzazione e impostazioni, puoi fare riferimento alla sezione AIGym nella documentazione.

Quali sono i vantaggi dell'utilizzo di Ultralytics YOLO11 per il monitoraggio dell'allenamento?

L'utilizzo di Ultralytics YOLO11 per il monitoraggio dell'allenamento offre diversi vantaggi chiave:

  • Prestazioni Ottimizzate: Adattando gli allenamenti in base ai dati di monitoraggio, puoi ottenere risultati migliori.
  • Raggiungimento degli obiettivi: track e regola facilmente gli obiettivi di fitness per ottenere progressi misurabili.
  • Personalizzazione: Ottieni piani di allenamento personalizzati in base ai tuoi dati individuali per un'efficacia ottimale.
  • Consapevolezza della salute: Rilevamento precoce di modelli che indicano potenziali problemi di salute o sovrallenamento.
  • Decisioni Informate: Prendi decisioni basate sui dati per adeguare le routine e fissare obiettivi realistici.

Puoi guardare una dimostrazione video su YouTube per vedere questi vantaggi in azione.

Quanto è preciso Ultralytics YOLO11 nel rilevare e tracciare gli esercizi?

Ultralytics YOLO11 è estremamente preciso nel rilevare e tracciare gli esercizi grazie alle sue capacità di stima della posa all'avanguardia. È in grado di track con precisione i principali punti di riferimento del corpo e le articolazioni, fornendo un feedback in tempo reale sulla forma dell'esercizio e sulle metriche di prestazione. I pesi preaddestrati e l'architettura robusta del modello garantiscono un'elevata precisione e affidabilità. Per gli esempi reali, consultate la sezione Applicazioni reali della documentazione, che mostra il conteggio delle flessioni e delle trazioni.

Posso utilizzare Ultralytics YOLO11 per routine di allenamento personalizzate?

Sì, Ultralytics YOLO11 può essere adattato per routine di allenamento personalizzate. Il AIGym la classe supporta diversi tipi di posa come pushup, pullup, e abworkout. È possibile specificare punti chiave e angoli per detect esercizi specifici. Ecco un esempio di impostazione:

from ultralytics import solutions

gym = solutions.AIGym(
    line_width=2,
    show=True,
    kpts=[6, 8, 10],  # For pushups - can be customized for other exercises
)

Per maggiori dettagli sull'impostazione degli argomenti, consultare la sezione Argomenti AIGym sezione. Questa flessibilità ti consente di monitorare vari esercizi e personalizzare le routine in base alle tue obiettivi di fitness.

Come posso salvare l'output del monitoraggio dell'allenamento utilizzando Ultralytics YOLO11?

Per salvare l'output del monitoraggio dell'allenamento, puoi modificare il codice per includere un video writer che salva i frame elaborati. Ecco un esempio:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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 = solutions.AIGym(
    line_width=2,
    show=True,
    kpts=[6, 8, 10],
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break
    results = gym(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Questa configurazione scrive il video monitorato in un file di output, consentendoti di rivedere le tue prestazioni di allenamento in un secondo momento o di condividerlo con gli allenatori per un feedback aggiuntivo.



📅C reato 1 anno fa ✏️ Aggiornato 5 mesi fa
glenn-jocherRizwanMunawarMatthewNoyceUltralyticsAssistantambitious-octopusIvorZhu331

Commenti