ViTPose:最小只有100M的身体姿态估计模型,精确识别人体关节、手、脚等关键点

简介: ViTPose 是基于 Transformer 架构的人体姿态估计模型,能够精准定位人体关键点,支持多种规模版本,适用于运动分析、虚拟现实等场景。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 模型架构:ViTPose 采用标准的视觉 Transformer 作为骨干网络,通过简单的解码器实现人体关键点的精准定位。
  2. 功能特点:支持人体关键点定位、模型架构简单、可扩展性强、灵活性高,适用于多种姿态估计任务。
  3. 技术原理:基于视觉 Transformer 的特征提取和热图预测,模型知识可轻松迁移到小模型,提升实用性。

正文(附运行示例)

ViTPose 是什么

ViTPose

ViTPose 是基于 Transformer 架构的人体姿态估计模型。它使用标准的视觉 Transformer 作为骨干网络,通过将输入图像切块并送入 Transformer block 来提取特征,再通过解码器将特征解码为热图,实现对人体关键点的精准定位。

ViTPose 系列模型具有多种规模版本,如 ViTPose-B、ViTPose-L、ViTPose-H 等,可根据不同需求选择。在 MS COCO 等数据集上表现出色,展现了简单视觉 Transformer 在姿态估计任务上的强大潜力。此外,ViTPose+ 作为改进版本,拓展到多种身体姿态估计任务,涵盖动物、人体等不同类型关键点,进一步提升了性能和适用范围。

ViTPose 的主要功能

  • 人体关键点定位:能识别图像中人体的关键点,如关节、手、脚等,广泛应用于运动分析、虚拟现实、人机交互等领域。
  • 模型架构简单:采用普通的视觉 Transformer 作为骨干网络进行特征提取,再通过简单的解码器将特征解码为热图,实现关键点的精准定位。其模型结构简单,易于实现和扩展。
  • 可扩展性强:可以通过调整 Transformer 的层数、头数等超参数,将模型从 100M 扩展到 1B 参数,适应不同规模的任务需求,同时保持高性能。
  • 灵活性高:在训练范式上具有灵活性,支持不同的预训练和微调策略,以及多种输入分辨率和注意力类型,能处理多种姿态估计任务。
  • 知识可迁移:大模型的知识可以通过简单的知识令牌轻松迁移到小模型,进一步提升了模型的实用性和灵活性。

ViTPose 的技术原理

  • 视觉 Transformer:ViTPose 使用标准的、非分层的视觉 Transformer 作为骨干网络进行特征提取。输入图像首先被切分成多个小块(patches),每个小块被嵌入到一个高维空间中,形成 tokens。这些 tokens 然后通过多个 Transformer 层进行处理,每一层包含多头自注意力(Multi-head Self-Attention, MHSA)和前馈网络(Feed-Forward Network, FFN)。
  • 特征提取:经过 Transformer 层的处理,最终输出的特征图具有丰富的语义信息,能够捕捉到图像中人体的关键点特征。
  • 热图预测:ViTPose 的解码器将编码器输出的特征图解码为热图。热图中的每个像素值表示该位置是某个关键点的概率。解码器有两种选择:
    • 标准解码器:使用转置卷积(transposed convolution)进行上采样,然后通过预测层生成热图。
    • 简单解码器:直接使用双线性插值进行上采样,生成热图。
  • 模型迁移:ViTPose 的知识可以通过简单的知识令牌(knowledge token)轻松迁移到小模型,进一步提升了模型的实用性和灵活性。
  • SOTA 性能:ViTPose 在多个姿态估计数据集上达到了新的 SOTA(State of the Art)和帕累托前沿。

如何运行 ViTPose

1. 环境配置

首先,克隆并安装所需的依赖库:

git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
git checkout v1.3.9
MMCV_WITH_OPS=1 pip install -e .
cd ..
git clone https://github.com/ViTAE-Transformer/ViTPose.git
cd ViTPose
pip install -v -e .

