揭秘阿里妈妈智能抠图算法:简单几笔,精准抠图

简介: 阿里妈妈智能抠图编辑器旨在为设计领域提供简单、易用的在线抠图工具。用户只需要简单几笔甚至不需要任何操作即可以将目标从图片中高精度提取出来,包括头发丝,婚纱,玻璃瓶、烟雾等半透明区域。

小叽导读:阿里妈妈智能抠图编辑器旨在为设计领域提供简单、易用的在线抠图工具。用户只需要简单几笔甚至不需要任何操作即可以将目标从图片中高精度提取出来,包括头发丝,婚纱,玻璃瓶、烟雾等半透明区域。该工具中使用的自动人物抠图算法(Semantic HumanMatting)为阿里妈妈自研算法,目前已经被多媒体领域国际顶级学术会议 ACM MultiMedia2018接收。


背景

image.png

抠图是一项从图片中将目标前景高精度提取出来的图像处理技术,其被广泛应用在图像编辑、混合现实、创意合成和电影制作工业中。在像阿里巴巴这种大型电商平台中,无论是店铺内部的商品展示,还是用于广告投放的创意,图片都是重要的载体。而精美创意图片的制作,掌握复杂且耗时的精细抠图方法,往往是设计师绕不开的问题,相信设计领域的同学经常使用PS来抠图,对这一点应该深有体会。

如果有一个工具,设计师不需要专门的抠图培训,只需简单几笔,甚至不需要任何操作即可以将目标从图片中高精度提取出来,还能处理包括头发丝、婚纱、玻璃瓶、烟雾等这种半透明区域,将设计师从复杂耗时的抠图流程中解放出来,专注在设计本身,应该能极大赋能设计领域。而这正是阿里妈妈智能抠图编辑器期望解决的问题,其中图1即为机器自动抠图,然后应用在创意图片制作的例子:

image.png

图1:机器自动抠图在创意图片制作中的应用 [1]

提起抠图,大家肯定会联想到计算机视觉中的一个经典任务:图像分割(ImageSegmentation),特别是随着深度学习的兴起,图像分割任务受到越来越多的研究者和公司的重视和投入,不断有大型数据集被发布,分割类别也从两类分割(BinarySegmentation)到几十类分割,甚至几千类的分割,分割任务也从语义分割(SemanticSegmentation)进化到了实例分割(Instance Segmentation),分割效果也达到了前所未有的精度。大家也就很自然想到使用图像分割作为抠图背后的算法,但我们认为即使目前公开的最优秀的分割模型结构(如Mask-RCNN等)在目前公开的最大型的分割数据集(如COCO等)上训练得到的结果也很难满足图像编辑这种高精度的,带半透明度的严苛要求。

这其中的原因包括数据集制作的方法(Segmentation的数据集的Label为二值化的Mask),模型结构设计等等因素。图2展示了Matting和Segmentation得到的抠图结果在图片合成中的不同效果。可以看到Segmentation的结果比较“硬”,合成图片中有比较明显的PS痕迹。

image.png

图2:Matting和Segmentation的不同抠图效果在图片合成中的不同效果,图片来源于 [2]

在学术领域,抠图一般叫Image Matting,其可以被形式化为如下数学问题:

I=αF+(1−α)B,α∈[0,1]

其中I为输入图像,α为半透明度,F为目标前景,B为背景,该公式中除了I以外,α, F和B都是未知的,这显然是一个高度欠定问题,直接求解是非常困难的。因此,为了缓解这一问题,学术界引入了Trimap这一概念作为约束。Trimap,即图3中的图(b),一般通过用户交互得到,它将图像划分为3个区域,分别为确定前景,确定背景和不确定区域,这样通过从用户中得到的Trimap作为约束,极大的提高了抠图效果。

目前学术界中的绝大多数抠图方法都采用了这一思路,但Trimap一般需要用户提供,画Trimap也是一个较耗时和需要“技术”的事情。因此,我们希望完全不需要人工交互,或者只需要较少的人工交互,即可提供不错的抠图结果。基于这个思路,我们提出了全自动的人物抠图算法和制作了带有少量人工交互功能的任意物体在线抠图编辑器。

image.png

