首页/新闻资讯/正文详情

PaddleSeg 中 PP-HumanSeg v1 的 Web 前端部署:基于 Paddle.js 的浏览器端人像分割与可视化

发布时间:2026/9/25 17:56:48 来源:云帆数科 栏目:资讯中心
PaddleSeg 中 PP-HumanSeg v1 的 Web 前端部署:基于 Paddle.js 的浏览器端人像分割与可视化
人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载本文基于 PaddleSeg 仓库中 FastDeploy 语义分割方向的 Web 部署文档deploy/fastdeploy/semantic_segmentation/web/README.md系统讲解如何在浏览器端使用 Paddle.js 前端推理引擎部署 PP-HumanSeg v1 人像分割模型从运行 deploy/web/example 官方示例到load/getGrayValue/drawMask/drawHumanSeg/blurBackground五个 JS 接口的完整参数说明。读完本文你可以直接在本地起一个可交互的人像分割 Web Demo并掌握替换背景、提取二值蒙版、背景虚化等前端可视化能力的调用方式。1. 模型版本与前端部署定位PaddleSeg 仓库中该部署文档明确标注Web 端使用的 PP-HumanSeg v1 模型对应PP-HumanSeg Release/2.6版本即 contrib/PP-HumanSeg 目录下的发布模型。前端部署的核心链路是模型侧将 PP-HumanSeg 导出为可在浏览器加载的 Web 模型默认模型地址为humanseg_398x224_fuse_activation/model.json即输入分辨率 398x224 的融合激活模型运行时侧使用前端推理引擎Paddle.js及其 WebGL 计算后端通过浏览器 GPU 加速完成推理应用侧封装好的 npm 包humanseg暴露 JS 接口业务代码无需关心推理引擎与计算方案的集成细节。从仓库中的导出配置 configs/pp_humanseg_lite/pp_humanseg_lite_export_398x224.yml 可以印证 Web 模型的前处理规格model: type: PPHumanSegLite align_corners: False num_classes: 2 val_dataset: type: Dataset dataset_root: data/mini_supervisely val_path: data/mini_supervisely/val.txt num_classes: 2 transforms: - type: Resize target_size: [398, 224] - type: Normalize mode: val可以看到 Web 模型对应的正是PPHumanSegLite结构、二分类人像/背景、Resize到 398x224 加Normalize的标准预处理流程——这与 JS 接口load()默认配置中的mean: [0.5, 0.5, 0.5]、std: [0.5, 0.5, 0.5]以及默认模型路径中的398x224分辨率完全对应。2. 快速上手运行 PaddleSeg 官方 Web Demo仓库提供了可直接运行的 Web 示例 deploy/web/example其使用说明与 docs/deployment/web/web.md 中的 Web 部署文档一致deploy/web/README.md 也指向了该文档。2.1 环境要求安装 Node.js并在命令行执行node -v验证安装成功示例基于 webpack TypeScript 构建依赖均通过 npm 安装无需额外配置浏览器环境仅需支持 WebGL 的现代浏览器。2.2 运行步骤# 进入 PaddleSeg 仓库中的 Web 示例目录并安装依赖 cd deploy/web/example/ npm install # 启动开发服务器 npm run dev # 访问 http://0.0.0.0:8866/ 体验人像分割与背景处理端口与地址来自示例的构建配置 deploy/web/example/webpack.config.jsdevServer指定host: 0.0.0.0、port: 8866npm run dev即执行webpack-dev-server见 deploy/web/example/package.json 中 scripts 配置。2.3 依赖与构建结构从 deploy/web/example/package.json 可以看到 Web 侧的关键依赖组合dependencies: { paddlejs-mediapipe/opencv: ^1.0.0, paddlejs-models/humanseg: ^0.0.8, paddlejs/paddlejs-backend-webgl: ^1.0.1, paddlejs/paddlejs-core: ^2.0.1 }paddlejs-models/humansegPP-HumanSeg 的模型封装包业务代码直接 import 即可无需单独引入推理引擎与计算方案paddlejs/paddlejs-backend-webglpaddlejs/paddlejs-core底层推理引擎与 WebGL GPU 加速计算方案由 humanseg 包封装依赖paddlejs-mediapipe/opencv提供浏览器端 OpenCV 能力供图像画布处理使用。2.4 示例代码流程解析示例入口 deploy/web/example/index.ts 展示了完整的前端推理调用链import * as humanseg from paddlejs-models/humanseg; async function load() { await humanseg.load(); document.getElementById(loading)!.style.display none; } load(); async function run(input) { const { data } await humanseg.getGrayValue(input); humanseg.drawHumanSeg(canvas1, data); // 人像替换背景画到 canvas1 humanseg.drawMask(canvas2, data, true); // 二值蒙版深色模式画到 canvas2 }流程说明加载阶段页面加载时立即调用humanseg.load()初始化推理引擎、下载并构建网络、完成模型预热warm-up加载完成后隐藏index.html中的loading遮罩层见 deploy/web/example/index.html页面包含两个输出画布demo1/demo2和一个文件选择框uploadImg推理阶段用户通过文件选择框上传图片示例用FileReader.readAsDataURL将文件读入img元素onload后触发run(img)可视化阶段getGrayValue(input)返回的{ data }即分割灰度值序列随后分别传给drawHumanSeg把分割出的人像合成到传入画布携带的背景上实现背景替换和drawMask绘制人像/背景二值蒙版第三个参数dark控制是否使用深色模式。3. PP-HumanSeg v1 JS 接口参考以下接口说明完整继承自 deploy/fastdeploy/semantic_segmentation/web/README.md。文档原文给出的调用骨架如下import * as humanSeg from paddle-js-models/humanseg; # Load and initialise model await humanSeg.load(Config); # Portrait segmentation const res humanSeg.getGrayValue(input) # Extract the binary map of portrait and background humanSeg.drawMask(res) # Visualization function for background replacement humanSeg.drawHumanSeg(res) # Blur background humanSeg.blurBackground(res)各函数参数与返回值说明3.1 load(Config)Config (dict)PP-Humanseg 模型配置参数默认值为{ modelpath: https://paddlejs.bj.bcebos.com/models/fuse/humanseg/humanseg_398x224_fuse_activation/model.json, mean: [0.5, 0.5, 0.5], std: [0.5, 0.5, 0.5], enableLightModel: false }参数含义参数说明modelpathWeb 模型文件地址默认指向 398x224 融合激活的 PP-HumanSeg js 模型可替换为自行导出的模型mean/std图像预处理的均值与标准差默认[0.5, 0.5, 0.5]与训练/导出侧Normalize保持一致enableLightModel是否启用更轻量的模型变体默认falseload负责完成推理引擎初始化下载人像分割 Web 模型、按模型结构与参数文件生成神经网络、并完成模型预热因此应放在页面早期以await方式等待其完成参考 deploy/web/example/index.ts 中load()先行执行并在完成后隐藏加载遮罩的写法。3.2 getGrayValue(input)input (HTMLImageElement | HTMLVideoElement | HTMLCanvasElement)输入图像支持图片、视频帧或画布元素因此该接口同样可用于视频流场景返回分割灰度值序列data仓库示例中通过const { data } await humanseg.getGrayValue(input)解构获取作为后续三个可视化函数的输入。3.3 drawMask(seg_values)seg_values (number[])一般为getGrayValue的计算结果绘制人像与背景的二值蒙版到传入的 canvas 元素上仓库示例中额外传入了第三个参数true深色模式humanseg.drawMask(canvas2, data, true)见 deploy/web/example/index.ts 第 27 行与 docs/deployment/web/web.md 的 API 说明。3.4 drawHumanSeg(seg_values)seg_values (number[])一般为getGrayValue的计算结果用于替换背景的可视化函数传入携带背景信息的 canvas 元素与分割结果分割出的人像会被合成绘制到该画布上。3.5 blurBackground(seg_values)seg_values (number[])一般为getGrayValue的计算结果背景虚化在分割结果上对背景区域施加模糊效果保留人像清晰常用于人像美化的视频/图像处理场景。4. 实践要点与注意事项npm 包名差异关联文档接口示例中 import 的是paddle-js-models/humanseg而仓库可运行示例 deploy/web/example 实际依赖的是paddlejs-models/humanseg0.0.8 版本见 deploy/web/example/package.json。两者为不同时期发布的封装包接入时以你所安装版本对应文档为准仓库示例代码index.ts采用paddlejs-models/humanseg且经过示例工程验证可作为最稳妥的参考实现。异步调用load与getGrayValue均为async接口必须await其完成后再进行后续绘制模型下载与预热耗时取决于网络与设备性能建议像示例一样提供加载状态提示。运行环境推理依赖 WebGL 加速的浏览器端 GPU 计算方案建议在支持 WebGL 的桌面/移动浏览器文档以 macOS Chrome 为验证环境上运行npm run dev启动后访问http://0.0.0.0:8866/端口由 webpack.config.js 固定配置。自定义模型若需使用自行训练的 PP-HumanSeg 模型可参照 configs/pp_humanseg_lite 下的导出配置398x224、Normalize完成导出再将load(Config)的modelpath指向自导出的 Web 模型文件同时保持mean/std与导出侧预处理一致。能力边界该前端方案面向二分类人像分割num_classes: 2见导出配置输出为灰度值序列适用于人像替换背景、蒙版提取、背景虚化等人像处理类前端功能多类别语义分割的 Web 部署需要另行适配模型与后处理。5. 参考文件索引内容路径本文关联文档英文/中文deploy/fastdeploy/semantic_segmentation/web/README.md、deploy/fastdeploy/semantic_segmentation/web/README_CN.mdWeb 部署操作指南docs/deployment/web/web.md、docs/deployment/web/web_cn.md可运行 Web 示例deploy/web/exampleindex.ts、index.html、package.json、webpack.config.jsWeb 部署入口说明deploy/web/README.md398x224 导出配置configs/pp_humanseg_lite/pp_humanseg_lite_export_398x224.yml人像分割模型目录contrib/PP-HumanSeg赞分享人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载相关推荐PaddleSeg 人像分割模型在 Rockchip RKNPU2 上的部署PP-HumanSeg 转 RKNN 与 FastDeploy 推理实战PaddleSeg 人像分割模型在 Rockchip RKNPU2 上的部署PP HumanSeg 转 RKNN 与 FastDeploy 推理实战 本文以人工智能计算机视觉预训练企业级多语言解决方案Weblate完整指南企业级多语言解决方案Weblate完整指南 在全球化竞争日益激烈的今天 高效的多语言本地化管理 已成为企业拓展国际市场的关键能力。Weblate作为业界领先人工智能计算机视觉预训练PaddleSeg PP-HumanSeg 模型转 RKNN 实战基于 FastDeploy 的 RKNPU2 部署完整流程PaddleSeg PP HumanSeg 模型转 RKNN 实战基于 FastDeploy 的 RKNPU2 部署完整流程 PaddleSeg 的人像分割模人工智能计算机视觉预训练上一篇Automatisch 连接 MailchimpOAuth 应用注册与连接配置实战指南下一篇Search Results: [Query]创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

