尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

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

发布时间:2026/9/25 17:56:52

资讯中心
01
ARTICLE

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

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),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。