图3:学术领域中Image Matting基本概念介绍,图片来源于 [3]

自动人物抠图

服装类目作为淘宝天猫的重要类目,其中的商品展示图片包含了大量模特,为模特或者人物制作专门的自动抠图算法具有重要应用价值。基于这个应用出发点,我们研发了自动人物抠图算法,下面简单介绍我们为处理该问题所做的思考和工作。

Pipeline

设计一种全自动的人物抠图方法并不是一件容易的事情。如上文所介绍,人们很容易想到直接借助目前计算机视觉领域SemanticSegmentation或者Image Matting技术来解决,但我们认为直接应用他们中的任何一种方法都很难拿到令人满意的效果。

我们首先来考察SemanticSegmentation,目前的Semantic Segmentation模型通常聚焦在相对来说比较粗糙的语义信息判别,而常常容易模糊掉结构化的细节,如头发丝,网状区域等,也不能预估如婚纱这种典型的半透明度区域的半透明度。然后我们来考察具有提取半透明区域能力的Image Matting方法,如前所述,这种方法往往需要用户给定的Trimap作为约束,这种需要用户参与的方式,就自然阻碍了全自动的过程。因此在这篇论文中,我们将SemanticSegmentation模块集成到了一个基于深度学习的Matting模块中,来实现人物的自动抠图。

我们将SemanticSegmentation模块学习到的前背景语义信息注入到Deep Matting模块中来完成在提取结构化细节信息和半透明信息的同时,保证语义的完整性。其网络完整结构如下图所示。

image.png

图4:Semantic Human Matting NetworkArchitecture [1]

该网络包含三个模块,负责Trimap预测的语义分割模块T-Net,负责半透明度等细节预估的M-Ne和负责融合语义信息和细节信息的Fusion Module。为了保证整个网络可以end-to-end的训练,以便能够统一优化,得到更好的解,我们提出了一种简单但有效的融合策略,它能够自然的给出alpha的概率估计,从而让T-Net和M-Net自适应的协作,达到在保证语义完整性的同时兼顾半透明等细节。在这个工作中,我们的主要贡献为:

  • 据我们所知,SHM是第一个完全使用深度学习网络来同时学习高级语义信息和低级视觉细节信息的自动人物抠图算法。并且经验结果显示,SHM算法能够取得与state-of-the-art的交互式抠图算法(非全自动,需要用户参与提供trimap)相媲美的效果。
  • 我们提出了一个简单但实用的可微自动融合模块。它能够自动的在每个像素级别上同时考虑粗糙的高级语义信息和精细的低级视觉细节信息,并且让两个子网络协作来完成end-to-end的学习,这对于我们的效果保证非常重要。
  • 为了训练这个网络,我们构造了一个包含52,511张训练图片和1,400张测试图片的大型人物抠图数据集,据我们所知,这是目前最大的Matting领域的数据集。

下面我们主要简单介绍一下Fusion Module、Training Loss和部分实验结果。

Fusion Module

我们使用F, B和U分别表示未经过Softmax的T-Net的输出的三个通道(前景,背景和不确定区域),那么属于前景的概率可表示为:

image.png

image.png

image.png

注意到image.png,上述公式可以重写为:image.png

image.png

Training Loss

我们的训练分为3个阶段,分别为T-Net的pretrain,M-Net的pretrain和整个网络的refinement。T-Net的pretrain过程与常见的semanticsegmentation的训练相似,M-Net的pretrain我们采用了Xu [4]等人提出的alpha predictionloss和compositional loss:

image.png

image.png

Experiments

客观指标

为了训练整个网络,我们构建了目前已知最大的Matting数据集,包含52,511张训练图片和1,400张测试图片。我们采用了Matting领域常用的评测指标SAD, MSE,Gradient Error和Connectivity Error作为客观评价标准[5],并结合state of the art的segmentation网络和Matting方法建立基线。具体指标结果如下:

image.png

除此之外,我们对我们网络中的各个组成成分进行了Ablation实验,验证各个模块的作用。

image.png

可以发现我们方法在各个指标上相比于基线均有明显提高。

我们同时对比了目前state-of-the-art的交互式抠图方法(需要人工提供trimap)与我们方法的效果,如下表所示:

