Vai al contenuto

Monitoraggio degli allenamenti con Ultralytics YOLO11

Monitoraggio degli allenamenti aperti in Colab

Il monitoraggio degli allenamenti attraverso la stima della posa con Ultralytics YOLO11 migliora la valutazione degli esercizi grazie al rilevamento accurato dei principali punti di riferimento del corpo e delle articolazioni in tempo reale. Questa tecnologia fornisce un feedback immediato sulla forma dell'esercizio, traccia le routine di allenamento e misura le metriche delle prestazioni, ottimizzando le sessioni di allenamento sia per gli utenti che per gli allenatori.



Guarda: Monitoraggio degli allenamenti con Ultralytics YOLO11 | Flessioni, trazioni, addominali

Vantaggi del monitoraggio degli allenamenti

  • Prestazioni ottimizzate: Adattamento degli allenamenti in base ai dati di monitoraggio per ottenere risultati migliori.
  • Raggiungimento degli obiettivi: Tracciare e modificare gli obiettivi di fitness per ottenere progressi misurabili.
  • Personalizzazione: Piani di allenamento personalizzati basati sui dati individuali per garantire l'efficacia.
  • Consapevolezza della salute: Individuazione precoce di modelli che indicano problemi di salute o di sovrallenamento.
  • Decisioni informate: Decisioni basate sui dati per adattare le routine e fissare obiettivi realistici.

Applicazioni nel mondo reale

Monitoraggio degli allenamenti Monitoraggio degli allenamenti
Conteggio delle flessioni Conteggio delle trazioni
Conteggio delle flessioni Conteggio delle trazioni

Monitoraggio degli allenamenti con 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 punti chiave

keyPoints Ordine Ultralytics YOLO11  Pose

AIGym Argomenti

Ecco una tabella con i dati AIGym argomenti:

Argomento Tipo Predefinito Descrizione
model str None Percorso del file del modelloYOLO Ultralytics .
up_angle float 145.0 Soglia di angolazione per la posa "up".
down_angle float 90.0 Soglia di angolazione per la posa "giù".
kpts list[int, int, int] [6, 8, 10] Elenco dei punti chiave utilizzati per monitorare gli allenamenti. Questi punti chiave corrispondono alle articolazioni o alle parti del corpo, come spalle, gomiti e polsi, per esercizi come flessioni, trazioni, squat e addominali.

Il AIGym La soluzione supporta anche una serie di parametri di tracciamento degli oggetti:

Argomento Tipo Predefinito Descrizione
tracker str 'botsort.yaml' Specifica l'algoritmo di tracciamento da utilizzare, ad es, bytetrack.yaml o botsort.yaml.
conf float 0.3 Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare un maggior numero di oggetti, ma possono includere falsi positivi.
iou float 0.5 Imposta la soglia Intersection over Union (IoU) per il filtraggio dei rilevamenti sovrapposti.
classes list None Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] tiene traccia solo delle classi specificate.
verbose bool True Controlla la visualizzazione dei risultati del tracciamento, fornendo un output visivo degli oggetti tracciati.
device str None Specifica il dispositivo per l'inferenza (ad es, cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, uno specifico GPU o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, è possibile applicare le seguenti impostazioni di visualizzazione:

Argomento Tipo Predefinito Descrizione
show bool False Se Truevisualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
line_width None or int None Specifica la larghezza della linea delle caselle di delimitazione. Se NoneLa larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Fornisce una personalizzazione visiva per la chiarezza.

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 tracciare 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 ulteriori personalizzazioni e impostazioni, è possibile consultare la sezione AIGym della 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, è possibile ottenere risultati migliori.
  • Raggiungimento degli obiettivi: Traccia e regola facilmente gli obiettivi di fitness per ottenere progressi misurabili.
  • Personalizzazione: Piani di allenamento personalizzati basati sui dati individuali per un'efficacia ottimale.
  • Consapevolezza della salute: Individuazione precoce di modelli che indicano potenziali problemi di salute o di sovrallenamento.
  • Decisioni informate: Prendere decisioni basate sui dati per adeguare le routine e fissare obiettivi realistici.

È possibile guardare un video dimostrativo 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 tracciare 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 le routine di allenamento personalizzate?

Sì, Ultralytics YOLO11 può essere adattato per creare 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 rilevare 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à consente di monitorare diversi esercizi e di personalizzare le routine in base alle proprie esigenze. obiettivi di fitness.

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

Per salvare l'output del monitoraggio dell'allenamento, è possibile modificare il codice per includere un video writer che salvi i fotogrammi 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 impostazione scrive il video monitorato in un file di output, consentendo di rivedere le prestazioni dell'allenamento in un secondo momento o di condividerle con gli allenatori per ottenere un ulteriore feedback.

📅C reato 1 anno fa ✏️ Aggiornato 6 giorni fa

Commenti