文章目录
- 1、安装
- 1.1 克隆代码库
- 1.2 设置 Sapiens-Lite 的代码路径
- 1.3 创建 Conda 环境并安装必要的依赖
- 1.4 下载模型检查点
- 2、推理
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 下载需要的检查点文件,选择适合的模型模式(torchscript
或 bfloat16
)并存储于指定的路径。例如,可以将 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