第44篇-Web应用系统分析与设计
第44篇-Web应用系统分析与设计

【软考高级系统分析师全链路通关实战】第 44 篇:Web 应用系统分析与设计 本系列定位:面向有开发经验、从零备考软考高级「系统分析师」的工程师,以《系统分析师教程(第 2 版)》为主线,按「综合知识 → 案例… · 2026/9/25 17:56:42

第43篇-系统转换运行与维护-遗留系统与系统评价
第43篇-系统转换运行与维护-遗留系统与系统评价

【软考高级系统分析师全链路通关实战】第 43 篇:系统转换、运行与维护——遗留系统与系统评价 本系列定位:面向有开发经验、从零备考软考高级「系统分析师」的工程师,以《系统分析师教程(第 2 版)》为主线,… · 2026/9/25 17:56:36

第40篇-设计模式在系统设计中的应用
第40篇-设计模式在系统设计中的应用

【软考高级系统分析师全链路通关实战】第 40 篇:设计模式在系统设计中的应用 本系列定位:面向有开发经验、从零备考软考高级「系统分析师」的工程师,以《系统分析师教程(第 2 版)》为主线,按「综合知识 → … · 2026/9/25 17:56:30

小模型能当裁判吗?一场关于强化学习奖励成本的实验
小模型能当裁判吗?一场关于强化学习奖励成本的实验

