旷视研究院提出新型抠图方法AdaMatting,简单强大

2023-10-20 16:40

本文主要是介绍旷视研究院提出新型抠图方法AdaMatting,简单强大,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“AI算法与图像处理”,选择加"星标"或“置顶”

重磅干货,每天 8:25 送达640?wx_fmt=jpeg

来源:旷视研究院

640?wx_fmt=png

两年一度的国际计算机视觉大会 ICCV 2019 ( IEEE International Conference on Computer Vision) 将于当地时间 10 月 27 至 11 月 2 日在韩国首尔举办。旷视研究院共有 11 篇接收论文,涵盖通用物体检测及数据集、文字检测与识别、半监督学习、分割算法、视频分析、影像处理、行人/车辆再识别、AutoML、度量学习、强化学习、元学习等众多领域。在此之前,旷视研究院将每周介绍一篇 ICCV 2019 接收论文,助力计算机视觉技术的交流与落地。

本文是第 6 篇,由于发现了抠图可分为 trimap adaptation 和 alpha estimation 两个任务,并受此启发,旷视研究院提出了一个简单但强大的抠图框架,称之为 AdaMatting (Adaptation and Matting) ,同时克服了诸多局限性。该方法在最为通用的数据集 Adobe Composition-1k 上刷新了当前最优成绩,并在 alphamatting.com 上取得第一。

640?wx_fmt=png

论文名称:Disentangled Image Matting

论文地址:https://arxiv.org/abs/1909.04686

目录

  • 导语

  • 简介

  • 方法

    • Trimap Adaptation

    • Network Overview

    • Multi-task Loss

  • 实验

    • Results on alphamatting.com

    • Results on Composition-1k

  • 讨论

    • Accuracy of Trimap Adaptation

    • Real World Image Matting

  • 结论

  • 附录

    • More Qualitative Results

  • 参考文献

  • 往期解读

导语

抠图旨在精确地评估图像和视频中前景物体的不透明度。它是一系列应用的预处理,比如电影制片和数字图像编辑。

一般来讲,输入图像 I 被建模为前景和背景色彩的线性结合,如下所示:

640?wx_fmt=png

其中,F_i、B_i、α_i 分别是指像素 i 前景色彩和背景色彩以及前景蒙版(alpha matte)估值。给定一张图像 I,抠图旨在同时解决 F、B、α。

由等式 1 可知,这一问题是高度不适定的(highly ill-posed)。对于一张 RGB 图像,每个像素需要 7 个变量来共同界定,却只有 3 个已知变量。

对于大多数现有的抠图算法,约束解空间的基本输入是三元图(trimap),一个指示不透明度和未知区域的粗糙的分割图。

三元图由使用者涂鸦交互生成,或者由二值图像分割结果自动生成。无论何种方式,输入的三元图通常是粗糙的,即未知区域(图 1b 中的灰色区域)包含真实的半透明像素以及大量的不透明像素。这是因为通过人工标注来提供精确的三元图极其繁琐,并且难以使用运行在低分辨率图像的图像分割方法来实现。

640?wx_fmt=png

图 1:(a) 输入图像, (b) 输入三元图,(c) 本文抠图结果, (d) trimap adaptation 相应结果

不幸的是,先前的抠图方法经常忽视输入三元图的不精确性,并尝试直接估值一个好的前景蒙版。

旷视研究院认为,在这一过程中,一个分类问题没有得到充分解决。如果仔细观看三元图,未知区域的像素将会分入三个集合:不透明前景,不透明背景以及半透明区域。前两类称之为不透明像素,后一类称之为混合像素。

抠图方法的期望行为是为不透明像素生产精确的 0 和 1,同时精确评估混合像素的微小不透明度(介于 0 和 1 之间)。

由此可见,抠图这一任务包含两个相关但又不同的任务。第一个是分类未知区域中的像素以确认混合像素,本文称之为 trimap adaptation,第二个是精确计算混合像素的不透明值,本文称之为 alpha estimation。

研究员观察到,这两项任务需要相当不同的算法能力。第一种更多地依赖对物体形状和结构的很好的语义理解,从而可基于图像特征有效识别未知区域的前景和背景区域。

对于第二种任务,合理的利用低语义的图像线索更为关键。其中 trimap adaptation 可被建模为一个分类任务,而 alpha estimation 可被看作一个典型的回归任务。

大多数现有抠图方法把抠图当作单一的回归任务,它们忽略了抠图中的分类属性。这一观察带来的问题是,如何在一个解决方案中协调抠图问题的两个不同方面。

现有抠图方法,尤其是基于优化的方法,太过依赖于低阶的特征,比如色彩分布和局部纹理,并且缺乏整合高阶特征的能力。

