欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Sapiens人类行为AI模型

Sapiens人类行为AI模型

2025/3/9 4:41:07 来源:https://blog.csdn.net/qq_45066628/article/details/146102123  浏览:    关键词:Sapiens人类行为AI模型

Sapiens人类行为AI模型

  • Sapiens简介
    • Sapiens模型的特点
    • Sapiens模型的主要功能
  • 安装使用
    • 克隆存储库
      • Lite 安装(仅限推理)
      • 完整版安装
    • 下载模型
    • 推理
      • Sapiens-Lite 推理
      • 完整版推理
      • 标准估计
      • ControlNet 兼容输出
  • 微调 Sapiens 的简单步骤
    • 1.数据准备
    • 2.更新配置
    • 3.微调
      • 单节点训练
      • 多节点训练

Sapiens简介

Sapiens是Meta公司推出的一个专注于与人类相关的任务的模型。Meta Sapiens模型旨在理解和模拟人类行为,包括理解身体姿势、识别身体部位、预测深度,甚至确定皮肤纹理等表面细节。
在这里插入图片描述

Sapiens 为以人为中心的视觉任务(例如 2D 姿势、零件分割、深度、法线等)提供了一套全面的套件。该模型系列在 3 亿张野外人类图像上进行了预训练,并显示出对不受约束条件的出色泛化。这些模型还设计用于提取高分辨率特征,以 1024 x 1024 图像分辨率和 16 像素的补丁大小进行本机训练。
在这里插入图片描述

项目链接:https://github.com/facebookresearch/sapiens
论文链接:https://arxiv.org/abs/2408.12569
Huggingface在线运行: https://huggingface.co/collections/facebook/sapiens-66d22047daa6402d565cb2fc

Sapiens模型的特点

  • 通用性:模型具备很强的泛化能力,能在不同场景中表现良好。
  • 高适应性:只需少量微调即可用于特定任务。
  • 高保真度:输出高分辨率、精确的结果,尤其适合人类图像的生成和处理。

Sapiens模型的主要功能

  • 姿势估计(2D):检测图像中人体关键点的位置,如关节等部位,帮助分析人体的势和动作。
    在这里插入图片描述

  • 身体部位分割 :可以识别并分割图像中的不同人体部位,例如头部、躯干、手臂和腿部,对虚拟试穿和医学成像等领域非常有用。
    在这里插入图片描述

  • 深度估计:通过单张图像预测深度信息,Sapiens模型在真实世界和合成数据上均表现出色。
    在这里插入图片描述

  • 表面法线估计:模型可以预测图像中每个像素表面法线的方向,用于人类的3D数字化任务。
    在这里插入图片描述

安装使用

克隆存储库

git clone https://github.com/facebookresearch/sapiens.git
export SAPIENS_ROOT=/path/to/sapiens

Lite 安装(仅限推理)

对于主要为在推理模式下运行现有模型而设置自己的环境的用户,建议安装 Sapiens-Lite。此设置提供优化的推理(速度提高了 4 倍),并且依赖项最少(仅 PyTorch + numpy + cv2)。

1.设置 sapiens_lite 代码根。

export SAPIENS_LITE_ROOT=$SAPIENS_ROOT/lite

2.设置最小 conda 环境 (pytorch >= 2.2):sapiens_lite

conda create -n sapiens_lite python=3.10
conda activate sapiens_lite
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
pip install opencv-python tqdm json-tricks
安装过程可能会报错,那就报啥错改啥。

完整版安装

cd $SAPIENS_ROOT/_install
./conda.sh

下载模型

huggingface模型下载路径:https://huggingface.co/facebook/sapiens
在这里插入图片描述
从 Hugging Face 下载需要的文件,选择适合的模型模式(torchscript 或 bfloat16)

- MODE=torchscript:所有使用 PyTorch2.2+ 的 GPU。推理速度较慢,但最接近原始模型性能。
- MODE=bfloat16:使用 PyTorch-2.3 的 A100 GPU 的优化模式。

export MODE=torchscript
export SAPIENS_LITE_CHECKPOINT_ROOT=/home/tl/sapiens/sapiens_lite_host/$MODE

推理

可选择一下任意推理任务
在这里插入图片描述
例如选择姿态估计,提供 4 种不同尺寸的型号。Sapiens-0.3B, Sapiens-0.6B, Sapiens-1B, Sapiens-2B。 通常,性能会随着模型大小的增加而提高。

Sapiens-Lite 推理

在这里插入图片描述
安装mmdet

export SAPIENS_ROOT=/path/to/sapiens
cd $SAPIENS_ROOT/engine; pip install -e .
cd $SAPIENS_ROOT/cv; pip install -e .
cd $SAPIENS_ROOT/det; pip install -e .

进入脚本目录

cd $SAPIENS_LITE_ROOT/scripts/demo/[torchscript,bfloat16]
身体:17 个关键点姿态估计执行
在这里插入图片描述

./pose_keypoints17.sh

身体 + 面部 + 手 + 脚:133 个关键点姿态估计执行
在这里插入图片描述