先问你一个问题。如果你要训练一个AI模型写深度研究报告,怎么判断它写得好不好?数学题有标准答案,代码题能跑测试用例,可一篇论文该不该给9分还是7分,谁说了算?过去几年,大模型圈子里流行的做法… · 2026/9/25 18:25:27

数据闭环分层抽帧策略从 TB 级采集数据中提取高价值帧:三道成本闸门
数据闭环分层抽帧策略从 TB 级采集数据中提取高价值帧:三道成本闸门

上一篇讲完了挖掘平台的架构骨架,从这篇开始填血肉。平台拿到采集数据后做的第一件事是「抽帧」——把视频形态的 clip 变成一张张图片。为什么必须做这一步?因为下游所有能力都是「认图不认视频」的:VLM 推理要喂图片,Embedding … · 2026/9/25 18:25:27

Atlas 300V 24G推理卡实战:从CANN环境搭建到YOLOv5模型部署全流程
Atlas 300V 24G推理卡实战:从CANN环境搭建到YOLOv5模型部署全流程

先给结论:Atlas 300V 24G确实是一张“运算加速卡”,但你要是拿它当普通图形卡用,就完全理解偏了。它是一张面向AI推理场景的加速卡,最近“atlas部署yolo”这么热,主要还是因为这卡性价比够看、国产化适配到位&#xff… · 2026/9/25 18:25:27

把已经跑过的智能体聊天记录,重新变成能用的编程练习场
把已经跑过的智能体聊天记录,重新变成能用的编程练习场

2014 年,语音识别领域有一件让所有人挠头的事:训练一个能听懂人说话的模型,需要成千上万小时的标注音频。可标注音频这东西,贵、慢、还容易出错。十年后,AI 编程智能体(就是那种能在命令行里帮你写代码、修… · 2026/9/25 18:25:27

DM0.5连续霸榜各大评测,具身预训练的价值正在显现
DM0.5连续霸榜各大评测,具身预训练的价值正在显现

具身智能的榜单越来越多,模型成绩也在不断刷新。 相比于看谁拿第一,另一个问题更值得关注:这些榜单,究竟在向机器人提出什么要求? 同样是抓起一个物体,但完成抓取只是第一层。如果指令指定了颜色、大小&a… · 2026/9/25 18:25:21

不用协方差矩阵也能算风险?AI读财经新闻给出的一份“风险担保书“
不用协方差矩阵也能算风险?AI读财经新闻给出的一份“风险担保书“

你有没有想过一个问题:一个基金经理想要分散风险,把钱分散投资到52只不同的股票上,理论上他需要知道的是什么?不是每只股票自己涨跌多少,而是它们**一起**涨跌的规律。用金融行话说,这叫协方差矩阵。可这东… · 2026/9/25 18:25:21

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码