安装 timmeinops

pip install timm==0.4.9 einops

2. 训练模型

下载预训练模型后,运行以下命令进行训练:

# 单机训练
bash tools/dist_train.sh <Config PATH> <NUM GPUs> --cfg-options model.pretrained=<Pretrained PATH> --seed 0

# 多机训练
python -m torch.distributed.launch --nnodes <Num Machines> --node_rank <Rank of Machine> --nproc_per_node <GPUs Per Machine> --master_addr <Master Addr> --master_port <Master Port> tools/train.py <Config PATH> --cfg-options model.pretrained=<Pretrained PATH> --launcher pytorch --seed 0

3. 测试模型

测试预训练模型的性能:

bash tools/dist_test.sh <Config PATH> <Checkpoint PATH> <NUM GPUs>

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
机器学习/深度学习 传感器 人机交互
3D人体姿态估计(教程+代码)
3D人体姿态估计(教程+代码)
|
监控 PyTorch 算法框架/工具
Qwen-VL怎么用自己的数据集微调
Qwen-VL怎么用自己的数据集微调
1918 0
|
自然语言处理 测试技术 计算机视觉
OpenVI-感知理解系列之GAP骨骼点动作识别 ICCV23顶会论文深入解读
本文介绍了ICCV23中稿论文 GAP: Generative Action Description Prompts for Skeleton-based Action Recognition
1952 2
|
Linux 开发者
Linux系列——自动化批量安装软件
Linux系列——自动化批量安装软件
|
人工智能 编解码 JSON
Qwen2.5-VL:阿里通义千问最新开源视觉语言模型,能够理解超过1小时的长视频
Qwen2.5-VL 是阿里通义千问团队开源的视觉语言模型,具有3B、7B和72B三种不同规模,能够识别常见物体、分析图像中的文本、图表等元素,并具备作为视觉Agent的能力。
6183 18
Qwen2.5-VL:阿里通义千问最新开源视觉语言模型,能够理解超过1小时的长视频
|
机器学习/深度学习 数据可视化 自动驾驶
YOLO11-seg分割如何训练自己的数据集(道路缺陷)
本文介绍了如何使用自己的道路缺陷数据集训练YOLOv11-seg模型,涵盖数据集准备、模型配置、训练过程及结果可视化。数据集包含4029张图像,分为训练、验证和测试集。训练后,模型在Mask mAP50指标上达到0.673,展示了良好的分割性能。
6268 4
|
人工智能 达摩院 并行计算
VideoRefer:阿里达摩院开源视频对象感知与推理框架,可集成 VLLM 提升其空间和时间理解能力
VideoRefer 是浙江大学与阿里达摩学院联合推出的视频对象感知与推理技术,支持细粒度视频对象理解、复杂关系分析及多模态交互,适用于视频剪辑、教育、安防等多个领域。
680 17
VideoRefer:阿里达摩院开源视频对象感知与推理框架,可集成 VLLM 提升其空间和时间理解能力
|
12月前
|
机器学习/深度学习 编解码 JSON
Qwen2.5-VL!Qwen2.5-VL!!Qwen2.5-VL!!!
Qwen2.5-VL!Qwen2.5-VL!!Qwen2.5-VL!!!
|
人工智能 测试技术 API
FlagEvalMM:智源开源的多模态模型评测框架
FlagEvalMM 是由北京智源人工智能研究院开源的多模态模型评测框架,旨在全面评估处理文本、图像、视频等多种模态的模型。该框架支持多种任务和指标,采用评测与模型推理解耦的设计,提升评测效率,便于快速适配新任务和模型。
730 11
FlagEvalMM:智源开源的多模态模型评测框架
|
NoSQL 前端开发 Redis
Windows 下安装和配置 Redis (图文教程)
Windows 下安装和配置 Redis (图文教程)

热门文章

最新文章