Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Action Recognition

行動認識、すなわち人間活動認識(HAR)は、時間経過に伴う動きをモデル化して、動画内の人物の行動を分類します。手法、データセット、コードを紹介します。

動作認識は、人、場合によっては動物やロボットが動画内で何をしているか(歩く、手を振る、転ぶ、ゴルフクラブを振る、腕立て伏せをするなど)を分類するコンピュータービジョンのタスクです。画像分類を時間軸に拡張したもので、1フレームだけでは区別できない動作が多くあります。人が途中までしゃがんでいる静止画では、座ろうとしているのか、立ち上がろうとしているのか判断できないことがありますが、短い動画ならどちらの動作か分かります。この用語は人間活動認識(HAR)と同じ意味で使われることが多いものの、HARは加速度計などのウェアラブルセンサーによる認識も対象とします。

動作認識の仕組み#

モデルは通常、数秒の動画からサンプリングした8~64フレームのクリップを入力とし、人物や物体の見た目を表す空間特徴と、その動きを表す時間特徴という2種類の情報を学習します。初期の2ストリームネットワークは、RGBフレームとオプティカルフローを別々の分岐で処理し、予測を統合していました。3D 畳み込みニューラルネットワークは、高さ、幅、時間を同時に畳み込みます。I3Dは、ImageNetで事前学習された2D画像フィルターを3Dに拡張して構築し、SlowFastは、外観を捉える低フレームレートの経路と動きを捉える高フレームレートの経路を組み合わせます。動画Transformerは、時空間パッチ全体にセルフアテンションを適用し、VideoMAEは、動画の大部分をマスクして再構成することで事前学習します。

TorchVisionの動画モデルに含まれる3D CNNは、数行のコードでクリップを分類できます。

import cv2
import numpy as np
import torch
from torchvision.models.video import R3D_18_Weights, r3d_18

# Load a 3D CNN pretrained on the 400 action classes of Kinetics-400
weights = R3D_18_Weights.KINETICS400_V1
model = r3d_18(weights=weights).eval()

# Read 16 consecutive frames from a short exercise video
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/solution_ci_pose_demo.mp4")
frames = [cv2.cvtColor(cap.read()[1], cv2.COLOR_BGR2RGB) for _ in range(16)]

# Stack the frames into one clip shaped (time, channels, height, width) and classify it
clip = torch.from_numpy(np.stack(frames)).permute(0, 3, 1, 2)
batch = weights.transforms()(clip).unsqueeze(0)
with torch.no_grad():
    probs = model(batch).softmax(dim=1)[0]

top = probs.argmax().item()
print(f"{weights.meta['categories'][top]}: {probs[top]:.2f}")

モデルはpush up: 0.99を出力し、0.5秒のクリップ全体に対して、400クラスの中から1つの動作をラベル付けします。

骨格ベースの手法は、異なるアプローチを取ります。まず姿勢推定モデルが各フレームで身体のキーポイントを検出し、グラフネットワークのST-GCNなどの時間モデルが、そこから得られる関節の軌跡を分類します。骨格は服装、照明、背景の影響を受けず、エッジデバイス上でリアルタイムに処理できるほど軽量です。UltralyticsのYOLO26姿勢モデルは、このアプローチで人物ごとに17個の身体キーポイントを提供します。ワークアウト監視ソリューションは、そのうち3つのキーポイント間の角度を使って、腕立て伏せやスクワットなどの運動回数をカウントします。

  • 姿勢推定と物体追跡: 姿勢推定は関節の位置を特定し、追跡はフレームをまたいで各人物のIDを維持します。どちらも動作認識の入力としてよく使われ、動作認識はそれらが表す動きを解釈します。群衆の中では、追跡される人物ごとに専用のクリップとラベルが割り当てられます。
  • 時間的動作ローカライゼーション: 長く編集されていない動画の中で、各動作の開始と終了を特定します。時空間動作検出はさらに進んで、AVAデータセットのように各フレーム内の各行為者をバウンディングボックスで囲みます。
  • 動画理解: キャプション生成、質問応答、動画内の出来事や原因に関する推論も含む、より広い分野です。

実際のアプリケーション#

  • 医療・高齢者介護: 転倒検知システムは、カメラやウェアラブルのデータから転倒を認識してスタッフに通知し、リハビリアプリは患者が正しく運動できているかを確認します。
  • フィットネス・スポーツ: アプリは運動回数を数えてフォームを評価し、スポーツ分析では放送映像からシュート、パス、ストロークを分類します。
  • 安全・セキュリティ: 監視システムは、公共空間での喧嘩や、工場の床での転倒・危険な持ち上げ動作を検知します。
  • 人間とロボットのインタラクション: ロボットやスマートデバイスは、手を振る、指さすといったジェスチャーに応答します。

データセットとチャレンジ#

動画のラベリングは画像のラベリングよりはるかに手間がかかるため、研究の進展は大規模データセットによって支えられてきました。Kinetics-400には、400種類の人間の動作クラスごとに、約10秒のYouTubeクリップが少なくとも400本含まれています。UCF101には、101クラスにわたる13,320本のクリップがあります。Something-Something V2は、モデルが動作ではなくプールの映像から水泳を認識する傾向であるシーンバイアスを対象としています。約22万本のクリップには、日用品と手が相互作用する様子が174クラス収録されており、「何かを左から右へ押す」「何かを右から左へ押す」のように、動きだけが異なるクラスもあります。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう