Boosting semantic human matting with coarse annotations

前向推理在modelscope中开源了,但是训练没开源,且是基于TensorFlow的,复现起来是比较麻烦的。

1.Introduction

        分割技术主要集中在像素级二元分类,抠图被建模为前景图像F和背景图像B的加权融合,大多数matte方法采用指定的trimap作为约束来减少解的空间,trimap将图像分成三个区域,包括明确的前景,明确的背景和未知区域。但是trimap的获取如果人工标注的话,成本太高。1.从粗到细自适应的学习trimap,2.在输入中丢弃裁剪图,并将其作为matte网络的隐式约束。依然依赖生成的裁剪图的质量,当隐式裁剪图不准确时,无法保留语义信息和高质量的细节。此外matte的标注数据也很难获取。

        提出了一种利用粗略和精细注释数据进行matte的方法,是trimap-free的,提出了一个耦合的三个子网络来实现,Mask prediction network旨在预测低分辨率的粗略mask,使用粗粒度和细粒度的数据进行训练;引入一个在混合注释数据上训练的Quality unification network来矫正MPN输出质量,Matting Refinement network用于预测最终的alpha,输入为原始图像和粗略mask。

3.proposed approach

3.1 Mask prediction network

        第一阶段预测的是粗糙的mask,所有的训练数据调整为192x160,使用所有数据进行训练,包括低质量和高质量的注释数据。使用L1损失,输出是一个具有2个通道的mask,第一个通道是预测的前景mask,第二个通道预测是背景mask。

3.2 Quality Unification network

        由于标注高质量抠图数据成本较高,提出使用来自不同数据源的混合数据,其中一些数据被高质量标注,连细微的头发和背景都能分开,大部分数据标注质量相对较低,MPN用的精细标注和粗略标注数据进行训练。Matting预测网络只能在高质量标注数据上进行训练,粗略的mask质量的差异会导致推理阶段的抠图结果不一致。引入了QUN来消除训练抠图修正网络的数据偏差,QUN旨在将MPN的输出质量纠正到相同水平。训练QUN网络的损失包含两部分,identity loss迫使QUN的输出与原始输入变化不大,

x表示concatenation of the input image和accurate mask,x'表示concatenation of the input image和inaccurate mask,consistence loss要求QUN对应accurate mask和inaccurate mask接近。

3.3 Matting Refinement network

        MRN旨在预测准确的alpha matte。以768x768训练,来自MRN和QUN的粗糙mask是低分辨率的192x160,将粗糙mask作为外部输入特征图集成到MRN中,其中输入进过多次卷积后降低4倍,MRN的输出是4通道,三个RGB和一个alpha matte,L1损失:

3.4 Implementation details

        tensorflow,按顺序对三个网络进行训练,在输入到MPN之前,对所有的图进行降采样处理,192x160,在每个训练上随机翻转,在MPN上训练20个epoch,将低分辨率图像和输出的前景mask连接起来作为输入来训练QUN,在训练QUN时,对精细化注释数据执行随机滤波(滤波器大小为3或5),二值化和形态学操作(腐蚀膨胀)以生成配对的高质量和低质量mask数据。只使用精细化注释数据的方式训练MRN,整个数据对(图像和mask)都被随机裁剪到768x640,所有网络学习率1e-3,MPN和QUN都使用bs=16训练,MRN仅使用高分辨率数据进行训练。 

        测试时,仅使用图像作为输入生成alpha mask,800x800上平均测试时间为0.08s。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HiSilicon352 android9.0 开机视频调试分析

一,开机视频概念 开机广告是在系统开机后实现播放视频功能。 海思Android解决方案在原生Android基础上,增加了开机视频模块,可在开机过程中播放视频文件,使用户更好的体验系统开机过程。 二,模块结构 1. 海思自研开机…

Linux 高并发服务器

多进程并发服务器 使用多进程并发服务器时要考虑以下几点&#xff1a; 父进程最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符)系统内创建进程个数(与内存大小相关)进程创建过多是否降低整体服务性能(进程调度) server /* server.c */ #include <stdio…

IDEA反编译Jar包

反编译步骤 使用IDEA安装decompiler插件 找到decompiler插件文件夹所在位置&#xff08;IDEA安装路径/plugins/java-decompiler/lib &#xff09;&#xff0c;将需要反编译的jar包放到decompiler插件文件夹下&#xff0c;并创建一个空的文件夹&#xff0c;用来存放反编译后的…

电子信息考博目标院校

电子信息考博 1.目标院校 第一志愿 武汉大学 211计算机学院(2024年度) 085400电子信息 新一代信息通信技术&#xff08;卓工博士专项&#xff09; 外语水平考试科目 1101英语 卓工博士专项计划详见专项简章 212电子信息学院(2024年度) 085400电子信息 新一代信息通信…

AJAX-常用请求方法和数据提交

常用请求方法 请求方法&#xff1a;对服务器资源&#xff0c;要执行的操作 axios请求配置 url&#xff1a;请求的URL网址 method&#xff1a;请求的方法&#xff0c;如果是GET可以省略&#xff1b;不用区分大小写 data&#xff1a;提交数据 axios({url:目标资源地址,method…

【C语言】异常处理 | assert函数 | errno错误码

