人工智能计算机视觉预训练【免费下载链接】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 子项目完整讲解抠图Image Matting模型的全开发链路环境安装、PPM-100 数据集准备、配置文件驱动的模型选型、训练与微调Finetune、基于 SAD 等指标的评估、单图/视频预测、前景估计与背景替换以及模型导出和 Python 部署推理。读完本文你将掌握一套可直接复制的命令行实操方案并能理解各工具脚本的底层参数逻辑与指标计算原理。环境准备与仓库安装Matting 模块依赖 PaddlePaddle 深度学习框架其版本要求如下PaddlePaddle 2.0.2Python 3.7由于抠图模型计算量较大官方建议安装 GPU 版本 PaddlePaddle并推荐 CUDA 10.0 及以上版本具体安装方式参见 PaddlePaddle 官方安装教程。安装分为三步克隆仓库、进入 Matting 目录、安装依赖。git clone https://gitcode.com/gh_mirrors/pa/PaddleSeg cd PaddleSeg/Matting pip install paddleseg2.5 pip install -r requirements.txt其中requirements.txt位于 Matting/requirements.txt安装的是 Matting 模块自身的运行依赖。数据集准备使用 PPM-100 快速上手本教程使用 MODNet 开源的 PPM-100 数据集作为演示数据。若要在自己的数据上训练可参考 数据准备文档。下载官方预处理好的 PPM-100 数据集mkdir data cd data wget https://paddleseg.bj.bcebos.com/matting/datasets/PPM-100.zip unzip PPM-100.zip cd ..解压后数据集目录结构如下PPM-100/ |--train/ | |--fg/ | |--alpha/ | |--val/ | |--fg/ | |--alpha | |--train.txt | |--val.txt其中fg存放前景原图alpha存放对应的 alpha 抠图标注透明度通道train.txt与val.txt分别为训练/验证集的样本清单。注意该数据集仅用于教程演示数据量较小直接训练无法收敛出可用的生产级模型正式项目应使用更大规模的数据集。模型选择与配置文件驱动机制Matting 项目采用配置文件直接驱动的设计所有训练、预测、导出等流程都通过 Matting/configs 目录下的 YAML 配置来指定模型结构、数据集与超参数你只需根据实际场景选择合适的配置文件即可执行对应流程。从 ppmatting/models 源码目录结构看Matting 模块内置了多种抠图模型实现包括 DIM、GCA、HumanMatting、MODNet、PPMattingPP-Matting、PPMattingV2PP-MattingV2与 RVM 等。其中基于 trimap 的方法如 DIM需要额外输入三分图不支持视频处理做视频抠图时需选用无需 trimap 的方法。本教程以快速上手配置 configs/quick_start/ppmattingv2-stdc1-human_512.yml 为例进行教学演示。该配置文件的核心内容如下batch_size: 1 iters: 1000 train_dataset: type: MattingDataset dataset_root: data/PPM-100 train_file: train.txt transforms: - type: LoadImages - type: LimitShort max_short: 512 - type: RandomCrop crop_size: [512, 512] - type: Padding target_size: [512, 512] - type: RandomDistort - type: RandomBlur prob: 0.1 - type: RandomSharpen prob: 0.2 - type: RandomNoise prob: 0.5 - type: RandomReJpeg prob: 0.2 - type: RandomHorizontalFlip - type: Normalize mode: train val_dataset: type: MattingDataset dataset_root: data/PPM-100 val_file: val.txt transforms: - type: LoadImages - type: LimitShort max_short: 512 - type: ResizeToIntMult mult_int: 32 - type: Normalize mode: val get_trimap: False model: type: PPMattingV2 backbone: type: STDC1 pretrained: https://bj.bcebos.com/paddleseg/dygraph/PP_STDCNet1.tar.gz decoder_channels: [128, 96, 64, 32, 16] head_channel: 8 dpp_output_channel: 256 dpp_merge_type: add optimizer: type: sgd momentum: 0.9 weight_decay: 5.0e-4 lr_scheduler: type: PolynomialDecay learning_rate: 0.01 end_lr: 0 power: 0.9 warmup_iters: 100 warmup_start_lr: 1.0e-5从 ppmatting/models/ppmattingv2.py 源码可以看到PPMattingV2 以 STDC1 为骨干网络其核心结构包含DoublePyramidPoolModule双金字塔池化模块融合骨干多尺度输出、MLFF多级特征融合解码器以及MRSD、GradientLoss等损失函数。配置中的decoder_channels、dpp_output_channel、dpp_merge_type等字段分别对应解码器各层通道数、DPP 输出通道数以及 DPP 融合方式concat或add。模型训练训练命令与参数说明使用单卡开始训练export CUDA_VISIBLE_DEVICES0 python tools/train.py \ --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \ --do_eval \ --use_vdl \ --save_interval 500 \ --num_workers 5 \ --save_dir output各参数含义如下--config指定配置文件路径--do_eval训练过程中同步进行验证。开启后会降低训练速度并增加显存消耗可按需开关开启时会按 SAD 指标将历史最优模型保存到{save_dir}/best_model同时在该目录生成best_sad.txt记录该时刻的指标与迭代数--use_vdl开启 VisualDL训练过程数据将被记录用于可视化--save_interval每迭代多少轮保存一次模型快照默认 1000--num_workers多进程读取数据加速数据预处理--save_dir模型保存目录默认./output。更多参数可通过以下命令查看源码定义见 tools/train.pypython tools/train.py --help结合 tools/train.py 的参数定义训练脚本还支持以下常用选项--iters、--batch_size、--learning_rate覆盖配置值--opts以 key-value 方式覆盖任意配置项--resume_model断点续训--keep_checkpoint_max控制最多保留的检查点数量默认 5--log_iters控制日志打印间隔默认 10--metrics指定评估指标组合可为sad、mse、grad、conn的组合默认sad--precision支持fp32/fp16选择fp16时启用自动混合精度训练并可用--amp_level选择O1/O2精度级别--seed设置随机种子保证可复现--device指定运行设备GPU、CPU 或 XPU。多卡训练如需使用多 GPU 训练请使用 Paddle 分布式启动方式python -m paddle.distributed.launch tools/train.py \ --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \ --do_eval基于预训练模型的微调Finetune如果想在预训练模型基础上用自有数据微调可修改配置文件中的model.pretrained字段其值可以是预训练权重的 URL 或本地文件路径。这里以官方 PP-MattingV2 预训练模型为例。首先从 Matting/README.md 的 Models 列表下载预训练模型到pretrained_models目录mkdir pretrained_models cd pretrained_models wget https://paddleseg.bj.bcebos.com/matting/models/ppmattingv2-stdc1-human_512.pdparams cd ..然后修改配置文件中的train_dataset.dataset_root、val_dataset.dataset_root、model.pretrained字段同时建议调低学习率其余配置可保持不变train_dataset: type: MattingDataset dataset_root: path/to/your/dataset # Path to your own dataset mode: train val_dataset: type: MattingDataset dataset_root: path/to/your/dataset # Path to your own dataset mode: val model: type: PPMattingV2 backbone: type: STDC1 pretrained: https://bj.bcebos.com/paddleseg/dygraph/PP_STDCNet1.tar.gz decoder_channels: [128, 96, 64, 32, 16] head_channel: 8 dpp_output_channel: 256 dpp_merge_type: add pretrained: pretrained_models/ppmattingv2-stdc1-human_512.pdparams # The pretrained model file just downloaded lr_scheduler: type: PolynomialDecay learning_rate: 0.001 # lr is recommended to be reduced end_lr: 0 power: 0.9 warmup_iters: 1000 warmup_start_lr: 1.0e-5配置完成后按上一节Training的说明即可用你的数据集进行微调训练。模型评估评估命令使用验证集评估模型默认使用配置文件中的验证集export CUDA_VISIBLE_DEVICES0 python tools/val.py \ --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \ --model_path output/best_model/model.pdparams \ --save_dir ./output/results \ --save_results--model_path待评估的模型权重路径--save_dir结果保存目录默认./output/results--save_results开启后保存预测的 alpha 图关闭可加快评估速度--metrics评估指标组合默认sad详见下文。也可直接下载官方提供的预训练模型进行评估。更多参数见 tools/val.py 与命令python tools/val.py --help评估指标SAD / MSE / Grad / Conn评估脚本支持sad、mse、grad、conn四种抠图质量指标其实现在 ppmatting/metrics/metric.pySADSum of Absolute Differences预测 alpha 与真值 alpha 的绝对误差之和归一化后累加数值越小越好MSEMean Squared Error预测与真值的均方误差仅统计 trimap 的未知区域GradGradient使用高斯滤波器默认 σ1.4计算预测与真值的梯度差异衡量边缘细节质量ConnConnectivity通过逐阈值默认步长 0.1计算预测与真值连通区域的差异衡量 alpha 图的结构连通性。这四个指标在提供 trimap 时仅计算未知区域值为 128 的区域未提供时按整图计算。需要说明的是metric.py 头部注释明确指出Grad与Conn的计算结果与 Adobe 的 MATLAB 评估版本存在轻微差异Grad 差异小于 0.1%Conn 约 5%因此不建议在论文中直接报告这两个函数的数值如需发表请使用 Adobe 官方的DIM_evaluation_code/evaluate.m进行评估。预测推理图像预测export CUDA_VISIBLE_DEVICES0 python tools/predict.py \ --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \ --model_path output/best_model/model.pdparams \ --image_path data/PPM-100/val/fg/ \ --save_dir ./output/results \ --fg_estimate True--image_path可以是单张图片路径也可以是包含多张图片的目录源码中通过get_image_list统一收集图片列表见 tools/predict.py--fg_estimate是否估计前景。设为False可提升预测速度但会降低输出图像质量如果模型需要 trimap 信息可通过--trimap_path传入三分图路径可为文件或目录目录时需与图片一一对应。同样可下载官方预训练模型直接预测更多参数见python tools/predict.py --help。视频预测export CUDA_VISIBLE_DEVICES0 python tools/predict_video.py \ --config configs/ppmattingv2/ppmattingv2-stdc1-human_512.yml \ --model_path output/best_model/model.pdparams \ --video_path path/to/video \ --save_dir ./output/results \ --fg_estimate True视频预测使用完整训练配置 configs/ppmattingv2/ppmattingv2-stdc1-human_512.yml该配置为 100k 迭代的正式训练配置其脚本入口为 tools/predict_video.py。注意需要 trimap 输入的模型如 DIM不支持视频预测应选用无需 trimap 的模型如 PPMattingV2。背景替换图像背景替换export CUDA_VISIBLE_DEVICES0 python tools/bg_replace.py \ --config configs/quick_start/ppmattingv2-stdc1-human_512.yml \ --model_path output/best_model/model.pdparams \ --image_path path/to/your/image \ --background path/to/your/background/image \ --save_dir ./output/results \ --fg_estimate True--background可传入背景图片路径也可传入r、g、b、w四个字符之一分别代表红色、绿色、蓝色和白色纯色背景不指定时默认使用绿色背景从 tools/bg_replace.py 的get_bg实现可见当传入背景图片路径时背景会被缩放到与输入图像相同的尺寸cv2.resize到img_shape若传入不存在的路径则抛出异常若模型需要 trimap 信息通过--trimap_path传入--fg_estimate False关闭前景估计提升速度但降低质量注意--image_path必须是一个具体的图像路径不支持目录。合成逻辑在脚本中通过com alpha * fg (1 - alpha) * bg完成即用预测的 alpha 通道对前景fg与新背景bg做线性混合。同样可下载官方模型直接替换背景更多参数见python tools/bg_replace.py --help。视频背景替换export CUDA_VISIBLE_DEVICES0 python tools/bg_replace_video.py \ --config configs/ppmattingv2/ppmattingv2-stdc1-human_512.yml \ --model_path output/best_model/model.pdparams \ --video_path path/to/video \ --background g \ --save_dir ./output/results \ --fg_estimate True视频背景替换与图像版参数一致--background同样支持路径或r/g/b/w纯色字符。模型导出与部署模型导出训练完成后可将动态图模型导出为可用于推理的静态图模型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--input_shape指定导出的固定输入形状如1 3 512 512表示 batch1、3 通道、512×512不指定时默认导出为动态 shape[None, 3, None, None]若模型需要 trimap 信息如 DIM需加上--trimap--for_fd导出 FastDeploy 兼容格式。从 tools/export.py 源码可以看到导出过程会将模型转为静态图paddle.jit.to_static并保存model.pdmodel/model.pdiparams同时自动生成部署配置文件deploy.yaml其中记录了Deploy段的transforms数据预处理默认 Normalize、model、params、input_shape以及ModelName字段。使用--for_fd时文件名变为inference.pdmodel与inference.yml。更多参数见python tools/export.py --help。Python 部署推理使用导出的模型进行部署推理python deploy/python/infer.py \ --config output/export/deploy.yaml \ --image_path data/PPM-100/val/fg/ \ --save_dir output/results \ --fg_estimate True--config直接使用导出时生成的deploy.yaml--image_path待预测图片目录、单图或文件列表--trimap_path若模型需要 trimap通过该参数传入--fg_estimate False关闭前景估计提升速度但降低质量--video_path传入视频路径即可执行视频抠图若模型需要 trimap 信息通过--trimap_path传入。部署脚本 deploy/python/infer.py 基于 Paddle Inference 实现还支持一系列加速选项--device选择cpu/gpuCPU 场景可用--cpu_threads与--enable_mkldnn加速GPU 场景可用--use_trt启用 TensorRT并通过--precisionfp32/fp16/int8设置 TensorRT 精度--enable_auto_tune可自动收集动态 shape 用于 TRT 子图避免手动设置动态 shape。完整参数可通过python deploy/python/infer.py --help查看。总结至此一条完整的抠图模型开发链路已经走通安装环境与依赖 → 准备 PPM-100或自定义数据集 → 通过 YAML 配置文件选型本教程以 PPMattingV2 STDC1 为例→ 训练或基于预训练权重微调 → 用 SAD/MSE/Grad/Conn 指标评估 → 图像/视频预测 → 前景估计与背景替换 → 导出静态图并部署推理。所有环节均由 Matting/tools 目录下的脚本与配置文件驱动命令参数均可在各脚本的--help中查阅配置细节可对照 Matting/configs 下的示例文件深入学习。赞分享人工智能计算机视觉预训练【免费下载链接】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点击查看免费下载相关推荐TigerBeetle 如何用漏桶算法和 pending 转账实现请求速率与带宽限制TigerBeetle 如何用漏桶算法和 pending 转账实现请求速率与带宽限制 如果你的服务需要对每个用户做限流——比如每分钟最多 10 次请求或每人工智能计算机视觉预训练OpenPose模型训练全流程从数据集准备到模型部署OpenPose模型训练全流程从数据集准备到模型部署 OpenPose作为业界领先的实时多人姿态估计算法在计算机视觉领域具有广泛的应用价值。本文将为你详细介人工智能计算机视觉深度学习MATLAB-Simulink-Challenge-Project-Hub部署实战完整项目搭建与测试流程MATLAB Simulink Challenge Project Hub部署实战完整项目搭建与测试流程 MATLAB Simulink Challenge文档教程知识库教育上一篇KMS_VL_ALL_AIOWindows和Office智能激活的终极解决方案下一篇KMS_VL_ALL_AIO为什么这个开源激活工具能解决90%用户的系统激活难题创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考