image.png

可以发现,我们的自动抠图方法比绝大多数需要提供trimap的交互式抠图方法效果都好,需要注意的是,上表中别的方法都需要人工提供精确的trimap,而我们的方法除了输入图片之外,不需要提供任何额外信息。虽然我们的方法比Trimap+DIM这种交互式抠图方法在客观指标上要差一点,但在从下节中主观视觉对比中可见,其在视觉上与该种方法差别不太大。

主观视觉对比

我们展示了我们方法与其中几种典型方法的视觉对比,以下为论文截图,更多方法和高清的图片对比请参考论文和补充材料[1]。

image.png

图5:主观视觉可视化对比

image.png

图6:主观视觉可视化对比

中间结果可视化分析

为了更好的理解我们的SHM的工作机制,查看两个子网络是如何协作的,我们对该网络的中间结果进行了可视化,如图7所示:

image.png

图7:中间结果可视化

其中(a)为输入图片,(b)为T-Net预测的前景(绿色),背景(红色)和不确定区域(蓝色)的概率值显示在RGB图像上,(c)为M-Net的输出结果,(d)为经过fusion module之后的最终alpha的预测值。从中我们可以看到,T-Net能够自动的分割出人物的主体部分,并且能够区分出人物轮廓部分划分为不确定区域时哪些地方应该给予较窄的边,哪些结构性细节应该给予较宽的边。并且,由于有T-Net负责主体语义部分,这让M-Net可以更加专注在细节等半透明区域,然后通过fusion module的融合,使我们能够得到高质量的alpha预估结果,而这正符合我们的设计初衷。

交互式抠图编辑器

在自动人物抠图算法的基础上,通过与UED团队,前端团队和算法工程团队合作,我们开发了通用物体的在线抠图工具。

用户只需要简单几笔甚至不需要任何操作即可以将目标从图片中高精度提取出来。该工具的主要目标就是最大程度简化抠图流程甚至完全自动化。下面将简要介绍在线交互式抠图编辑器的主要流程和使用方法。

抠图流程示例

以下我们演示一个能够用到我们整个流程的抠图案例,需要注意的是,并不是每张图片都需要走完全部流程,如果对抠图结果已经满意,可以中途中止流程,完成抠图。

1、登录阿里妈妈创意中心:申请权限并进入抠图工具页面,点击“上传图片”按钮,上传需要抠图的图片。

image.png

2、算法后台会获取图片,并猜测用户可能需要抠取的目标,并将抠图结果自动返回前端页面展示给用户。

image.png

3、用户判断自动抠图结果是否满意或者是否为想要抠图目标,如果满意,点击保存按钮,完成抠图过程。

image.png

4、如果不满意,进入交互式抠图调整流程。使用“选定主体”工具原定如下模特主体,算法自动完成抠图,判断结果是否满意。如果已经满意,保存抠图结果,完成抠图,如果有背景混入,使用“擦除背景”工具去除多余背景,直到满足主体的完整性,如有部分细节缺陷,如部分头发丝缺失或者边缘部分有些许毛刺,可进入“精修模式”调整细节。

image.png

5、如果对抠图精度要求非常高,对细节和般透明度要求非常细腻,可进入“精修模式”。

image.png

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

引用:

[1] Quan Chen, Tiezheng Ge, Yanyu Xu,Zhiqiang Zhang, XinXin Yang, KunGai. 2018. Semantic Human Matting. In 2018 ACMMultimedia Conference(MM’18), October 22–26, 2018, Seoul, Republic of Korea.ACM, New York, NY,USA, 9 pages.

[2] http://webee.technion.ac.il/people/anat.levin/papers/Matting-Levin-Lischinski-Weiss-06.ppt

[3] Wang Jue, and Michael F. Cohen."Image and video matting: a survey." Foundations and Trends® inComputer Graphics and Vision 3.2 (2008): 97-175.

[4] Ning Xu, Brian Price, Scott Cohen,and Thomas Huang. 2017. Deep image matting.In Computer Vision and PatternRecognition (CVPR).