./pose_keypoints133.sh

身体 + 密脸 + 手 + 脚:308 个关键点姿态估计执行
在这里插入图片描述

./pose_keypoints308.sh

为您的图像目录和结果定义。JSON 格式的可视化和关键点将保存到 。自定义和根据需要。Adjust 和多 GPU 配置。
5.将模型转换为 Lite版

cd $SAPIENS_ROOT/scripts/[pretrain,pose,seg]/optimize/local
./[feature_extracter,keypoints*,seg,depth,normal]_optimizer.sh

完整版推理

标准估计

进入脚本目录

cd $SAPIENS_ROOT/pose/scripts/demo/local

身体:17 个关键点姿态估计执行

./keypoints17.sh

身体 + 面部 + 手 + 脚:133 个关键点姿态估计执行

./keypoints133.sh

身体 + 密脸 + 手 + 脚:308 个关键点姿态估计执行

./keypoints308.sh

ControlNet 兼容输出

在黑色背景上生成 OpenPose 骨架,与 ControlNet 兼容。

进入脚本目录

cd $SAPIENS_ROOT/pose/scripts/demo/local

身体:17 个关键点姿态估计执行

./keypoints17_openpose.sh

身体 + 面部 + 手 + 脚:133 个关键点姿态估计执行

./keypoints133_openpose.sh

微调 Sapiens 的简单步骤

还是以姿势估计为例并使用准备的两个数据集:
COCO-WholeBody :133 个关键点(身体 17 kps、脚部 6 kps、面部 68 kps、手部 42 kps)。
COCO:17 个关键点。

1.数据准备

从 COCO 下载图像和 17 kps 标注。从 COCO-WholeBody 下载 133 kps标注。将图像和标注数据作为子文件夹解压缩。.
此外,从 COCO_val2017_detections_AP_H_70_person.json 下载集上的边界框检测,并将其放在 下。$DATA_ROOT $DATA_ROOTval2017 $DATA_ROOT/person_detection_results。
数据目录结构如下:
在这里插入图片描述

2.更新配置

请将以下变量配置为133关键点或17关键点模式。
编辑配置文件路径

$DATASET coco-wholebody coco $SAPIENS_ROOT/pose/configs/sapiens_pose/$DATASET/sapiens_1b-210e_$DATASET-1024x768.py

需修改项:

  1. 预训练模型路径
    pretrained_checkpoint ➔ 设置为您的模型检查点路径
  2. 数据根目录
    更新 train_dataloader.dataset.data_root 和 val_dataloader.dataset.data_root 为您的数据路径(示例:$DATA_ROOT/data/coco)
  3. 验证集标注文件
    更新 val_evaluator.ann_file ➔ 指向 $DATA_ROOT 下的验证集标注文件
  4. 边界框检测文件
    更新 bbox_file ➔ 指向 $DATA_ROOT 下的边界框检测结果文件

(注:所有$开头的变量需替换为实际路径,如$DATA_ROOT表示数据根目录)

3.微调

本指南适用于 Sapiens-1B 模型

  1. 其他预训练模型配置(支持133关键点/17关键点)位于:pose_configs_133 和 pose_configs_17目录下

  2. 训练脚本路径:$SAPIENS_ROOT/pose/scripts/finetune/$DATASET/sapiens_1b(需替换 $DATASET 为实际数据集名称,如 coco)

  3. 确保已激活 Sapiens 的 Python conda 环境

单节点训练

启动脚本路径:

$SAPIENS_ROOT/pose/scripts/finetune/$DATASET/sapiens_1b/node.sh
(需替换 $SAPIENS_ROOT 和 $DATASET 为实际路径及数据集名称)

关键变量配置:

  • DEVICES:GPU ID列表(例如 “0,1,2,3,4,5,6,7”)

  • TRAIN_BATCH_SIZE_PER_GPU:每个GPU的训练批次大小(默认值:2)

  • OUTPUT_DIR:模型检查点及日志输出目录

  • RESUME_FROM:恢复训练的检查点路径(从上一个epoch开始,默认值为空字符串)

  • LOAD_FROM:加载权重的检查点路径(训练从epoch 0开始,默认值为空字符串)

  • mode=multi-gpu:启动多GPU训练(自动分配数据并行,支持多数据加载进程)

  • mode=debug(可选):调试模式(单GPU试运行,仅单数据加载进程,支持 pdb/ipdb 交互调试)

请注意,如果您希望从现有的姿势估计检查点进行微调,请设置变量

启动:

cd $SAPIENS_ROOT/pose/scripts/finetune/$DATASET/sapiens_1b
./node.sh

多节点训练

启动脚本路径:

$SAPIENS_ROOT/pose/scripts/finetune/$DATASET/sapiens_1b/slurm.sh

其他变量:

  • CONDA_ENV:conda 环境的路径
  • NUM_NODES:节点数(默认 4 个,每个节点 8 个 GPU)

启动:

cd $SAPIENS_ROOT/pose/scripts/finetune/$DATASET/sapiens_1b
./slurm.sh

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词