Keypoints
了解关键点如何定义 AI 中的对象几何和姿态。探索 Ultralytics YOLO26 的姿态估计,并开始使用我们易于使用的 Python SDK。
关键点是图像中定义对象或主体重要特征的独特空间位置或地标。在计算机视觉和机器学习中,关键点通常由一组坐标 (X, Y) 表示,这些坐标精确定位了对象的特定部分,例如人的肘部、建筑物的拐角或汽车车轮的中心。与仅识别对象是否存在等简单任务不同,识别关键点使 人工智能 (AI) 模型能够理解主体的几何结构、姿态和结构排列。此功能是高级视觉分析的基础,使机器能够解读肢体语言、跟踪精确运动并将数字叠加层与现实世界对象对齐。
Link to this section关键点在 AI 模型中的作用#
关键点是 姿态估计 的基础数据,这是一种映射人类或动物骨架结构的技术。通过检测一组预定义的点(例如肩膀、膝盖和脚踝),算法可以实时重建主体的完整姿态。此过程超越了标准的 对象检测,后者通常仅在对象周围输出边界框,而不了解其内部形状。
Modern architectures, such as the state-of-the-art Ultralytics YOLO26, have evolved to predict these keypoints with high accuracy and speed. These models utilize deep learning (DL) networks trained on massive annotated datasets, such as COCO Keypoints, to learn the visual patterns associated with joints and facial features. During inference, the model regresses the coordinates for each keypoint, often including a confidence score to indicate the reliability of the prediction.
Link to this section关键点与相关概念的对比#
将关键点与其他常见的计算机视觉输出区分开来,有助于理解它们的独特效用:
- 关键点与边界框: 边界框 提供粗略的定位,将整个对象封闭在一个矩形中。关键点则提供该对象 内部 特定部分的细粒度定位。
- 关键点与图像分割: 图像分割 对每个像素进行分类以创建对象形状的精确掩码。虽然分割提供了详细的边界信息,但关键点提供了结构摘要(“骨架”),这对于分析运动和 运动学 通常更为高效。
- 关键点与特征描述符: 在传统的图像处理(如 SIFT (Scale-Invariant Feature Transform))中,关键点是用于图像匹配的兴趣点(角点、斑点)。在现代 DL 姿态估计中,关键点是由网络学习的语义标签(例如“左手腕”)。
Link to this section实际应用#
跟踪特定身体部位或对象特征的能力可在各行各业开启多种应用:
- 体育分析: 教练和运动员使用姿态估计来分析生物力学。通过跟踪关节上的关键点,系统可以计算角度和速度,从而改善高尔夫、网球或短跑等运动中的技术动作。查看 Ultralytics YOLO 模型如何跟踪高尔夫挥杆 以提供可操作的反馈。
- 医疗保健与康复: 物理治疗平台利用关键点来远程监控患者的锻炼情况。该系统可确保患者在康复过程中保持正确的姿势,从而降低受伤风险并跟踪康复进度。
- 增强现实 (AR): 社交媒体滤镜和虚拟试穿应用依靠面部关键点(眼睛、鼻子、嘴部轮廓)将数字掩码或眼镜牢固地锚定在用户的脸上,即使在移动时也能保持对齐。
- 驾驶员监控: 汽车安全系统跟踪面部特征点以检测困倦或分心的迹象,如果驾驶员闭眼或头部位置表明注意力不集中,系统会向其发出警报。
Link to this section使用 YOLO26 实现关键点检测#
通过使用 Ultralytics Platform 或 Python SDK,开发者可以轻松实现关键点检测。以下示例演示了如何加载预训练的 YOLO26-pose 模型 并对图像运行推理以检测人体骨架。
from ultralytics import YOLO
# Load a pre-trained YOLO26 pose estimation model
model = YOLO("yolo26n-pose.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results showing detected keypoints and skeletons
for result in results:
result.show() # Display the image with keypoints drawn
# Access keypoint coordinates (x, y, confidence)
keypoints = result.keypoints.data
print(f"Detected keypoints shape: {keypoints.shape}")这个简单的工作流程允许快速部署复杂的 计算机视觉 (CV) 应用。对于希望训练自己的自定义关键点模型(例如检测工业机械或动物物种上的特定点)的用户,Ultralytics Platform 简化了云端数据标注和模型训练的过程。
Link to this section高级考量#
成功部署关键点检测需要处理遮挡(当身体部位被隐藏时)和多变光照条件等挑战。现代模型通过在训练期间进行强大的 数据增强 来解决此问题,使网络接触到各种场景。此外,将关键点与 对象跟踪 算法集成,可以在视频流中随着时间的推移对个人进行一致性识别,这对于安全或行为分析等应用至关重要。






