探索动作识别如何在视频中识别行为。学习使用Ultralytics 进行姿势估计 并构建用于健康活动识别(HAR)任务的智能AI系统。
动作识别(亦称人类活动识别HAR)是计算机视觉(CV)领域中一个动态分支,致力于识别和分类视频数据中主体执行的特定行为或动作。传统物体检测回答的是"图像中存在什么"的问题,而动作识别则应对更为复杂的"随时间推移发生了什么"的挑战。 通过分析连续帧序列而非静态图像, 机器学习(ML)模型能够区分"行走"、"骑行"、"跌倒"或"握手"等复杂活动, 使其成为构建理解人类意图与情境的智能系统的重要组成部分。
识别动作需要一种模型来处理空间信息(物体或人的外观)和时间信息(它们随时间的移动方式)。为此,现代人工智能(AI)系统通常采用超越标准卷积神经网络(CNN)的专用架构。
自动解读人体动作的能力在各行各业都具有变革潜力, 能够提升安全性、效率及用户体验。
常见的工作流程包括:姿势估计 检测人物及其骨骼姿势估计 ,随后分析这些关节的运动轨迹。Ultralytics 模型在初始姿势估计 步骤中实现了顶尖的速度与精度,该步骤是众多动作识别管道的基础。
以下示例演示了如何使用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}")
区分动作识别与其他计算机视觉任务至关重要,以确保采用正确的方法。
开发稳健的动作识别模型面临诸多挑战,尤其需要像Kinetics-400或UCF101这样的大型标注视频数据集。标注视频数据比标注静态图像耗时得多。为解决这一问题,Ultralytics 等工具可帮助简化标注和训练工作流程。
此外,计算效率至关重要。实时处理高清视频需要大量硬件资源。行业正日益转向边缘人工智能,通过优化模型使其直接在摄像头和移动设备上运行,从而降低延迟并减少带宽消耗。未来的发展将致力于提升模型的泛化能力,使系统能够识别即使在未明确训练过的视角下执行的动作。