[论文阅读] Deep Automatic Natural Image Matting
论文地址:https://arxiv.org/abs/2107.07235
发表于:ICJAI’21
Abstract
自动图像抠图(AIM)是指从任意自然图像中估计软前景,而不需要像trimap那样的辅助输入,这对图像编辑很有用。先前的方法试图学习语义特征来帮助抠图过程,但仅限于具有显著不透明(salient opaque)前景的图像,如人类和动物。在本文中,我们研究了将其扩展到具有显著透明/细微前景或非显著前景的自然图像时的困难。为了解决这个问题,我们提出了一个新颖的端到端抠图网络,它可以为上述类型的任何图像预测一个通用的trimap,以作为一个统一的语义表示。同时,学习到的语义特征通过注意机制引导抠图网络关注过渡区域。我们还构建了一个测试集AIM-500,它包含了500张不同的自然图像,涵盖了所有类型的图像以及手动标记的alpha matte,这使得我们可以对AIM模型的泛化能力进行基准测试。实验结果表明,我们在现有的合成抠图数据集上训练的网络在客观上和主观上都优于现有方法。源代码和数据集可在https://github.com/JizhiziLi/AIM找到。
I. Motivation
图像抠图问题本质上是ill-posed,因此大多数方法实际上需要额外的用户输出作为约束,例如trimap(最常用的)、涂鸦或者说背景(background matting)。不过既然涉及到了额外输入,那么这些方法其实就不太适合实际自动化的工业生产环境。最近出现的自动图像抠图(automatic image matting)就是为了解决之前图像抠图需要额外输入的这一问题。
目前一般来说,主流的自动图像抠图方法都是通过学习图像中的语义特征来完成的,其应用局限在具有显著不透明前景的对象上(如人、动物),文中认为这种局限源于"这些方法的语义表征能力不够强"。
本文将针对被抠图对象的类型,将图像分为了三类:
- 第一类就是图中第一行,也是最喜闻乐见的,文中称其为Salient Opaque(SO),即图像包含显著的前景,并且该前景具有一定的不透明度
- 第二类就是图中的二行,文中称其为Salient Transparent/Meticulous(STM),其同样包含显著的前景,不过该前景可能是完全透明的或者非常精细的
- 第三类就是图中的第三行,文中称其为Non-Salient(NS),其连显著的前景都没有,例如烟雾、网格、雨滴等
本文测试了之前的matting模型,发现现有的模型要么是学习隐式的语义表征,或者直接使用显示的语义表征,因此往往只在一种类别上表现较好。换而言之,这些方法无法很好的去结合全局的语义信息与局部的抠图细节。
此外,本文还搞了个(事实上的第一个)Auto Image Matting测试集AIM-500。
II. Network Architecture
本文所用的backbone网络为ResNet-34,不过作者提到了一个问题,即ResNet这类的网络设计之初是解决"高层"分类问题的,因此这个东西实际上某种程度上缺乏局部细节信息的,为此本文对ResNet-34的结构进行了一些简单的修改。
对于ResNet的Conv1层,其先用了个stride为2的7×7卷积,此时特征图的尺寸可以降低一半到112×112;之后则是一个池化层,此时特征图的尺寸会再降低一半到56×56。作者认为,这两步会丢失许多的局部细节,因此其将这个7×7卷积的stride从2调整为1,并添加一个最大池化层以保证感受野不变;类似的,stage1~stage4中的第一个卷积stride同样被调整为1,并添加一个相应的最大池化层。
不过这里有个额外的问题,把resnet这么改了之后,是需要整个都重新train一遍的…也就是没法直接用pretrained model了。
回到网络结构上来,如果将图中Modified Backbone视为Encoder的话,那么可以发现,Encoder最终输出的id-4被输入到了两个branch中,相当于这个网络是Dual Decoder。这两个Decoder文中分别记为Unified Semantic Representation与Guided Matting Process,将在后文进行介绍。
III. Unified Semantic Representation
这一节主要讨论的就是所谓的semantic representation问题。对于大多数比较"正常"图片(第一节所讲的SO Type)而言,这个语义表征就是trimap;因此这里主要需要重点考虑的是STM与NS。
对于STM,因为他的前景可能非常小(或者干脆就是成片透明的),因此我们可以认为其没有显式的前景。从这个角度理解,此时trimap的前景部分就莫得了,因此本文搞了个"duo map",只去区分背景与不透明区域。而对于NS,前背景都十分混乱,相当于背景也爆了,此时本文搞了个"unimap",把整张图片都标记成不确定区域。形式化的定义如下:{Ui=Ti,type =SOUi=1.5Ti−Ti2,type =STMUi=0.5,type =NS\left\{\begin{array}{lr} U_{i}=T_{i}, & \text { type }=S O \\ U_{i}=1.5 T_{i}-T_{i}^{2}, & \text { type }=S T M \\ U_{i}=0.5, & \text { type }=N S \end{array}\right. ⎩⎨⎧Ui=Ti,Ui=1.5Ti−Ti2,Ui=0.5, type =SO type =STM type =NS 其中的TTT指将ground truth进行膨胀腐蚀操作得到的trimap。需要注意的是,TiT_{i}Ti只能取三个值,0表示背景,0.5表示不确定,1表示前景。上面这个式子相当于把unimap、duo map给统一回trimap的表示,即所谓的Unified Semantic Representation。
搞duomap和unimap的好处在于,对于STM与NS,此时如果去直接生成trimap,效果可能会非常差,而如果用unified representation就不会出现这个问题:
上图的第一、二、三列便对应着SO、STM、NS这三种情况下生成trimap与uni representation的比较。
回到网络结构的设计上来,既然是做auto matting,那么就还是要设计一个单独的decoder来生成trimap,对于本文则是生成uni representation。按照原文的说法,本文的这个decoder直接拿的是[1]里面的,不过除去这一点,这个decoder也比较简单,基本可以认为就是卷积层-SE Block与PPM模块的叠加。
IV. Guided Matting Process
对于本文的主Decoder,其实也没搞什么特别原创的东西…因此我们主要来看怎么利用上一节中学到的semantic representation来引导alpha matte的生成。
首先,对于上一节中decoder最后一个block所输出的特征,利用一个最大池化层与平均池化层分别对其进行处理,得到池化后的特征。将该特征利用一个卷积层与sigmoid进行处理,就可以得到一个空间注意力图。该注意力图通过与主decoder进行element-wise multiply来引导alpha matte的生成。
V. Experiment
dataset Comp-1k、HAtt、AM-2k、BG-20k
data augmentation type based
transfer learning DUTS
GPU Tesla V100
batch size 16
max epoch 50
input size 320×320
learning rate 10e-6
这里用了个transfer learning策略,看效果比较好用。
这篇文章在比较的时候有个有意思的点,其没有与其他基于trimap的SOTA进行比较,而是只比较了一个baseline DIM;主要比较的是最近的自动图像抠图方法,比如LF、HATT等;但是这又涉及到一个比较蛋疼的问题,这些自动图像抠图方法基本都没一个开源的,因此作者是自己复现了一遍再去测试效果…
一个现象:对于SO类别的图像,AIM方法还是干不过基于trimap的baseline DIM。
Ref
[1] Yaoyi Li and Hongtao Lu. Natural image matting via guided contextual attention. In AAAI, 2020.
[论文阅读] Deep Automatic Natural Image Matting相关推荐
- 2.AIM: Deep Automatic Natural Image Matting
目录 亮点 大体过程 参考 亮点 不仅关注显著的前景抠图,对不显著前景抠除效果也不错: 端到端,无需额外输入: 思路清晰明了. 大体过程 编码器下采样提取特征: 解码器一个分支经过psp(各种池化融合 ...
- 年龄论文阅读——Deep Label Distribution Learning With Label Ambiguity
论文阅读--Deep Label Distribution Learning With Label Ambiguity 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.c ...
- 论文阅读--Deep Stereo using Adaptive Thin Volume Representation with Uncertainty Awareness
UCSNet(CVPR2020) 论文阅读 UCSNet(CVPR2020) 1. MVSNet 2. UCSNet细节 a. Cascade module b. Plane sweep volume ...
- 论文阅读: Towards Automatic Face-to-Face Translation
文章目录 前言 正文 论文目的 方法 LipGAN Face Encoder Audio Encoder Face Decoder Discriminator network 训练过程 训练细节 前言 ...
- 【论文阅读】Automatic Updating of Land Cover Maps in Rapidly Urbanizing Region
文章名称: Automatic Updating of Land Cover Maps in Rapidly Urbanizing Regions by Relational Knowledge Tr ...
- [HSI论文阅读] | Deep Feature Extraction and Classification of Hyperspectral Images Based on CNNs
写在前面 论文: Y. Chen, H. Jiang, C. Li, X. Jia and P. Ghamisi, "Deep Feature Extraction and Classifi ...
- 【论文阅读】Automatic Detection of Various Malicious Traffic Using Side Channel Features on TCP Packets
原文标题:Automatic Detection of Various Malicious Traffic Using Side Channel Features on TCP Packets 原文作 ...
- 论文阅读:Automatic segmentation of pulmonary lobes using a progressive dense V-network
Automatic segmentation of pulmonary lobes using a progressive dense V-network 使用渐进密集 V 网络自动分割肺叶 2018 ...
- 【论文阅读】Automatic Program Repair
文章目录 前言 1.基本信息 2.主要内容 3.亮点 4.不足 5.其他 小结 前言 本文在此记录2021年IEEE software文章Automatic Program Repair(一作是大佬L ...
最新文章
- js判断数组中重复元素并找出_面试中常遇见的数组去重
- Spring静态资源访问配置
- git回退到之前版本和合并分支查看当前分支切换分支
- 「Python」pandas入门教程
- 演练:在组件设计器中创建 Windows 服务应用程序
- 8位可控加减法器_自主可控:QTouch在军工道系统上的应用
- android mvp模式
- centos6 yum安装mysql5.6_centos 6.5 yum安装mysql 5.6
- 这个事关中国人幸福感的问题,能解决吗?
- Java 设计模式 -- 代理模式
- 缓存装饰器的应用习题练习
- 台式计算机看网络电视,台式电脑无线投屏到电视
- 【郑州校区】BOS v2.0物流管理平台整体概述
- java代理模式的应用场景
- 超级计算机x5670,x5670相当于什么cpu
- 三流Offer看薪资、二流的Offer看平台,一流的Offer看...
- oracle北京时区,ORACLE中的时区(time zone)
- win10如何去掉电脑桌面快捷方式图标小箭头?(强迫症必看)--附还原方法
- (最简单)Java 格式化数字每3位加逗号分隔(自己封装好的工具类,直接可用)
- 【前端】JS批量生成调查问卷选项
热门文章
- 大学计算机张青答案,《大学计算机Ⅰ》实验报告实验一1
- firefox启动很慢 linux_Firefox启动太慢怎么办
- python图像跟踪代码_python如何实现图像外边界跟踪 python实现图像外边界跟踪代码示例...
- html可以用坐标画svg图吗,HTML5如何使用SVG的方法示例
- oracle工作日执行job,Oracle中执行Job定时执行
- AcWing1077. 皇宫看守(树形DP)题解
- Python之调用函数
- #CSP 201912-2 回收站选址(C语言)(100分)
- TorchNet的学习笔记
- Python——相对路径的学习笔记