ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

PaddleSeg Matting 模型全场景高性能部署实战:基于 FastDeploy 打通 CPU/GPU/昆仑芯/昇腾

PaddleSeg Matting 模型全场景高性能部署实战:基于 FastDeploy 打通 CPU/GPU/昆仑芯/昇腾 人工智能计算机视觉预训练【免费下载链接】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 的 Image Matting精细化抠图系列模型PP-Matting、PP-HumanMatting、MODNet 等可通过 FastDeploy 推理部署工具在 NVIDIA GPU、X86 CPU、飞腾 CPU、ARM CPU、Intel GPU独立/集成显卡、昆仑芯 XPU、华为昇腾等 10 款硬件上完成快速部署并支持 Paddle Inference、Paddle Lite、TensorRT、OpenVINO、ONNXRuntime 等多种推理后端。本文将围绕 deploy/fastdeploy/matting/kunlunxin/README.md 给出的部署方案完整介绍预导出模型的使用、自行导出 PaddleSeg 部署模型的流程以及 Python 与 C 两套部署示例的从零到一实战帮助你在一台机器上以最小的代码改动实现跨硬件迁移。1. 方案概述什么是 Matting 模型全场景部署Image Matting 指通过计算前景颜色与透明度Alpha 值把前景从影像中精确分离出来的技术其结果可用于背景替换、影像合成与视觉特效。PaddleSeg 在 Matting 目录下开源了高精度 PP-Matting、轻量级 PP-MattingV2、PP-HumanMatting 以及 MODNet、DIM 等模型。本方案的核心是使用 FastDeploy 作为推理运行时一处代码、多端运行同一份推理代码Python 或 C通过切换 RuntimeOption 即可在 NVIDIA GPU、X86 CPU、飞腾 CPU、ARM CPU、Intel GPU、昆仑芯、昇腾上运行自动读取预处理配置FastDeploy 直接从 PaddleSeg 导出的deploy.yaml中获取input_shape与预处理transforms信息无需手工复写预处理逻辑多后端引擎可选支持 Paddle Inference、TensorRT含 Paddle-TensorRT、OpenVINO、ONNXRuntime 等可按硬件与性能需求切换。从仓库结构看deploy/fastdeploy/matting 下按硬件分列了 cpu-gpu、kunlunxin、ascend 三个部署入口本文所述文档即为昆仑芯Kunlunxin入口但其内容同样覆盖其他硬件的通用流程。2. 使用预导出的模型列表开箱即用为了方便开发者快速验证仓库提供了 PP-Matting 系列已导出的推理模型压缩包可直接下载解压使用。这些模型的精度指标来自 PP-Matting 对各模型的介绍原始文档未提供精度数据详情可参考 Matting/README_CN.md 中的模型库表格。模型参数大小精度备注PP-Matting-512106MB-高精度抠图输入 512x512PP-Matting-1024106MB-高精度抠图输入 1024x1024PP-HumanMatting247MB-高分辨率人像抠图Modnet-ResNet50_vd355MB-MODNet 系列主干 ResNet50_vdModnet-MobileNetV228MB-MODNet 轻量系列主干 MobileNetV2Modnet-HRNet_w1851MB-MODNet 系列主干 HRNet_w18注意每个压缩包内的deploy.yaml文件记录了导出模型的input_shape以及预处理信息。若你的实际输入尺寸或预处理要求与默认配置不一致可参考第 3 节自行重新导出模型。3. 自行导出 PaddleSeg 部署模型3.1 支持的模型版本支持 PaddleSeg 高于 2.6 版本的 Matting 模型FastDeploy 中已测试过的模型系列PP-Matting 系列、PP-HumanMatting 系列、MODNet 系列均可参考 Matting 下的模型与配置。3.2 模型导出命令与产物结构PaddleSeg 的 Matting 模型导出入口为 Matting/tools/export.py典型命令如下python tools/export.py \ --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \ --model_path output/best_model/model.pdparams \ --save_dir output/export \ --input_shape 1 3 512 512如果模型需要 trimap 输入例如 DIM 模型需追加--trimap参数更多参数可运行python tools/export.py --help查看。从 export.py 源码 可以看到导出流程的关键实现未指定--input_shape时默认导出动态 shape[None, 3, None, None]指定后则固定 shape如1 3 512 512默认导出产物为三个文件model.pdmodel、model.pdiparams、deploy.yamldeploy.yaml由导出脚本自动生成结构包含Deploy: transforms: # 来自验证集 transforms 的预处理配置默认 Normalize model: model.pdmodel params: model.pdiparams input_shape: [1, 3, 512, 512] ModelName: PPMattingFastDeploy 推理时正是从该 yaml 文件中解析出模型推理所需的预处理信息因此导出的目录结构是后续所有部署示例的输入前提。3.3 导出模型的本地验证导出完成后可先用 PaddleSeg 自带的推理脚本验证导出产物正确性python deploy/python/infer.py \ --config output/export/deploy.yaml \ --image_path data/PPM-100/val/fg/ \ --save_dir output/results \ --fg_estimate True如模型需要 trimap 信息通过--trimap_path传入 trimap 路径--fg_estimate False可关闭前景估计功能以提升预测速度图像质量会有所降低传入--video_path可进行视频抠图。4. Python 部署示例CPU/GPU/昆仑芯/昇腾4.1 部署环境准备确认软硬件环境后下载 FastDeploy 预编译部署库只有 CPU、GPU 提供预编译库昆仑芯、昇腾需要参考 FastDeploy 文档自行编译部署环境准备推理模型可选择 预导出的推理模型或按第 3 节自行导出。4.2 下载示例与测试资源git clone https://github.com/PaddlePaddle/PaddleSeg.git # 如果当前分支找不到 fastdeploy 测试代码请切换到 develop 分支 # git checkout develop cd PaddleSeg/deploy/fastdeploy/matting/cpu-gpu/python # 下载 PP-Matting 模型文件和测试图片 wget https://bj.bcebos.com/paddlehub/fastdeploy/PP-Matting-512.tgz tar -xvf PP-Matting-512.tgz wget https://bj.bcebos.com/paddlehub/fastdeploy/matting_input.jpg wget https://bj.bcebos.com/paddlehub/fastdeploy/matting_bgr.jpg4.3 运行推理# CPU 推理 python infer.py --model PP-Matting-512 --image matting_input.jpg --bg matting_bgr.jpg --device cpu # GPU 推理 python infer.py --model PP-Matting-512 --image matting_input.jpg --bg matting_bgr.jpg --device gpu # GPU 上使用 TensorRT 推理首次运行有序列化模型的操作耗时较长请耐心等待 python infer.py --model PP-Matting-512 --image matting_input.jpg --bg matting_bgr.jpg --device gpu --use_trt True # 昆仑芯 XPU 推理 python infer.py --model PP-Matting-512 --image matting_input.jpg --bg matting_bgr.jpg --device kunlunxin4.4 源码解读infer.py 的关键调用链示例脚本为 infer.py核心逻辑分为三部分参数解析parse_arguments--model指定模型目录、--image/--bg指定原图与背景图、--device支持cpu/gpu/kunlunxin、--use_trt控制是否启用 TensorRT运行时配置build_optiondef build_option(args): option fd.RuntimeOption() if args.device.lower() gpu: option.use_gpu() option.use_paddle_infer_backend() if args.use_trt: option.use_trt_backend() option.enable_paddle_to_trt() # 使用 Paddle-TensorRT option.enable_paddle_trt_collect_shape() option.set_trt_input_shape(img, [1, 3, 512, 512]) if args.device.lower() kunlunxin: option.use_kunlunxin() return option模型加载与预测从模型目录拼接model.pdmodel、model.pdiparams、deploy.yaml三个路径构造fd.vision.matting.PPMatting随后model.predict(im)得到MattingResult最后用fd.vision.vis_matting与fd.vision.swap_background完成可视化与背景替换分别输出visualized_result_fg.png与visualized_result_replaced_bg.jpg。昆仑芯迁移要点--device kunlunxin对应option.use_kunlunxin()。而若要在华为昇腾上部署只需将option.use_kunlunxin()改为option.use_ascend()其余代码不变即可。5. C 部署示例CPU/GPU/TensorRT/昆仑芯5.1 编译部署示例以 Linux 为例需 FastDeploy 版本 1.0.0# 下载 FastDeploy 预编译库选择合适的版本 wget https://bj.bcebos.com/fastdeploy/release/cpp/fastdeploy-linux-x64-x.x.x.tgz tar xvf fastdeploy-linux-x64-x.x.x.tgz # 下载部署示例代码 git clone https://github.com/PaddlePaddle/PaddleSeg.git cd PaddleSeg/deploy/fastdeploy/matting/cpu-gpu/cpp # 编译 mkdir build cd build cmake .. -DFASTDEPLOY_INSTALL_DIR${PWD}/fastdeploy-linux-x64-x.x.x make -j5.2 下载模型与测试资源并运行# 回到示例目录下载模型与图片 wget https://bj.bcebos.com/paddlehub/fastdeploy/PP-Matting-512.tgz tar -xvf PP-Matting-512.tgz wget https://bj.bcebos.com/paddlehub/fastdeploy/matting_input.jpg wget https://bj.bcebos.com/paddlehub/fastdeploy/matting_bgr.jpg # 最后一个参数为运行模式0CPU1GPU2GPUTensorRT3昆仑芯 ./infer_demo PP-Matting-512 matting_input.jpg matting_bgr.jpg 0 # CPU ./infer_demo PP-Matting-512 matting_input.jpg matting_bgr.jpg 1 # GPU ./infer_demo PP-Matting-512 matting_input.jpg matting_bgr.jpg 2 # GPU TensorRT ./infer_demo PP-Matting-512 matting_input.jpg matting_bgr.jpg 3 # 昆仑芯 XPU5.3 源码解读infer.cc 的多后端实现示例源码为 infer.cc内部按运行模式分派到四个函数CpuInferoption.UseCpu()对应模式 0GpuInferoption.UseGpu()option.UsePaddleInferBackend()对应模式 1TrtInferoption.UseGpu()option.UseTrtBackend()并通过EnablePaddleToTrt()、EnablePaddleTrtCollectShape()、SetTrtInputShape(img, {1, 3, 512, 512})启用 Paddle-TensorRT对应模式 2KunlunXinInferoption.UseKunlunXin()对应模式 3。每个函数的公共流程一致拼接三件套路径model.pdmodel、model.pdiparams、deploy.yaml→ 构造fastdeploy::vision::matting::PPMatting→model.Initialized()校验 →model.Predict(im, res)→VisMatting/SwapBackground输出前景图与换背景图。昇腾迁移要点与 Python 侧同理只需将KunlunXinInfer中的option.UseKunlunXin()改为option.UseAscend()即可完成华为昇腾上的推理部署。Windows 下 C SDK 的使用方式与 Linux/macOS 略有差异请参考 FastDeploy 官方 FAQ 中关于 Windows SDK 的说明。6. 常见问题与进一步阅读常见问题如何将模型预测结果如MattingResult转为 numpy 格式见 FastDeploy FAQ 中视觉结果相关章节如何切换模型推理后端引擎见 FastDeploy FAQ 中后端切换章节Intel GPU独立显卡/集成显卡的使用方式见 FastDeploy tutorials 中 Intel GPU 说明编译 CPU/GPU/Jetson 部署库见 FastDeploy 构建与安装文档中对应章节。仓库内进一步阅读模型与指标总览Matting/README_CN.md含 PP-MattingV2/PP-Matting/PP-HumanMatting/MODNet/DIM 的 SAD、MSE、Grad、Conn 指标与配置文件硬件支持总览与更多入口deploy/fastdeploy/matting/README.mdCPU/GPU 部署示例Python 示例、C 示例昇腾部署入口deploy/fastdeploy/matting/ascend/README.md模型导出实现Matting/tools/export.py训练/推理全流程文档Matting/docs/full_develop_cn.md。7. 小结整体部署流程可归纳为三步准备模型预导出或自行导出→ 配置运行环境预编译库或自编译→ 按目标硬件切换 RuntimeOption 运行示例。无论是 Python 还是 C昆仑芯、昇腾等非主流硬件的接入都只需修改一行运行时配置代码deploy.yaml作为模型与推理引擎之间的契约文件保证了预处理与输入 shape 的自动对齐。这套方案让同一套 Matting 推理代码在云、边、端多类硬件上保持高度一致显著降低了抠图业务的部署与迁移成本。赞分享人工智能计算机视觉预训练【免费下载链接】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 Matting 模型 FastDeploy 全场景部署指南从模型导出到 CPU/GPU/昆仑芯/昇腾推理PaddleSeg Matting 模型 FastDeploy 全场景部署指南从模型导出到 CPU/GPU/昆仑芯/昇腾推理 导读 本文围绕 PaddleSe人工智能计算机视觉预训练Noita、Ocha、Tee、Vestica主题对比哪个gtk-theme-collections主题最适合你Noita、Ocha、Tee、Vestica主题对比哪个gtk theme collections主题最适合你 在Linux桌面美化领域gtk theme人工智能计算机视觉预训练PaddleSeg 语义分割模型在昆仑芯上的 FastDeploy 部署实战指南PaddleSeg 语义分割模型在昆仑芯上的 FastDeploy 部署实战指南 本文以 PaddleSeg 官方文档《PaddleSeg 语义分割模型在昆仑芯人工智能计算机视觉预训练上一篇彻底解决Docker Compose项目间端口冲突从根源分析到实战方案下一篇Dub开源项目常见问题解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表