YOLO Vision 2026:

Ultralytics YOLO26を使用したワークアウトのモニタリング#

Open Workouts Monitoring In Colab

Ultralytics YOLO26のポーズ推定を利用したワークアウトのモニタリングは、リアルタイムで身体の主要なランドマークや関節を正確に追跡することで、運動評価を向上させます。この技術は、エクササイズフォームに関する即座のフィードバックを提供し、ワークアウトのルーティンを追跡し、パフォーマンス指標を測定することで、ユーザーとトレーナーの双方にとってトレーニングセッションを最適化します。



Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More

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

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

現実世界の応用例#

ワークアウトモニタリングワークアウトモニタリング
YOLO push-ups counting with pose estimationYOLO pull-ups counting with pose estimation
腕立て伏せのカウント懸垂のカウント

YOLO26でワークアウトをモニタリングする#

AIGymソリューションは、ポーズ推定を実行し、四肢がup_angledown_angleの閾値の間を移動する際に3つのキーポイントが形成する角度を測定して回数をカウントします。kptsで追跡したいエクササイズのキーポイントを選択し、Python APIまたはCLIを使用して動画に対してソリューションを実行します。

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]"

キーポイントマップ#

YOLO pose estimation keypoints order diagram

AIGymの引数#

以下はAIGymの引数を示す表です。

引数タイプデフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパス。
up_anglefloat145.0「アップ(上)」ポーズの角度しきい値。
down_angleint90「ダウン(下)」ポーズの角度しきい値。
kptslist[int]'[6, 8, 10]'ワークアウトの監視に使用される3つのキーポイントインデックスのリスト。これらのキーポイントは、腕立て伏せ、懸垂、スクワット、腹筋運動などのエクササイズにおいて、肩、肘、手首などの体の関節や部位に対応します。
line_widthint2ソリューションが描画するボックス、キーポイント、およびカウントの線の太さ。
verboseboolTrue入力形状、クラス数、および処理速度のフレームごとのログ出力をソリューションで有効にします。トラッキング呼び出し自体は常にサイレントです。

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

引数タイプデフォルト説明
trackerstr'botsort.yaml'使用するトラッキングアルゴリズムを指定します。ビルトインオプション: botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.25検出の信頼度しきい値を設定します。低い値を設定するとより多くの物体を追跡できますが、誤検知が含まれる可能性があります。
ioufloat0.7重なり合う検出をフィルタリングするためのIntersection over Union (IoU) 閾値を設定します。
classeslistNoneクラスインデックスによって結果をフィルターします。たとえば、classes=[0, 2, 3]は指定されたクラスのみを追跡します。
devicestrNone推論用のデバイスを指定します(例: cpucuda:0、または0)。ユーザーはモデルの実行にCPU、特定のGPU、またはその他の計算デバイスを選択できます。

さらに、以下の可視化設定を適用できます。

引数タイプデフォルト説明
showboolFalseTrue の場合、注釈付きの画像または動画をウィンドウに表示します。開発やテスト中の即座な視覚的フィードバックに役立ちます。
show_confboolTrue各検出の信頼度スコアをラベルと一緒に表示します。各検出に対するモデルの確信度を把握できます。
show_labelsboolTrue視覚的出力において各検出のラベルを表示します。検出されたオブジェクトを即座に理解するのに役立ちます。

よくある質問 (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_angledown_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()

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

コメント