文章目录 C语言传统的处理错误的方式1. 终止程序&#xff08;例如使用 assert&#xff09;2. 返回/设置错误码手动实现C语言库函数内置的错误码Linux系统调用内置的错误码 C语言传统的处理错误的方式 C语言传统的处理错误的方式主要包括assert终止程序和返回或设置错误码两种方…

Django的web框架Django Rest_Framework精讲(三)

文章目录 1.DRF视图1) 视图基类1.GET请求2.POST请求&#xff0c;添加单条记录3.更新单条记录put方法4.DELETE请求 2) GenericAPIView[通用视图类] 2.视图类中使用多个序列化器类的方法3.基于视图扩展类的视图接口1&#xff09;ListModelMixin2&#xff09;CreateModelMixin3&am…

如何远程操控vm虚拟机(finalshell版)

你是否因为虚拟机命令行操作不便而头疼&#xff1f;是否因为难以复制粘贴而烦恼&#xff1f;是否因为无法快速上传文件而烦躁&#xff1f; 别急&#xff01;现在有一个简单便捷的软件能够实现上述你所述说的所有烦恼&#xff0c;请听我细细道来~ 一、查看虚拟机的ip地址 a.首…

python-分享篇-GUI界面开发-PyQt5-窗体代码与逻辑代码分离

代码 # _*_ coding:utf-8 _*_ # 文件名称&#xff1a;LoginWindows.py # 开发工具&#xff1a;PyCharmimport sys # 导入操作系统模块from PyQt5.QtCore import QCoreApplication # 导入PyQt5的QtCore模块 from PyQt5.QtWidgets import QApplication,QMainWindow # 导入P…

【game——关机程序】

程序运行后&#xff0c;会在1分钟内关机&#xff0c;用户需要输入&#xff1a;lalala&#xff0c;才能停止电脑关机。 电脑内有操作命令符&#xff0c;可以实现关机&#xff1a; 最后按一下回车&#xff1a; #include<stdio.h> #include<stdlib.h> #include<s…

分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别

分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别 目录 分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现G…

【Crypto | CTF】BUUCTF Alice与Bob1

天命&#xff1a;比较简单的题目 先用Python生成一个脚本&#xff0c;分解两个素数 def prime_factors(n):"""分解给定整数n的质因数。返回一个列表&#xff0c;其中包含n的所有质因数。"""# 初始化一个空列表来存储质因数factors []# 从2开始…

十、Qt三维图表

一、Data Visualization模块概述 Data Visualization的三维显示功能主要有三种三维图形来实现&#xff0c;三各类的父类都是QAbstract3DGraph&#xff0c;从QWindow继承而来。这三类分别是&#xff1a;三维柱状图Q3DBar三维空间散点Q3DScatter三维曲面Q3DSurface 1、相关类的…

QSqlRelationalTableModel 关系表格模型

一、 1.1 QSqlRelationalTableModel继承自QSqlTableModel&#xff0c;并且对其进行了扩展&#xff0c;提供了对外键的支持。一个外键就是一个表中的一个字段 和 其他表中的主键字段之间的一对一的映射。例如&#xff0c;“studInfo”表中的departID字段对应的是“departments…

计算机视觉-PCV包、Vlfeat库、Graphviz库的下载安装配置及问题解决(使用anaconda3 python 3.8.5)

目录 一、PCV包配置 二、Vlfeat配置 三、在PCV包的sift.py文件中对路径进行修改 四、以上步骤所需注意的错误 五、Graphviz配置 一、PCV包配置 1.下载PCV包,点开网址直接下载安装包(不用解压),下载之后将安装包放在任意目录位置https://codeload.github.com/Li-Shu14…

wasm 在web中最小胶水代码; 报错Imports argument must be present and must be an object

加载和运行 WebAssembly 代码 我试过了没成功&#xff0c;代码裁剪有点严重 加载WebAssembly的两个新的API 新的 WebAssembly.compileStreaming/WebAssembly.instantiateStreaming 方法更加高效——它们直接在来自网络的原始字节流上执行操作&#xff0c;省去了 ArrayBuffer 步…

网络原理TCP/IP(2)

文章目录 TCP协议确认应答超时重传连接管理断开连接 TCP协议 TCP全称为"传输控制协议(Transmission Control Protocol").⼈如其名,要对数据的传输进⾏⼀个详细 的控制; TCP协议段格式 • 源/目的端口号:表⽰数据是从哪个进程来,到哪个进程去; • 32位序号/32位确认…

ClickHouse基于数据分析常用函数

文章标题 一、WITH语法-定义变量1.1 定义变量1.2 调用函数1.3 子查询 二、GROUP BY子句&#xff08;结合WITH ROLLUP、CUBE、TOTALS&#xff09;三、FORM语法3.1表函数3.1.1 file3.1.2 numbers3.1.3 mysql3.1.4 hdfs 四、ARRAY JOIN语法&#xff08;区别于arrayJoin(arr)函数&a…

12个RAG常见痛点及解决方案

Barnett等人的论文《Seven Failure Points When Engineering a Retrieval Augmented Generation System》介绍了RAG的七个痛点&#xff0c;我们将其延申扩展再补充开发RAG流程中常遇到的另外五个常见问题。并且将深入研究这些RAG痛点的解决方案&#xff0c;这样我们能够更好地在…

导出pdf 加密、加水印、加页脚

1.依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> <dependency> …