Ultralytics YOLO26を使用したワークアウトモニタリング#
Ultralytics YOLO26によるポーズ推定を通じたワークアウトのモニタリングでは、身体の主要なランドマークと関節をリアルタイムで正確に追跡することで、エクササイズの評価を向上させます。このテクノロジーにより、エクササイズフォームへの即時フィードバック、ワークアウトルーティンの追跡、パフォーマンス指標の測定が可能になり、ユーザーとトレーナー双方のトレーニングセッションを最適化できます。
Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More
ワークアウトモニタリングの利点#
- パフォーマンスの最適化: モニタリングデータに基づいてワークアウトを調整し、より良い結果を得られます。
- 目標の達成: フィットネス目標を追跡および調整し、測定可能な進捗を確認できます。
- パーソナライゼーション: 個人データに基づいてワークアウトプランをカスタマイズし、効果を高められます。
- 健康への意識: 健康上の問題やオーバートレーニングを示すパターンを早期に検出できます。
- 情報に基づく意思決定: データに基づいてルーティンを調整し、現実的な目標を設定できます。
実際の用途#
| ワークアウトモニタリング | ワークアウトモニタリング |
|---|---|
![]() | ![]() |
| 腕立て伏せの回数カウント | 懸垂の回数カウント |
YOLO26でワークアウトをモニタリングする#
AIGymソリューションはポーズ推定を実行し、四肢がup_angleとdown_angleのしきい値の間を移動する際に、3つの主要なキーポイントによって形成される角度を測定して反復回数をカウントします。kptsで追跡するエクササイズのキーポイントを選択し、Python APIまたはCLIを使用して動画に対してソリューションを実行します。
# 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]"キーポイントマップ#

AIGymの引数#
以下にAIGymの引数を示します。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパスです。 |
up_angle | float | 145.0 | 「上」ポーズの角度しきい値です。 |
down_angle | int | 90 | 「下」ポーズの角度しきい値です。 |
kpts | list[int] | '[6, 8, 10]' | ワークアウトの監視に使用する3つのキーポイントインデックスのリストです。これらのキーポイントは、腕立て伏せ、懸垂、スクワット、腹筋運動などで使用する肩、肘、手首といった身体の関節または部位に対応します。 |
line_width | int | 2 | ソリューションが描画するボックス、キーポイント、カウントの線の太さです。 |
verbose | bool | True | 入力形状、クラス数、処理速度をフレームごとにログに記録する機能を有効にします。トラッキング処理自体は常にサイレントです。 |
AIGymソリューションは、さまざまなオブジェクトトラッキングパラメータにも対応しています。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 使用するトラッキングアルゴリズムを指定します。組み込みオプション:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 検出の信頼度しきい値を設定します。値を下げるとより多くのオブジェクトを追跡できますが、誤検出が含まれる可能性があります。 |
iou | float | 0.7 | 重複する検出結果をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。 |
classes | list | None | クラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]は指定されたクラスのみを追跡します。 |
device | str | None | 推論に使用するデバイスを指定します(例:cpu、cuda:0、0)。CPU、特定のGPU、その他の計算デバイスから、モデルの実行に使用するものを選択できます。 |
imgsz | int or tuple | 640 | 推論対象の画像サイズ:正方形の場合は整数、または (height, width) のペアです。形状はモデルのストライドに合わせて調整されます。 |
max_det | int | 300 | トラッキング前にフレームごとに保持される検出の最大数。高密度なシーンにおいてソリューションが処理するオブジェクトの数を制限します。 |
quantize | int or str | None | 推論精度:PyTorchおよびTorchScriptモデルの場合は 16 (FP16)または 32 /未設定(FP32);その他のフォーマットは、その成果物とランタイムが選択する精度で計算を行います。非推奨となった half フラグに置き換わるものです。 |
さらに、以下の可視化設定を適用できます。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | Trueの場合、注釈付きの画像または動画をウィンドウに表示します。開発やテスト中の即時の視覚的フィードバックに役立ちます。 |
show_conf | bool | True | 各検出のラベルの横に信頼度スコアを表示します。各検出に対するモデルの確信度を確認できます。 |
show_labels | bool | True | 可視化出力に各検出のラベルを表示します。検出されたオブジェクトをすぐに把握できます。 |
FAQ#
Ultralytics YOLO26を使用してワークアウトをモニタリングするには、ポーズ推定機能を活用して、身体の主要なランドマークと関節をリアルタイムで追跡および分析できます。これにより、エクササイズフォームへの即時フィードバックを受け取り、反復回数をカウントし、パフォーマンス指標を測定できます。まず、以下に示す腕立て伏せ、懸垂、腹筋運動のサンプルコードを使用できます。
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 YOLO26を使用すると、次のような主な利点があります。
- パフォーマンスの最適化: モニタリングデータに基づいてワークアウトを調整することで、より良い結果を達成できます。
- 目標の達成: フィットネス目標を簡単に追跡および調整し、測定可能な進捗を確認できます。
- パーソナライゼーション: 個人データに基づいてワークアウトプランをカスタマイズし、効果を最大化できます。
- 健康への意識: 潜在的な健康上の問題やオーバートレーニングを示すパターンを早期に検出できます。
- 情報に基づく意思決定: データに基づいてルーティンを調整し、現実的な目標を設定できます。
YouTubeの動画デモを見て、これらの利点がどのように実現されるかを確認できます。
Ultralytics YOLO26は、最先端のポーズ推定機能により、エクササイズの検出および追跡で非常に高い精度を実現します。身体の主要なランドマークと関節を正確に追跡し、エクササイズフォームとパフォーマンス指標に関するリアルタイムのフィードバックを提供できます。モデルの事前学習済み重みと堅牢なアーキテクチャにより、高い適合率と信頼性が確保されます。実際の例については、腕立て伏せと懸垂の回数カウントを紹介しているドキュメントの実環境でのアプリケーションセクションを確認してください。
はい、Ultralytics YOLO26はカスタムワークアウトルーティンに適応できます。
AIGymクラスは、up_angle、down_angle、kpts引数を使用してエクササイズの反復を検出します。特定のエクササイズを検出するためのキーポイントと角度を指定できます。設定例を以下に示します。from ultralytics import solutions gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], # For pushups - can be customized for other exercises )引数の設定について詳しくは、Arguments
AIGymセクションを参照してください。この柔軟性により、さまざまなエクササイズをモニタリングし、フィットネス目標に基づいてルーティンをカスタマイズできます。ワークアウトモニタリングの出力を保存するには、処理済みフレームを保存するビデオライターを含めるようにコードを変更します。以下に例を示します。
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()この設定により、モニタリングした動画が出力ファイルに書き込まれるため、後でワークアウトのパフォーマンスを確認したり、追加のフィードバックを得るためにトレーナーと共有したりできます。

