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。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

不做中位剧的腾讯,能靠精品撑起长视频会员吗?

回顾腾讯视频的2023年,马化腾用“厚积薄发”来形容。 在腾讯年会上,马化腾回顾了过去一年长视频业务板块的发展情况,同时也清晰地提出了未来的规划,总结来说就是以下三点: 1、《繁花》《三体》《漫长的季节》是腾讯过去一年特别出彩的剧集,几部大剧撑起了长视频会员业务…

设计模式——2_1 命令(Command)

文章目录 定义图纸一个例子:空调和他的遥控器只有控制面板的空调遥控器可以撤销的操作 碎碎念命令和Runnable命令和事务 定义 把请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持…

Spring Bean 生命周期常见错误

虽然说 Spring 容器上手简单,可以仅仅通过学习一些有限的注解,即可达到快速使用的目的。但在工程实践中,我们依然会从中发现一些常见的错误。尤其当你对 Spring 的生命周期还没有深入了解时,类初始化及销毁过程中潜在的约定就不会…

超越现实,体验无限可能——VMware Workstation 的魅力之旅

随着科技的飞速发展,虚拟化技术已经深入人心,成为现代人工作与学习的必备工具。在这其中,VMware Workstation以其卓越的性能和稳定的运行环境,成为众多电脑爱好者和专业人士的首选。今天,让我们一起探索VMware Worksta…

初探unity中的ECS

ECS是一种软件架构模式,就像MVC一样。ECS最早在游戏《守望先锋》中提及到的相关链接。ECS具体是指实体(entity)、 组件(component)和系统(system): 实体:实体是一个ID&a…

docker踩坑记录

踩坑记录 1.1 后台启动容器,实际没有启动 现象: 后台启动centos,结果执行docker ps命令,容器没启动。 原因: docker是以容器启动的,必须要有个前台进程,若是全部都是后台deamon守护进程&…

C语言第十七弹---指针(一)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 指针 1、内存和地址 1.1、内存 2、指针变量和地址 2.1、取地址操作符(&) 2.2、指针变量和解引用操作符(*)…

数字巨轮航行大数据海洋:数据可视化引领时代潮流

在大数据时代的潮流中,数据可视化如同一艘畅行无阻的科技巨轮,引领我们穿越数字浩瀚的大海,使我们在信息的航程中游刃有余。下面我就从可视化从业者的角度,来简单说说数据可视化是如何帮助我们在大数据时代畅行无阻的。 数据可视化…

Python 数据分析(PYDA)第三版(七)

原文:wesmckinney.com/book/ 译者:飞龙 协议:CC BY-NC-SA 4.0 附录 附录 A:高级 NumPy 原文:wesmckinney.com/book/advanced-numpy 译者:飞龙 协议:CC BY-NC-SA 4.0 此开放访问网络版本的《Pyt…

苹果电脑Mac清理内存怎么清理卸载残留

苹果电脑中的应用程序大部分是可以通过将其拖拽至废纸篓并倾倒来卸载的。但是部分程序在卸载后仍有残留文件,比如support文件和pref设置等文件的。小编今天介绍下苹果电脑清理内存怎么清理卸载残留以及好用的清理技巧分享。 一、苹果电脑清理内存怎么清理卸载残留 …

使用雨云的虚拟主机建设兰空图床

安装前须知 因需要安装FileInfo拓展,因此你需要购买2048MB及以上运存的服务器。 确保MySQL版本高于或等于5.7 什么是兰空图床? Lsky Pro 是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己…

八、访存顺序(Memory Ordering)

前言 这部分的内容比较抽象,很多内容我无法理解,都是直接翻译过来的。虽然难,但是不可不看,如果遇到无法理解的都直接跳过,那后面都无法学习下去了。觉得无法理解是因为目前的知识还很欠缺,到后面具备了这…

MySQL进阶45讲【11】怎么更好地给字符串字段加索引?

1 前言 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 假设,现在维护一个支持邮箱登录的系统,用户表是这么定义的: mysql> create table SUser…

Vulnhub-DC8

信息收集 # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:43:7c:b1, IPv4: 192.168.1.60 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.1.1 00:50:56:c0:00:08 VMware, Inc. 192.168.1.2 00:50:56:f…

java-static关键字

目录​​​​​​​ 1、介绍 2、静态代码块 3、静态代码块初始化时机 3.1、例子一 3.2、例子二 1、介绍 ​​​​​​​static翻译为静态的。static修饰的方法是静态方法。static修饰的变量是静态变量。都可以使用“类名.”的方式访问,当然也可以用引用.的方式…

Android学习之路(27) ProGuard,混淆,R8优化

前言 使用java编写的源代码编译后生成了对于的class文件,但是class文件是一个非常标准的文件,市面上很多软件都可以对class文件进行反编译,为了我们app的安全性,就需要使用到Android代码混淆这一功能。 针对 Java 的混淆&#x…

JavaWeb,Vue的学习(下)

Router路由 路由(Router)简介 定义:路由就是根据不同的 URL 地址展示不同的内容或页面。通俗理解:路由就像是一个地图,我们要去不同的地方,需要通过不同的路线进行导航。 路由的作用 单页应用程序&…

Flink CEP(基本概念)

Flink CEP 在Flink的学习过程中,我们已经掌握了从基本原理和核心层的DataStream API到底层的处理函数,再到应用层的Table API和SQL的各种手段,可以应对实际应用开发的各种需求。然而,在实际应用中,还有一类更为复…

奇瑞瑞虎8,是真不能随便碰

文 | AUTO芯球 作者 | 李虎 我是实在看不下去了啊 这奔驰车主砸车 现在开始反转了啊 但卡住我喉咙的是定损5200的奇瑞引擎盖啊 我是真买不起,也不敢买啊 我怕A柱断了,要修20万啊 但我一算,这也不对啊 顶配的报价也只有16.18万啊 如果…

linux 文件查看 head 、 cat 、 less 、tail 、grep

查看文件详细信息 stat 文件 cat 》》适合显示小文件【行数比较少】,如果行数较多,屏幕显示不完整(如果虚拟操作,是无法上下键的,或者滚动鼠标的,第三方 xsheel,crt 可以方向键查看&#xf…