0

0

抠像任务:基于飞桨复现BackgroundMattingV2模型

P粉084495128

P粉084495128

发布时间:2025-07-18 10:20:00

|

468人浏览过

|

来源于php中文网

原创

本文介绍飞桨框架复现Real-Time-High-Resolution-Background-Matting论文的项目,含相关链接与依赖。论文网络分base和refine模块,复现采用多阶段训练,用多个数据集,添加laplacian_loss,还说明训练、验证及预测过程。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

抠像任务:基于飞桨复现backgroundmattingv2模型 - php中文网

前言

人工智能创新应用大赛——飞桨开源框架前沿模型复现专题赛,使用Paddle复现Real-Time-High-Resolution-Background-Matting论文。

github: https://github.com/zackzhao1/BackgroundMattingV2-paddle

aistudio: https://aistudio.baidu.com/aistudio/projectdetail/2467759

依赖环境: paddlepaddle-gpu2.1.2 python3.7

论文简介

该方法中将整个pipeline划分为两个部分:base和refine部分,前一个部分在缩小分辨率的输入下生成粗略的结果输出,其主要用于提供大体的区域位置定位(coarse predcition)。后一个网络在该基础上通过path selection选取固定数量的path(这些区域主要趋向于选择头发/手等难分区域)进行refine,之后将path更新之后的结果填充回原来的结果,从而得到其在高分辨率下的matting结果。抠像任务:基于飞桨复现BackgroundMattingV2模型 - php中文网 图1:BGMv2的网络结构,其中蓝色的是base网络,绿色的是refine网络

论文细节

BGMv2的网络分成两个模块: GbaseGbase 和 GrefineGrefine 。给定一张输入图像 II 和空屏图像 BB ,首先将其降采样 cc 倍,得到 IcIc 和 BcBc 。 GbaseGbase 取 IcIc 和 BcBc 作为输入,输出同样是降采样尺寸的前景概率 acac ,前景残差 FcRFcR ,Error Map EcEc 以及隐层节点特征 HcHc 。然后 GrefineGrefine 根据 EcEc 中值较大的像素点取 HcHc ,II 以及 BB 中对应的patch(难样本)来优化 FRFR 和 aa ,整个过程如图1所示。

  • base网络

BGMv2借鉴了deeplab v3的网络结构,包含骨干网络,空洞空间金字塔池化和解码器三部分组成:

骨干网络:可以采用主流的卷积网络作为,作者开源的模型包括ResNet-50,ResNet-101以及MobileNetV2,用户可以根据速度和精度的不同需求选择不同的模型;空洞空间金字塔池化:(Atrous Spatial Pyramid Pooling,ASPP)是由DeeplabV3提出并在实例分割领域得到广泛应用的结构,人像抠图和实例分割本质上式非常接近的,因此也可以通过ASPP来提升模型准确率;解码器:解码器是由一些列的双线性插值上采样和跳跃连接组成,每个卷几块由 333∗3 卷积,BN以及ReLU激活函数组成。

如前面介绍的, GbaseGbase 的输入是 IcIc 和 BcBc ,输出是 acac , FcRFcR , EcEc 以及 HcHc 。其中Error Map EcEc 的Ground Truth是 EE∗ ,Error Map是一个人像轮廓的一个图。通过对Error Map的优化,可以使得BGMv2有更好的边缘检测效果。

  • Refine网络

GrefineGrefine 的输入是在根据 EcEc 提取的 k 个补丁块(patches)上进行进行精校, k 可以提前指定选择top- k 个或是根据阈值卡若干个。用户也可以根据速度和精度的trade-off自行设置 k 或者阈值的具体值。对于缩放到原图 1/c1/c 的 EcEc ,我们首先将其上采样到原图的 1/4 ,那么 E4E4 中的一个点便相当于原图上一个 444∗4 的补丁块,那么相当于我们要优化的像素点的个数总共有 16k 个。

GrefineGrefine 的网络分成两个阶段:在1/2的分辨率和原尺寸的分辨率上进行精校。

抠像任务:基于飞桨复现BackgroundMattingV2模型 - php中文网