正如最近一些工作所示,更好地理解物体的结构和形状有利于图像抠图。尽管宣称使用高阶特征,这些方法通常只利用预训练特征,并且不使用显式的语义目标作指导。

简介

正是由于发现抠图可分为 trimap adaptation 和 alpha estimation 两个任务,并受此启发,旷视研究院提出了一个简单但强大的抠图框架,称之为 AdaMatting (Adaptation and Matting) ,同时克服了上述的局限性。

AdaMatting 借助多任务的方式在两个不同的解码器分支内执行这两个任务。通过显式监督模型以区分混合像素和不透明像素,接着使用优化的三元图约束 alpha estimation 的输出,这个两个分支分别处理这一任务的不同方面。

此外,通过共享两个任务的特征,大大提升了对模型的物体形状和结构信息的理解,如图 2 所示。

640?wx_fmt=png

图 2:AdaMatting pipeline

本文主要贡献如下:

  • 提出一种新观点,即抠图应区分为 trimap adaptation 和 alpha estimation 两个任务,并证明这一区分对于提升基于 CNN 的抠图方法至关重要。

  • 提出一个全新的框架,其中这两种任务可以多任务的方式进行联合优化。大量实验表明,这一方法可以更好地利用语义信息为已训练的 CNN 模型提供额外的结构感知力和三元图容错能力。

  • 该方法在最为通用的数据集 Adobe Composition-1k 上刷新了当前最优成绩,并在 alphamat-ting.com 上取得第一。

方法

本节首先准确界定 trimap adaptation 这一任务,接着描述 AdaMatting 的 pipeline 和训练方案。

Trimap Adaptation

令 α_gt 作为前景蒙版 ground truth ,那么,一张图像相应的最优三元图 T_opt 可写为:

640?wx_fmt=png

给定一张已做三元图处理的输入图像, trimap adaptation 的目的是预测最优的三元图 T_opt,直观来讲, 即是把半透明的区域与不透明的前景和背景分开。

根据 T_opt 的定义,抠图自然地分为两步:1)确定 α 是否正好为 0、1 或者两者都不是;2)如果区域是半透明的,精确计算 α。

注意,本文不需要预测标签与输入三元图良好兼容:如果用户输入存在镜像错误,研究员希望模型可以修正它。

图 1d 给出了由本文模型给出的 trimap adaptation 实例。由图可知,第一个输入三元图中的未知区域宽泛且有错误,由于低质量标注而没有覆盖所有的头发。

执行 trimap adaptation 之后,输出三元图不仅缩小而且被纠正,从而产生了更可靠的前景蒙版。

对于第二张输入图像,自动化三元图生产算法没能给出一个有意义的三元图。但是,在这种极端情况下,AdaMatting 令人吃惊地改写了一个相对精确的三元图,并且完美解决了抠图的这一困难问题。

Network Overview

本文设计了一个完全端到端的 CNN 模型,称之为 AdaMatting,图 2 给出了其 pipeline。它包含一个产生共享表征的编码器,以及两个相互独立的解码器,以分别处理 trimap adaptation 和 alpha estimation 两个任务。trimap adaptation 和中间前景蒙版的结果接着输入到 propagation unit,形成最终的前景蒙版。

AdaMatting 把与相应三元图相连的图像作为输入。首先,一个前端全卷积编码器产生深度特征以作为共享的特征。接着,两个独立的解码器用于每个任务,旨在学习从共表征到期望输出的映射。

每个解码器包含若干个 3x3 卷积层以及上采样模块。三元图解码器输出 3 个通道的分类 logits,由交叉熵损失来引导;α 解码器输出 1 个通道的中间值 α 估计,进入 propagation unit 以做进一步优化。

Multi-task Loss

如上所述,在 AdaMatting 中,trimap adaptation 可被建模为一个分割任务,把输入图像分为前景、背景和半透明区域。解决这类分割问题的过程可带来丰富的语义特征,反过来这有助于解决前景蒙版回归的问题。

本文采用了不确定性损失,而不是线性结合的损失函数。这一损失可写为:

640?wx_fmt=png

实验

本文开展了大量实验,证明  AdaMatting 在两个公开数据集上的有效性:1) al-phamatting.com,2) Adobe Composition-1k test set,且后者的物体种类更多,背景区域更为复杂。本节将会把 AdaMatting 与当前最优方法从定量和定性两个方面做对比。

Results on alphamatting.com

本文把结果提交至 alphamatting.com,取得了当前最佳的表现,在所有三项指标的平均性能上位列第一。梯度误差和 MSE 结果如表 1 所示。

640?wx_fmt=png

表 1:alphamatting.com 数据集上本文方法与其他 5 个当前最优方法的平均排名结果

