Action Recognition
探索动作识别如何识别视频中的行为。学习使用 Ultralytics YOLO26 进行姿态估计,并构建用于 HAR 任务的智能 AI 系统。
动作识别也通常称为人类活动识别 (HAR),是计算机视觉 (CV)领域的一个动态子领域,致力于识别和分类视频数据中主体执行的特定行为或动作。传统的目标检测回答“图像中有什么?”,而动作识别则处理更复杂的问题:“随着时间的推移,发生了什么?”。通过分析帧序列而非静态图像,机器学习 (ML)模型可以区分“走路”“骑车”“摔倒”或“握手”等复杂活动,因此动作识别是构建能够理解人类意图和上下文的智能系统的关键组成部分。
核心概念与技术#
识别动作要求模型同时处理空间信息(物体或人的外观)和时间信息(它们如何随时间移动)。为此,现代人工智能 (AI)系统通常采用专用架构,而不仅仅是标准的卷积神经网络 (CNN)。
- **姿态估计:**这是一种强大的技术,模型可以跟踪人体上的特定关键点,例如肘部、膝盖和肩部。这些关键点随时间发生的几何变化为动作分类提供了强有力的信号,并且不受背景杂乱因素的影响。
- **时间建模:**算法利用循环神经网络 (RNN)或长短期记忆网络 (LSTM) 等结构记忆过去的帧并预测未来的动作。近年来,视频 Transformer凭借处理视频流中长距离依赖关系的能力而日益流行。
- **双流网络:**这种方法通过并行流处理空间特征(RGB 帧)和时间特征(通常使用光流),然后融合数据以完成最终分类。
实际应用#
自动解读人类运动的能力在各行各业都具有变革性潜力,可以提升安全性、效率和用户体验。
- **医疗领域的 AI:**动作识别对于患者监测系统至关重要。例如,它可以在养老院中实现自动跌倒检测,并在患者倒下时立即提醒工作人员。动作识别还用于远程身体康复,AI 教练会分析患者的锻炼姿势,确保他们正确且安全地完成动作。
- **智能监控与安防:**除了简单的运动检测之外,先进的安防系统还会利用动作识别来识别打架、商店行窃或未经授权进入等可疑行为,同时忽略正常活动。这可以减少误报并改进实时安防监控。
使用 Ultralytics 实现动作分析#
一种常见的工作流程是先检测人员及其骨骼姿态,然后分析这些关节的运动。Ultralytics YOLO26模型能够以先进的速度和精度完成初始姿态估计步骤,而这正是许多动作识别流水线的基础。
以下示例演示了如何使用 Python 从视频帧中提取骨骼关键点:
from ultralytics import YOLO
# Load the YOLO26 pose estimation model
model = YOLO("yolo26n-pose.pt")
# Run inference on an image to detect person keypoints
results = model("https://ultralytics.com/images/bus.jpg")
# Process results
for result in results:
# Access the keypoints (x, y, visibility)
if result.keypoints is not None:
print(f"Detected keypoints shape: {result.keypoints.data.shape}")区分相关术语#
区分动作识别与类似的计算机视觉任务非常重要,这样才能确保采用正确的方法。
- **动作识别与目标跟踪的区别:**目标跟踪侧重于在特定物体或人员跨帧移动时保持其身份(例如,“人员 A 位于坐标 X”)。动作识别则解读该被跟踪主体的行为(例如,“人员 A 正在奔跑”)。
- **动作识别与视频理解的区别:**动作识别用于识别具体的身体动作,而视频理解是一个更宽泛的概念,涉及理解视频场景中的完整叙事、上下文和因果关系。
挑战与未来趋势#
开发稳健的动作识别模型面临诸多挑战,尤其是需要大量带标注的视频数据集,例如Kinetics-400或 UCF101。视频数据的标注比静态图像标注耗时得多。为应对这一问题,Ultralytics Platform等工具可以帮助简化标注和训练工作流程。
此外,计算效率至关重要。实时处理高分辨率视频需要大量硬件资源。行业正日益转向边缘 AI,通过优化模型使其能够直接在摄像头和移动设备上运行,从而降低延迟和带宽使用量。未来的发展旨在改进模型泛化能力,使系统即使面对未明确用于训练的视角,也能识别动作。