Stage 1:首先将 GbaseGbase 的输出上采样到原图的 1/2 ;然后再根据 E4E4 选择出的补丁块,从其周围在其中提取 888∗8 的补丁块;再依次经过两组 333∗3 的有效卷积,BN,ReLU将Feature Map的尺寸依次降为 666∗6 和 444∗4 。

Pixso AI
Pixso AI

Pixso AI是一款智能生成设计稿工具,通过AI一键实现文本输入到设计稿生成。

下载

Stage2:再将Stage 1得到的 444∗4 的Feature Map上采样到 888∗8 ,再依次经过两组 333∗3 的有效卷积,BN,ReLU将Feature Map的最终尺寸降为 444∗4 。而这个尺寸的Feature Map对应的ground truth就是我们上面根据 E4E4 得到的补丁块。最后我们将降采样的 acac 和 FcRFcR 上采样到原图大小,再将Refine优化过后的补丁块替换到原图中便得到了最终的结果。

复现思路

1.在复现过程中我们参考论文中的方法,做了多阶段的训练,并做了修改:

stage1:使用VideoMatte240K数据集做预训练,提升模型鲁棒性。注:由于预训练耗时较长,提供了训练好得模型,方便在自己的数据上微调,模型为stage1.pdparams。

stage2:使用Distinctions646数据集做微调,提升模型细节表现。注:此时模型最好精度为SAD: 7.58,MSE: 9.49,模型为stage2.pdparams。

stage3:使用个人数据集微调。注:本次比赛提交的是stage2模型,因为训练所用数据集都为公开数据集,方便复现。 原作者在论文中也使用了个人数据集微调,但没有公开。因此我增加了自己数据进行训练,没有条件的同学可以利用原工程生成pha作为训练数据。 模型最好精度为SAD: 7.61,MSE: 9.47,模型为stage3.pdparams。

2.添加了原作者新论文中用到的laplacian_loss,可以提高收敛速度。

3.模型api对照表 https://blog.csdn.net/qq_32097577/article/details/112383360?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.vipsorttest&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.vipsorttest

复现

抠像任务:基于飞桨复现BackgroundMattingV2模型 - php中文网

模型下载 链接:https://pan.baidu.com/s/1WfpzLcjaDJPXYSrzPWvsyQ 提取码:nsfy

训练

  • stage1:使用VideoMatte240K数据集做预训练,提升模型鲁棒性。

注:由于预训练耗时较长,提供了训练好得模型,方便在自己的数据上微调,模型为stage1.pdparams。

  • stage2:使用Distinctions646数据集做微调,提升模型细节表现。

注:此时模型最好精度为SAD: 7.58,MSE: 9.49,模型为stage2.pdparams。

  • **stage3:使用个人数据集微调。

注:本次比赛提交的是stage2模型,因为训练所用数据集都为公开数据集,方便复现。 原作者在论文中也使用了个人数据集微调,但没有公开。因此我增加了自己数据进行训练,没有条件的同学可以利用原工程生成pha作为训练数据。 模型最好精度为SAD: 7.61,MSE: 9.47,模型为stage3.pdparams。

In [1]
# [VideoMatte240K & PhotoMatte85 数据集](https://grail.cs.washington.edu/projects/background-matting-v2/#/datasets)# [Distinctions646_person 数据集](https://github.com/cs-chan/Total-Text-Dataset)# 数据集需要申请,请自行下载! ./run.sh

验证

In [2]
# 解压测试集!unzip ./data/data111962/PhotoMatte85_eval.zip -d ./data/
In [4]
!python eval.py
W1013 17:35:31.830500   406 device_context.cc:404] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1
W1013 17:35:31.835165   406 device_context.cc:422] device: 0, cuDNN Version: 7.6.
  0%|                                                    | 0/85 [00:00

预测

In [6]
!python predict.py
W1013 18:00:01.562386  1535 device_context.cc:404] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1
W1013 18:00:01.567060  1535 device_context.cc:422] device: 0, cuDNN Version: 7.6.
save results:./image/01_pred.jpg

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 3.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号