sapiens,是meta发布的以人为中心的视觉大模型,"sapiens"这个词来源于拉丁语,意为“智慧的”或“理智的”。在生物学分类中,"Homo sapiens"指的是现代人类,即智人。在您提供的上下文中,"sapiens"被用来指代一个以人为中心的视觉大模型,这里的翻译可以理解为“智能体”。主要有四个功能,分别是2D姿态估计、人体部位分割、深度估计和法线估计,效果请参看官方。这里主要是说时这个大模型的使用方法,因为在工作中经常用到需要对人进行标注的任务,比如人形检测或分割,之前用过segment anything(2),但感觉这个人形的大模型对人形效果更好。

1、安装

我们只安装lite版,对这个模型进行使用
根据您的需求和提供的路径 /home/tl/sapiens,以下是安装 Sapiens-Lite 的简要步骤:

1.1 克隆代码库

在终端运行以下命令:

git clone https://github.com/facebookresearch/sapiens.git
export SAPIENS_ROOT=/home/tl/sapiens

1.2 设置 Sapiens-Lite 的代码路径

设置环境变量 SAPIENS_LITE_ROOT 指向 lite 目录:

export SAPIENS_LITE_ROOT=$SAPIENS_ROOT/lite

1.3 创建 Conda 环境并安装必要的依赖

设置 minimal 环境,包含 PyTorch、CUDA、OpenCV 和其他基础依赖:

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

目前安装时,自动安装的版本是pytorch2.5.1,加了torch.compile,所以会有warnning,所以可以要安装再早点的版本可能要好点,比如那些是2。3,那些是2.4.
还有要使用pose,需要安装mmdetection.照这官方文档安装就行,运行时如果报错,那就报啥错改啥
如下:

pip install -U openmim
mim install mmengine
mim install "mmcv==2.1.0" # 官方是mim install "mmcv>=2.0.0",但安装2.2,使用报错
mim install mmdet

最后,使用报缺失jaraco

pip install jaraco.text

官方安装,但因为我是在conda中安装的,这种安装方法不适合将环境进行移植,移植后就不能用了:

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 .

1.4 下载模型检查点

从 Hugging Face 下载需要的检查点文件,选择适合的模型模式(torchscriptbfloat16)并存储于指定的路径。例如,可以将 torchscript 模式的检查点放在以下结构中:

/home/tl/sapiens/sapiens_lite_host/
├── torchscript
│   ├── pretrain/
│   │   └── checkpoints/
│   │       ├── sapiens_0.3b/
│   │       ├── sapiens_0.6b/
│   │       ├── sapiens_1b/
│   │       └── sapiens_2b/
│   ├── pose/
│   ├── seg/
│   ├── depth/
│   └── normal/
└── bfloat16
    ├── pretrain/
    ├── pose/
    ├── seg/
    ├── depth/
    └── normal/

MODE 设置成torchscript:

export MODE=torchscript

SAPIENS_LITE_CHECKPOINT_ROOT 变量指向该目录:

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

https://huggingface.co/facebook/sapiens 这个是下载路径,如下图:
在这里插入图片描述

点击相应的链接就可以下载,如seg 1.0b:https://huggingface.co/facebook/sapiens-seg-1b-torchscript/tree/main
在这里插入图片描述

模型存放路径:

sapiens_lite_host/
├── torchscript
    ├── pretrain/
    │   └── checkpoints/
    │       ├── sapiens_0.3b/
    │       ├── sapiens_0.6b/
    │       ├── sapiens_1b/
    │       └── sapiens_2b/
    ├── pose/
    └── seg/
    └── depth/
    └── normal/
├── bfloat16
    ├── pretrain/
    ├── pose/
    └── seg/
    └── depth/
    └── normal/

在这里插入图片描述
我把sapiens_lite_host放到 /home/tl下。

2、推理

总的命令执行一遍

conda activate sapiens_lite
export SAPIENS_ROOT=/home/tl/sapiens
export MODE=torchscript
export SAPIENS_LITE_ROOT=$SAPIENS_ROOT/lite
export SAPIENS_LITE_CHECKPOINT_ROOT=/home/tl/sapiens/sapiens_lite_host/$MODE

分割推理:

cd   $SAPIENS_LITE_ROOT/scripts/demo/torchscript
./seg.sh

脚本中可配置定义输入和输出目录:

1、你需要指定一个输入目录(INPUT),这个目录包含了你想要进行人体部位分割的图像。你还需要指定一个输出目录(OUTPUT),用于存放分割结果。
2、结果可视化和存储:

分割模型的预测结果将以图像的形式展示,支持的格式为.jpg或.png。
除了图像,还会生成前景布尔掩码(foreground boolean masks)和分割概率(segmentation probabilities),这些数据将以.npy文件的形式存储在输出目录中。
这些.npy文件将用于后续的深度和表面法线可视化处理。
3、多GPU配置调整:

如果你使用的是多GPU配置,你需要调整BATCH_SIZE(批次大小)、JOBS_PER_GPU(每个GPU上的作业数)、TOTAL_GPUS(总GPU数)和VALID_GPU_IDS(有效GPU ID)这些参数,以优化性能。
速度优化:

为了提高速度,这段指南建议跳过在图像上显示类别标签的步骤。
简而言之,这段内容是指导用户如何设置和运行Sapiens-Lite人体部位分割模型,包括如何配置输入输出目录、结果的可视化和存储,以及如何针对多GPU环境进行性能优化。
在这里插入图片描述
在这里插入图片描述

这是分割的结果,同理,可以看pose的结果,我用的是最多关键点的模型:
配置方法参看:https://github.com/facebookresearch/sapiens/blob/main/lite/docs/POSE_README.md
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