コンテンツへスキップ

ワークアウト モニタリングUltralytics YOLO11

オープンワークアウト・モニター・イン・コラボ

ポーズ推定によるトレーニングのモニタリング Ultralytics YOLO11は、身体の主要なランドマークや関節をリアルタイムで正確に追跡することで、エクササイズの評価を強化します。この技術により、エクササイズフォームの即時フィードバック、ワークアウトルーティンの追跡、パフォーマンスメトリクスの測定が可能になり、ユーザーとトレーナーのトレーニングセッションを最適化します。



見るんだ: Ultralytics YOLO11 |腕立て伏せ、懸垂、アブ・ワークアウトを使ったワークアウト・モニタリング

ワークアウト・モニタリングの利点

  • パフォーマンスを最適化:モニタリングデータに基づいてワークアウトを調整し、より良い結果を得る。
  • 目標達成:測定可能な進捗のためにフィットネス目標を追跡し、調整する。
  • パーソナライゼーション:個人のデータに基づいてカスタマイズされたワークアウトプランで効果を高める。
  • 健康への気づき:健康問題やオーバートレーニングを示すパターンを早期に発見する。
  • 情報に基づいた決断:ルーチンを調整し、現実的な目標を設定するためのデータに基づいた決定。

実世界での応用

ワークアウト監視 ワークアウト監視
腕立て伏せカウント プルアップス・カウント
腕立て伏せカウント プルアップス・カウント

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

キーポイント・マップ

keyPoints OrderUltralytics YOLO11  ポーズ

AIGym 議論

以下はその表である。 AIGym という議論がある:

議論 タイプ デフォルト 説明
model str None Ultralytics YOLO モデルファイルへのパス。
up_angle float 145.0 アップ」ポーズの角度基準値。
down_angle float 90.0 ダウン」ポーズの角度基準値。
kpts list[int, int, int] [6, 8, 10] ワークアウトのモニタリングに使用されるキーポイントのリスト。これらのキーポイントは、腕立て伏せ、懸垂、スクワット、腹筋運動などのエクササイズで、肩、肘、手首などの体の関節や部位に対応しています。

について AIGym ソリューションは、さまざまなオブジェクト・トラッキング・パラメーターもサポートしている:

議論 タイプ デフォルト 説明
tracker str 'botsort.yaml' 使用するトラッキングアルゴリズムを指定する、 bytetrack.yaml または botsort.yaml.
conf float 0.3 検出の信頼しきい値を設定します。低い値ではより多くのオブジェクトを追跡できますが、誤検出を含む可能性があります。
iou float 0.5 重複検出をフィルタリングするためのIoU(Intersection over Union)しきい値を設定します。
classes list None クラス・インデックスによって結果をフィルタリングする。例えば classes=[0, 2, 3] は指定されたクラスのみを追跡する。
verbose bool True トラッキング結果の表示をコントロールし、トラッキングされたオブジェクトのビジュアル出力を提供します。
device str None 推論を行うデバイスを指定する(例. cpu, cuda:0 または 0).CPU 、特定のGPU 、またはモデル実行用の他のコンピュート・デバイスを選択することができます。

さらに、以下の視覚化設定を適用することができます:

議論 タイプ デフォルト 説明
show bool False もし True注釈付きの画像やビデオをウィンドウに表示します。開発中やテスト中の即時の視覚的フィードバックに便利です。
line_width None or int None バウンディングボックスの線幅を指定します。もし None線幅は画像サイズに応じて自動的に調整されます。視覚的にわかりやすくカスタマイズできます。

よくあるご質問

Ultralytics YOLO11 を使ってワークアウトをモニターするには?

Ultralytics YOLO11ワークアウトをモニターするには、ポーズ推定機能を利用して、主要な体のランドマークや関節をリアルタイムで追跡・分析することができます。これにより、エクササイズフォームに関するフィードバックを即座に受け取り、反復回数をカウントし、パフォーマンス指標を測定することができます。提供されている腕立て伏せ、懸垂、または腹筋トレーニングのサンプルコードを、図のように使用することから始めることができます:

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()

さらなるカスタマイズと設定については、ドキュメントのAIGymセクションを参照してください。

Ultralytics YOLO11 をワークアウトのモニタリングに使うメリットは何ですか?

ワークアウトのモニタリングにUltralytics YOLO11 を使用すると、いくつかの重要な利点がある:

  • パフォーマンスの最適化:モニタリングデータに基づいてワークアウトを調整することで、より良い結果を得ることができます。
  • 目標達成:フィットネス目標を簡単に追跡・調整し、進捗を測定できます。
  • パーソナライゼーション:最適な効果を得るために、個人のデータに基づいてカスタマイズされたワークアウトプランを入手できます。
  • 健康への気づき:潜在的な健康問題やオーバートレーニングを示すパターンを早期に発見する。
  • 情報に基づいた決断:ルーチンを調整し、現実的な目標を設定するために、データに基づいた決定を下す。

YouTubeのデモンストレーションビデオで、これらの利点を実際に見ることができる。

Ultralytics YOLO11 、どの程度正確にエクササイズを検出、追跡できるのか?

Ultralytics YOLO11 11は、その最先端のポーズ推定機能により、エクササイズを高精度に検出・追跡します。主要な身体のランドマークや関節を正確に追跡し、エクササイズのフォームやパフォーマンス指標をリアルタイムでフィードバックします。このモデルの事前学習された重みとロバストアーキテクチャは、高い精度と信頼性を保証します。実際の例としては、腕立て伏せと懸垂のカウントを紹介したドキュメントの実際のアプリケーションセクションをご覧ください。

Ultralytics YOLO11 をカスタム・ワークアウト・ルーティンに使用できますか?

はい、Ultralytics YOLO11 、カスタム・ワークアウト・ルーティンに適応させることができます。その AIGym クラスは、次のようなさまざまなポーズをサポートしています。 pushup, pullupそして abworkout.特定のエクササイズを検出するために、キーポイントや角度を指定することができます。以下に設定例を示します:

from ultralytics import solutions

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

引数の設定の詳細については 議論 AIGym セクションをご覧ください。この柔軟性により、さまざまなエクササイズをモニターし、あなたの目的に応じたルーチンをカスタマイズすることができます。 フィットネス・ゴール.

Ultralytics YOLO11 を使ってワークアウトのモニタリング出力を保存するにはどうすればいいですか?

ワークアウトのモニタリング出力を保存するには、処理されたフレームを保存するビデオライターを含むようにコードを修正します。以下はその例です:

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()

この設定により、モニターしたビデオを出力ファイルに書き出し、後でワークアウトのパフォーマンスを確認したり、トレーナーと共有してフィードバックを追加したりすることができます。

📅作成:1年前 ✏️更新 5日前

コメント