[5] Christoph Rhemann, Carsten Rother,Jue Wang, Margrit Gelautz, PushmeetKohli, and Pamela Rott. 2009. A perceptuallymotivated online benchmark forimage matting. In Computer Vision and PatternRecognition, 2009. CVPR 2009. IEEEConference on. IEEE, 1826–1833.

[6] Anat Levin, Dani Lischinski, andYair Weiss. 2008. A closed-form solution to natural image matting. IEEETransactions on Pattern Analysis and Machine Intelligence 30, 2 (2008),228–242.

[7] Qifeng Chen, Dingzeyu Li, andChi-Keung Tang. 2013. KNN matting. IEEEtransactions on pattern analysis and machineintelligence 35, 9 (2013), 2175–2188.

[8] Donghyeon Cho, Yu-Wing Tai, and InsoKweon. 2016. Natural image matting using deep convolutional neural networks. InEuropean Conference on Computer Vision. Springer, 626–643.

[9] YagızAksoy,TunçOzanAydın,MarcPollefeys,andETHZürich.2017.Designingeffectiveinter-pixel information flow for natural image matting. In ComputerVision andPattern Recognition (CVPR).

目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 监控
AI算法分析,智慧城管AI智能识别系统源码
AI视频分析技术应用于智慧城管系统,通过监控摄像头实时识别违法行为,如违规摆摊、垃圾、违章停车等,实现非现场执法和预警。算法平台检测街面秩序(出店、游商、机动车、占道)和市容环境(垃圾、晾晒、垃圾桶、路面不洁、漂浮物、乱堆物料),助力及时处理问题,提升城市管理效率。
127 4
AI算法分析,智慧城管AI智能识别系统源码
|
6月前
|
机器学习/深度学习 算法 决策智能
智能解决装箱问题:使用优化算法实现高效包装
装箱问题(Bin Packing Problem)是组合优化领域中的一个经典问题,主要涉及如何将一系列对象高效地装入有限数量的容器(或“箱”)中,同时满足特定的约束条件。这个问题的目标是最小化所需使用的箱子数量或者最大化箱子的装载效率,以减少空间或资源的浪费。
|
6月前
|
机器学习/深度学习 算法
【Matlab智能算法】PSO优化(双隐层)BP神经网络算法
【Matlab智能算法】PSO优化(双隐层)BP神经网络算法
|
29天前
|
存储
基于遗传算法的智能天线最佳阵列因子计算matlab仿真
本课题探讨基于遗传算法优化智能天线阵列因子,以提升无线通信系统性能,包括信号质量、干扰抑制及定位精度。通过MATLAB2022a实现的核心程序,展示了遗传算法在寻找最优阵列因子上的应用,显著改善了天线接收功率。
|
2月前
|
机器学习/深度学习 算法 Python
群智能算法:深入解读人工水母算法:原理、实现与应用
近年来,受自然界生物行为启发的优化算法备受关注。人工水母算法(AJSA)模拟水母在海洋中寻找食物的行为,是一种新颖的优化技术。本文详细解读其原理及实现步骤,并提供代码示例,帮助读者理解这一算法。在多模态、非线性优化问题中,AJSA表现出色,具有广泛应用前景。
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现WOA智能鲸鱼优化算法优化支持向量机分类模型(SVC算法)项目实战
Python实现WOA智能鲸鱼优化算法优化支持向量机分类模型(SVC算法)项目实战
332 4
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现WOA智能鲸鱼优化算法优化支持向量机回归模型(LinearSVR算法)项目实战
Python实现WOA智能鲸鱼优化算法优化支持向量机回归模型(LinearSVR算法)项目实战
282 2
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现SSA智能麻雀搜索算法优化支持向量机回归模型(SVR算法)项目实战
Python实现SSA智能麻雀搜索算法优化支持向量机回归模型(SVR算法)项目实战
248 1
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现SSA智能麻雀搜索算法优化支持向量机分类模型(SVC算法)项目实战
Python实现SSA智能麻雀搜索算法优化支持向量机分类模型(SVC算法)项目实战
271 1
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现GWO智能灰狼优化算法优化支持向量机回归模型(svr算法)项目实战
Python实现GWO智能灰狼优化算法优化支持向量机回归模型(svr算法)项目实战
218 1