- 人工智能
- 深度学习
- 计算机视觉
- NLP
- 语音
【免费下载链接】models
Officially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.
导读
本文以 PaddleSeg 团队发布的开源人像分割方案 PP-HumanSeg 系列为对象,系统梳理其官方模型清单(下载地址、最佳输入尺寸、精度与耗时指标),并深入解析 Checkpoint、Inference Model (Argmax)、Inference Model (Softmax) 三类模型产物的区别与适用场景。无论你是要在手机视频通话、Web 会议中做实时半身人像分割,还是需要针对自身业务场景对通用人像分割模型进行微调,读完本文即可快速选型、正确下载并完成部署接入。
一、模型总览:肖像分割与通用人像分割两类任务
PP-HumanSeg 系列将"人物与背景的像素级区分"这一经典图像分割任务划分为两种场景:
- 肖像分割(Portrait Segmentation):面向手机视频通话、Web 视频会议等实时半身人像场景,模型针对性强、可开箱即用,零成本直接集成到产品中;
- 通用人像分割(Human Segmentation):面向全身与半身人像的通用分割任务,官方先构建大规模人像数据集,再使用 PaddleSeg 的 SOTA 模型训练发布,覆盖场景更广、通用性更强。
两类模型均以 PP-HumanSeg14k 等公开人像数据集为主要训练与测试基准(见 modelcenter/PP-HumanSegV2/info.yaml 中 Datasets 字段 "PP-HumanSeg14K,EG1800"),整体方案具有分割精度高、推理速度快、通用型强的特点。作为参考,PP-HumanSegV2 于 2022 年 7 月由 PaddleSeg 升级发布,其肖像分割方案以 96.63% mIoU、约 63 FPS 的手机端推理速度刷新开源人像分割 SOTA 指标,相比 V1 方案推理速度提升约 87%、分割精度提升约 3%(详见 benchmark_cn.md 中的实测数据)。
二、肖像分割模型清单与指标解读
肖像分割模型针对实时半身人像场景设计,官方发布的模型如下:
| 模型名 | 最佳输入尺寸 | 精度 mIoU(%) | 手机端推理耗时(ms) | 模型体积(MB) | 配置文件 | 下载连接 |
|---|---|---|---|---|---|---|
| PP-HumanSegV1-Lite | 398x224 | 93.60 | 29.68 | 2.3 | portrait_pp_humansegv1_lite.yml | Checkpoint | Inference Model (Argmax) | Inference Model (Softmax) |
| PP-HumanSegV2-Lite | 256x144 | 96.63 | 15.86 | 5.4 | portrait_pp_humansegv2_lite.yml | Checkpoint | Inference Model (Argmax) | Inference Model (Softmax) |
对应的训练配置文件(如portrait_pp_humansegv2_lite.yml)位于 PaddleSeg 仓库contrib/PP-HumanSeg/configs/目录下,用于结合 Checkpoint 权重执行微调。
2.1 指标说明(如何读懂这张表)
- 精度 mIoU:针对 PP-HumanSeg-14k 数据集,使用模型最佳输入尺寸测试,未应用多尺度与 flip 等增强操作,反映模型在标准条件下的真实分割精度;
- 手机端推理耗时:基于 PaddleLite 预测库,在小米 9 手机(骁龙 855 CPU)上、单线程、大核条件下,以最佳输入尺寸测得;
- 最佳输入尺寸宽高比为 16:9,与手机、电脑摄像头的拍摄画面比例一致,因此输入画面可直接送入模型而不必大幅裁剪;
- Checkpoint是模型权重,需结合配置文件使用,适用于 Finetuning 微调场景;
- Inference Model 为预测模型,可直接用于部署;
- Inference Model (Argmax):模型末端使用 Argmax 算子,输出单通道 int64预测结果,人像区域为 1、背景区域为 0;
- Inference Model (Softmax):模型末端使用 Softmax 算子,输出单通道 float32预测结果,每个像素的数值表示该像素属于人像的概率,用于图像融合时边缘更平滑。
2.2 使用说明
- 肖像分割模型专用性较强、可开箱即用,建议直接使用其最佳输入尺寸(如 256x144);
- 手机端部署存在横屏与竖屏两种情况:实际使用中可根据设备朝向对图像进行旋转,保持人像始终竖直,再以 256x144(横屏)或 144x256(竖屏)输入模型,即可得到最佳分割效果。
2.3 从 V1 到 V2:精度与速度的提升幅度
在 benchmark_cn.md 中,肖像分割方案的实测对比进一步印证了 V2 的升级幅度(骁龙 855 ARM CPU 测试):
| 模型 | 输入分辨率 | 精度 mIoU(%) | ARM CPU 速度(FPS) |
|---|---|---|---|
| PP-HumanSegV1 | 398x224 | 93.60 | 33.69 |
| PP-HumanSegV2 | 398x224 | 97.50 | 35.23 |
| PP-HumanSegV2 | 256x144 | 96.63 | 63.05 |
同一份基准文档还提供了 Intel CPU(Xeon Gold 6271C,基于 Paddle Inference)下的实测:PP-HumanSegV1 在 398x224 下为 36.02 FPS,PP-HumanSegV2 在 398x224 下为 60.75 FPS、在 256x144 下为 70.67 FPS。可见 V2 方案通过"轻量化模型结构 + 合理调整输入分辨率",在精度不降(甚至更高)的前提下显著提升了推理速度。
三、通用人像分割模型清单与指标解读
通用人像分割模型面向全身/半身等更泛化的场景,官方发布的模型如下:
| 模型名 | 最佳输入尺寸 | 精度 mIoU(%) | 手机端推理耗时(ms) | 服务器端推理耗时(ms) | 配置文件 | 下载链接 |
|---|---|---|---|---|---|---|
| PP-HumanSegV1-Lite | 192x192 | 86.02 | 12.3 | - | human_pp_humansegv1_lite.yml | Checkpoint | Inference Model (Argmax) | Inference Model (Softmax) |
| PP-HumanSegV2-Lite | 192x192 | 92.52 | 15.3 | - | human_pp_humansegv2_lite.yml | Checkpoint | Inference Model (Argmax) | Inference Model (Softmax) |
| PP-HumanSegV1-Mobile | 192x192 | 91.64 | - | 2.83 | human_pp_humansegv1_mobile.yml | Checkpoint | Inference Model (Argmax) | Inference Model (Softmax) |
| PP-HumanSegV2-Mobile | 192x192 | 93.13 | - | 2.67 | human_pp_humansegv2_mobile.yml | Checkpoint | Inference Model (Argmax) | Inference Model (Softmax) |
| PP-HumanSegV1-Server | 512x512 | 96.47 | - | 24.9 | human_pp_humansegv1_server.yml | Checkpoint | Inference Model (Argmax) | Inference Model (Softmax) |
3.1 指标说明(与肖像模型的差异点)
- 精度 mIoU:通用分割模型在大规模人像数据集上训练完成后,在小规模 Supervisely Person 数据集上进行测试。因此该精度代表模型在跨域场景下的泛化表现,与肖像模型在 PP-HumanSeg-14k 上的测试口径不同,两者不可直接横向比较;
- 手机端推理耗时:同样基于 PaddleLite(小米 9 / 骁龙 855 / 单线程大核);
- 服务器端推理耗时:基于 PaddleInference 预测库,在V100 GPU、开启 TensorRT条件下测试;
- Checkpoint / Inference Model (Argmax) / Inference Model (Softmax)的含义与肖像模型完全一致。
3.2 使用说明
- 通用人像分割任务的场景变化很大,官方建议先根据实际场景评估模型精度是否达标;
- 若精度满足业务要求,可直接应用;
- 若不满足,可收集并标注自有数据,基于开源通用人像分割模型(Checkpoint)进行Finetune,以适配特定场景。
四、三类下载产物深度辨析:Checkpoint、Argmax 与 Softmax 推理模型
下载表中每一行都提供了三种模型产物,理解它们之间的差异是正确选型的前提:
| 产物 | 文件性质 | 输出通道/类型 | 适用场景 |
|---|---|---|---|
| Checkpoint | 训练权重(需配合 yml 配置文件) | 训练时的 logits 输出 | Finetune 微调、评估(val)、自定义导出 |
| Inference Model (Argmax) | 可直接部署的预测模型 | 单通道 int64,人像=1、背景=0 | 对延迟最敏感、只需硬分割掩码的场景 |
| Inference Model (Softmax) | 可直接部署的预测模型 | 单通道 float32,0~1 的人像概率 | 需要平滑边缘的图像融合/换背景场景 |
其中 Argmax 与 Softmax 的区别来自模型导出阶段算子选择。从 introduction_cn.ipynb 的导出示例可以看到,PaddleSeg 的export.py通过参数控制模型末端算子:
python ../../export.py \ --config configs/human_pp_humansegv2_lite.yml \ --model_path pretrained_models/human_pp_humansegv2_lite_192x192_pretrained/model.pdparams \ --save_dir output/human_pp_humansegv2_lite \ --without_argmax \ --with_softmax使用--without_argmax --with_softmax导出时,模型末端不添加 Argmax 算子而是添加 Softmax 算子,输出为浮点概率,使图像融合的边缘更为平滑;反之,默认导出会添加 Argmax 算子,输出离散的 0/1 掩码,推理更快但边缘为硬边界。
部署选型建议:
- 仅需把人像抠出来做二值掩码(如背景替换后无需边缘羽化)→ 选 Argmax 版,推理开销最小;
- 需要人像与背景平滑融合(如视频会议换背景、滤镜叠加)→ 选 Softmax 版,边缘质量更高。
五、使用流程与最佳实践
5.1 开箱即用的部署路径
以本仓库 APP/app.py 中的 Gradio 部署示例为例,其推理流程完整展示了"下载模型 → 预处理 → PaddleInference 推理 → 后处理输出 RGBA"的链路:
- 下载推理模型:示例中自动下载
portrait_pp_humansegv2_lite_256x144_inference_model_with_softmax.zip(即上表 V2-Lite 肖像模型的 Softmax 推理版)并解压,得到包含deploy.yaml、*.pdmodel、*.pdiparams的推理目录; - 预处理:代码中
_preprocess将图像resize到 (256, 144),再执行(img / 255 - 0.5) / 0.5归一化,最后转为 CHW 并增加 batch 维度——这正是肖像模型 16:9 最佳输入尺寸的实际落地; - 推理:基于 Paddle Inference 的
Config/create_predictorAPI 加载模型,CPU 下默认开启内存优化(enable_memory_optim)与 IR 优化(switch_ir_optim),线程数设为 10; - 后处理:取输出通道中的人像通道
results[0, 1, :, :],resize回原图尺寸后与原始 RGB 图像concatenate为 RGBA,得到可直接用于换背景的透明通道人像。
该示例对应的应用配置见 APP/app.yml(Gradio SDK 3.4.1、CPU 设备、Apache-2.0 协议),运行依赖见 APP/requirement.txt(gradio、paddlepaddle、opencv-python、pyyaml、paddleseg)。
5.2 快速体验命令(PaddleSeg 官方流程)
安装 PaddleSeg(要求 PaddlePaddle >= 2.2.0,教程在 2.3.2 版本下验证)并进入contrib/PP-HumanSeg目录后,可执行:
# 下载推理模型与测试数据 python src/download_inference_models.py python src/download_data.py # 半身人像 + 背景融合(横屏) python src/seg_demo.py \ --config inference_models/portrait_pp_humansegv2_lite_256x144_inference_model_with_softmax/deploy.yaml \ --img_path data/images/portrait_heng.jpg \ --bg_img_path data/images/bg_2.jpg \ --save_dir data/images_result/portrait_heng_v2_withbg.jpg # 竖屏场景(增加 --vertical_screen 参数) python src/seg_demo.py \ --config inference_models/portrait_pp_humansegv2_lite_256x144_inference_model_with_softmax/deploy.yaml \ --img_path data/images/portrait_shu.jpg \ --bg_img_path data/images/bg_1.jpg \ --save_dir data/images_result/portrait_shu_v2_withbg.jpg \ --vertical_screen5.3 Finetune 微调路径(当通用模型不满足业务要求时)
PaddleSeg 在contrib/PP-HumanSeg/configs/下提供了全部模型的训练配置(human_pp_humansegv1_lite.yml、human_pp_humansegv2_lite.yml、human_pp_humansegv1_mobile.yml、human_pp_humansegv2_mobile.yml、human_pp_humansegv1_server.yml、portrait_pp_humansegv1_lite.yml、portrait_pp_humansegv2_lite.yml),配置中已通过pretrained字段指向预训练权重。典型微调命令:
export CUDA_VISIBLE_DEVICES=0 python ../../train.py \ --config configs/human_pp_humansegv2_lite.yml \ --save_dir output/human_pp_humansegv2_lite \ --save_interval 100 --do_eval --use_vdl训练完成后可依次执行val.py评估、predict.py单图预测、export.py导出部署模型(导出时按需选择--without_argmax --with_softmax)。
六、源码级佐证:PaddleCV 流水线中的 PP-HumanSegV2
本仓库的 PaddleCV 组件同样内置了 PP-HumanSegV2 的接入配置,可作为"下载模型 → 配置流水线"的另一种落地参考。
在 paddlecv/configs/single_op/PP-HumanSegV2.yml 中,SegmentationOp的预处理与下载文档中的最佳输入尺寸完全对应:
MODEL: - SegmentationOp: name: seg param_path: paddlecv://models/PP_HumanSegV2_256x144_with_Softmax/model.pdiparams model_path: paddlecv://models/PP_HumanSegV2_256x144_with_Softmax/model.pdmodel batch_size: 8 PreProcess: - Resize: target_size: [256, 144] - Normalize: scale: 0.00392157 mean: [0.5, 0.5, 0.5] std: [0.5, 0.5, 0.5] order: '' - ToCHWImage - ExpandDim PostProcess: - SegPostProcess其中Resize目标尺寸为 [256, 144](与表 1 中 PP-HumanSegV2-Lite 肖像模型的最佳输入尺寸一致),scale: 0.00392157即 1/255,配合 mean/std 0.5 对应(img/255 - 0.5)/0.5的归一化方式。流水线底层实现在 paddlecv/ppcv/ops/models/segmentation/inference.py:SegmentationOp按batch_size分批量执行"预处理 → 模型推理 → 后处理",后处理算子SegPostProcess(见 postprocess.py)将推理输出包装为seg_map结果键,供上层HumanSegOutput输出模块消费。
七、FastDeploy 高性能部署(可选)
如需在 X86 CPU、NVIDIA GPU 等硬件上获得端到端优化加速,可参考本仓库 fastdeploy_cn.md 的 FastDeploy 三步部署流程:
# 1. 安装 FastDeploy 预编译包 pip install fastdeploy-gpu-python==0.0.0 -f https://www.paddlepaddle.org.cn/whl/fastdeploy_nightly_build.html # 2. 下载 PP_HumanSegV2_Lite_192x192 推理模型与测试图片 wget https://bj.bcebos.com/paddle2onnx/libs/PP_HumanSegV2_Lite_192x192_infer.tgz tar -xvf PP_HumanSegV2_Lite_192x192_infer.tgz # 3. CPU / GPU / GPU+TensorRT 推理 python infer.py --model PP_HumanSegV2_Lite_192x192_infer --image cityscapes_demo.png --device cpu python infer.py --model PP_HumanSegV2_Lite_192x192_infer --image cityscapes_demo.png --device gpu python infer.py --model PP_HumanSegV2_Lite_192x192_infer --image cityscapes_demo.png --device gpu --use_trt True注意:GPU 上首次使用 TensorRT 推理会有序列化模型的操作,需要耐心等待;文档默认已准备好 GPU 环境(如 CUDA >= 11.2)。
八、总结与选型速查
| 需求场景 | 推荐模型 | 下载选择 | 关键点 |
|---|---|---|---|
| 手机/Web 实时半身人像分割(横屏或竖屏) | PP-HumanSegV2-Lite(256x144) | Softmax 推理模型 | 16:9 输入、人像保持竖直、约 15.9ms/帧 |
| 通用人像分割,精度优先 | PP-HumanSegV1/V2-Server(512x512) | Argmax 或 Softmax 推理模型 | V100+TRT 下约 24.9ms |
| 通用人像分割,端侧部署 | PP-HumanSegV1/V2-Lite 或 Mobile(192x192) | 推理模型 | 手机端约 12~15ms |
| 针对自有场景微调 | 任一 Checkpoint | Checkpoint + 对应 yml 配置 | 用train.py微调、export.py按需导出 |
核心要点回顾:下载时先区分 Checkpoint(用于微调)与 Inference Model(用于部署);部署时按是否需要平滑边缘选择 Argmax 版(int64 硬掩码)或 Softmax 版(float32 概率);肖像模型建议固定最佳输入尺寸开箱即用,通用模型务必在真实业务场景中先评估精度,必要时基于开源权重 Finetune。相关模型的学术引用可参考 PP-HumanSeg 论文(Chu et al.,PP-HumanSeg: Connectivity-Aware Portrait Segmentation With a Large-Scale Teleconferencing Video Dataset, WACV Workshops 2022,见 introduction_cn.ipynb)。
- 人工智能
- 深度学习
- 计算机视觉
- NLP
- 语音
【免费下载链接】models
Officially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.
相关推荐
PP-HumanSegV2 实时人像分割 Benchmark 全解析:精度指标、推理速度与多端部署实践
PP HumanSegV2 实时人像分割 Benchmark 全解析:精度指标、推理速度与多端部署实践 本文以 models 仓库中 PP HumanSegV2
人工智能深度学习计算机视觉NLP语音PP-HumanSeg人像分割实战指南:模型选型、快速推理与微调部署全流程
PP HumanSeg人像分割实战指南:模型选型、快速推理与微调部署全流程 PP HumanSeg 是 PaddleSeg 开源自研的人像分割系列模型,覆盖 肖
人工智能计算机视觉预训练PaddleSeg Web 前端部署:PP-HumanSeg v1 人像分割模型与 Paddle.js humanseg JS 接口实战指南
PaddleSeg Web 前端部署:PP HumanSeg v1 人像分割模型与 Paddle.js humanseg JS 接口实战指南 本篇指南围绕 Pa
人工智能计算机视觉预训练
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考