视觉对比效果如图 4 所示。

640?wx_fmt=png

图 4:alphamatting.com test set 两张图像的定性对比结果

Results on Composition-1k

在 Composition-1k test set 上,本文对 6 个最新的抠图方法做了评估,它们是 Closed Form、KNN、DCNN、Information Flow、AlphaGAN 和 Deep Image Matting。Grad、SAD 和 MSE 下的量化结果如表 2 所示。很明显,AdaMatting 在所有指标上大幅超越其他所有方法。

640?wx_fmt=png

表 2:Composition-1k test set 上的定量对比结果

另外,数据集中给出了一些非常困难的图像,其中前景颜色和背景很难区分。两个实例如图 5 所示。

640?wx_fmt=png

图 5:Adobe Composition-1k test set 上的定性对比结果

很明显可以看到,相较于所有其他方法,本文结果包含更为生动的细节,伪影也大幅减少。

讨论

Accuracy of Trimap Adapatation

本文还对 trimap adaptation 任务对抠图任务的影响进行了鲁棒性分析。

640?wx_fmt=png

表 3:在Adobe 测试集上三元图自适应的准确率(Acc,IOU)以及Gradient Error

Real World Image Matting

640?wx_fmt=png

图 6:真实世界里图像的抠图结果。输入的三元图由对人像二元分割掩码进行膨胀后得到

结论

本文从一种解构的视角来分析抠图方法,即该任务可被分为两个子任务:trimap adaptation 和 alpha estimation。

从这一视角出发,本文提出一种新型抠图方法,称之为 AdaMatting,以借助多任务损失联合解决这两项子任务。

通过现实分离两个子任务,并根据不同目标优化它们,模型可从包含丰富语义和音素信息的共享表征中受益巨大。

大量实验证实了 AdaMatting 具有额外的结构感知能力和三元图容错能力。此外,从定量与定性的实验结果来看, AdaMatting 还在两个广泛使用的数据集上展现了优异性能,成为抠图方向上新的当前最佳。

附录

More Qualitative Results

在 Composition-1k 上的更多结果,如下:

640?wx_fmt=png

图 7:Adobe Composition-1k test set 上的定性对比结果

在 Real Image 上的更多结果,如下:

640?wx_fmt=png

图 8:真实世界里的背景替换效果对比

参考文献

  • Yung-Yu Chuang, Brian Curless, David H Salesin, and Richard Szeliski. A bayesian approach to digital matting. In Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Con- ference on, volume 2, pages II–II. IEEE, 2001.

  • Yag ̆iz Aksoy, Tae-Hyun Oh, Sylvain Paris, Marc Pollefeys, and Wojciech Matusik. Semantic soft segmentation. ACM Transactions on Graphics (TOG), 37(4):72, 2018.

  • Christoph Rhemann, Carsten Rother, Jue Wang, Margrit Gelautz, Pushmeet Kohli, and Pamela Rott. A perceptually motivated online benchmark for image matting. In Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on, pages 1826–1833. IEEE, 2009.

  • Ning Xu, Brian Price, Scott Cohen, and Thomas Huang. Deep image matting. In Computer Vision and Pattern Recog- nition (CVPR), 2017.

  • Yagız Aksoy, Tunc ̧ Ozan Aydın, Marc Pollefeys, and ETH Zu ̈rich. Designing effective inter-pixel information flow for natural image matting. In Computer Vision and Pattern Recognition (CVPR), 2017. 

  • Qifeng Chen, Dingzeyu Li, and Chi-Keung Tang. Knn mat- ting. IEEE transactions on pattern analysis and machine intelligence, 35(9):2175–2188, 2013.

  • Donghyeon Cho, Yu-Wing Tai, and Inso Kweon. Natural image matting using deep convolutional neural networks. In European Conference on Computer Vision, pages 626–643. Springer, 2016.

  • Anat Levin, Dani Lischinski, and Yair Weiss. A closed-form solution to natural image matting. IEEE Transactions on Pattern Analysis and Machine Intelligence, 30(2):228–242, 2008.

  • Sebastian Lutz, Konstantinos Amplianitis, and Aljosa Smolic. AlphaGAN: Generative adversarial networks for natural image matting. 2018.

640?

有热门推荐?

1.

2.

3.

加群交流

640?wx_fmt=jpeg欢迎小伙伴加群交流,目前已有交流群的方向包括:AI学习交流群,目标检测,秋招互助,资料下载等等;加群可扫描并回复感兴趣方向即可

640?wx_fmt=png

640?wx_fmt=png
你点的每个“在看”,我都认真当成了喜欢

这篇关于旷视研究院提出新型抠图方法AdaMatting,简单强大的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/248337

相关文章

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要