阿里巴巴神密的人物抠图算法内幕

 

电商环境中,商品的图片展示比文字展示对顾客购买有更直观的吸引力,尤其在购买衣服时。阿里巴巴的百万卖家各个都是ps大师,想必大家都领教过^_^。
传统的方法需要富有经验的设计师交互式的抠图,效率低下,阿里巴巴的视觉研究团队希望使用技术手段帮助卖家一键完成非幕布的自然场景人物抠图。

发表于ACM MM2018会议的论文《Semantic Human Matting》,揭示了阿里巴巴在这方面的数据库和算法设计。


论文称,这是第一个能够完全自动化精细抠图的工作。(其实前几天52CV君介绍了一篇SIGGRAPH2018的论文语义软分割也是类似算法,而且开源了)

下图展示了抠图的应用,计算图像的alpha mate,可以方便将其与其他背景图像合成。

数学上表达这个合成的过程很简单:

F是前景即人物图像,B是背景图像。

数据库制作HUMAN MATTING DATASET
要解决这个问题,首先需要有大规模数据库,学术界研究Matting的数据库往往都很小,难以训练出较满意的结果。
这一步,某宝卖家立大功了!为科研做出了杰出贡献!
论文从某电商平台(嗯,论文中没明说)收集了188K幅由卖家手动抠出来的含有alpha mate的图像,花了1200个小时(50个24小时)从中小心翼翼选择了35311幅高质量含人物的图像,并结合DIM数据集(含有202幅前景图,与自然图像合成20200幅图像),组成了含有52511幅图像的超大规模的Human Matting Dataset。
human matting dataset数据源组成:

human matting dataset与其他同类数据库的比较:

部分数据库中图像示例:

网络架构
该文使用结合语义分割的端到端的深度学习神经网络预测alpha mate。
网络结构如下:

该网络(SHM)主要分为三大部分,T-Net,M-Net,Fusion Module。
T-Net为语义分割模块,使用PSPNet,输入是原始图像,其输出结果是含有前景、背景、未知区域三种类别图像的三色图(trimap)。语义分割是一种粗略的前景提取。
注:在传统Matting的场景中,三色图trimap是由用户手动标注的,可以理解为对图像“完全正确的粗略分割”。
M-Net是细节提取和alpha mate生成网络,使用类VGG16的网络结构,其输入时原始图像和T-Net输出的三色图。
Fusion Module是对T-Net输出的三色图中前景和M-Net输出的alpha mate的加权融合模块,目的是结合语义分割和细节提取进一步提精alpha mate。

网络训练的时候,T-Net和M-Net事先单独预训练,然后整个大网络端到端训练。

实验结果
因为以往算法都需要人工交互得到的三色图trimap来比较matting的性能,而本文算法是完全自动的。为便于比较,作者设计了两个实验。将alpha mate与groundtrut相比较的具体评价标准不再赘述,感兴趣的读者请阅读原论文参考文献21。
1.将T-Net生成的三色图作为传统算法的三色图输入,比较算法生成的alpha mate质量。
结果如下:

该论文的全自动的SHM算法取得了明显的优势!

2.将手动标注的三色图作为传统算法的三色图输入,比较算法生成的alpha mate质量。
结果如下:


该论文的全自动的SHM算法尽管不是最好的结果,但已经取得了与有人工交互参与的最好结果相匹敌的性能。

下面是算法在测试图像上生成的结果示例图像:

作者然后进一步研究了算法中各部分对性能的影响,发现各部分均有贡献,其中“end-to-end”的训练获得最大的算法性能增益。

算法各部分输出结果可视化:


a为原图,b为T-Net生成的三色图,c为M-net输出的alpha mate值,d为最终融合模块预测的结果。

下面是SHM算法在实际自然图像中抠像并合成新背景的图像:

52CV君认为自然场景的人物抠图还是蛮有意义的,用在移动视频直播换背景等将大有可为。
这篇论文挺有价值,但更有价值的是某宝卖家给阿里贡献的这个数据集!希望官方能够提供下载就好了。

工程主页
https://arxiv.org/abs/1809.01354v1

推荐文章

         数据标注行业的快速发展导致从事数据标注行业的从业人员也呈现爆发性成长,正是因为数据标注行业从业门槛低,需求量大,从而也出现了大量的数据标注兼职人群。        那么对于很多想从事数据标注兼职的人群来说目前数据标注员兼职平台有哪些?有哪些数据标注兼职平台?        接下来通过我们就来梳理下目前数据标注兼职的平台以及数据标注项任务的特点:            1.通过我们调查,目前网络上还没有正规专业的数据标注兼职平台。因为数据标注项目的特殊性,有许多项目也是无法通过兼职平台来放任务的。            2.目前数据标注主要还是通过众包 ,分包任务的形式来分发任务            3.目前适合个人兼职的数据标注平形式主要有以下几类                    a. 百度众包、京东众包、科大讯飞这类平台 也有很多适合个人的项目,这种大平台信誉价格方面都可以保证的                    b. 还有就是目前主要的数据标注兼职途径,这类就是 微信QQ社群里面好多手上有项目的公司他们通过微信QQ群招收兼职人群做任务,这类途径的任务有些会因为信誉问题辛苦劳动而不结账找不到人的。                    c. 数加加、数据堂等信息小程序的任务形式 ,这类平台一般价格低                    d.像猪八戒这种微客平台,走任务担保形式。                    f. 还有就是如找标注网这种专业的找标注项目,找标注团队,标注数据采集,供需双方信息交流数据标注接单平台,平台上活跃着相当多的项目团队,标注项目完全需要供需双方商谈。             

热门文章

简单讲:互联网数据标注员是借助电脑或者移动设备对一些原始的数据进行处理,生产出满足AI公司机器学习需要数据的一群人。按照数据处理对象的不同,工作内容也会有差别,标注员的工作内容可以分为:分类;框选;注释;标记。按照所处公司的不同,标注员的工作方式也会有差别:有的人工智能公司处于对数据安全性考虑会自建标注团队,在这些公司工作的标注员可以保证自己工作内容不会出现太大变动;但一些服务于人工智能公司非专业外包公司标注员的工作则是项目制的,一个项目忙完紧接着做另一个项目,这样工作内容连续性较差,对一种类型的项目经验也不会积累的太多。就目前来说,人工智能还处于人工增长阶段,机器依然需要大量的数据进行训练,测试。标注员在当下也会一直存在,而且从业群体会越来越多,所以暂时不用担心这份职业会不会短期消失。就标注员从业来说,建议选择人工智能公司和专业的数据公司,这样可以保证自己在一个方向上了解的足够深入。就职场晋升来说,以牛牛数据为例:标注员——项目经理——项目总监——数据运营总监。首先谈谈什么是数据标注。数据标注有许多类型,如分类、画框、注释、标记等等,我们会在下面详谈。要理解数据标注,得先理解AI其实是部分替代人的认知功能。回想一下我们是如何学习的,例如我们学习认识苹果,那么就需要有人拿着一个苹果到你面前告诉你,这是一个苹果。然后以后你遇到了苹果,你才知道这玩意儿叫做“苹果”。类比机器学习,我们要教他认识一个苹果,你直接给它一张苹果的图片,它是完全不知道这是个啥玩意的。我们得先有苹果的图片,上面标注着“苹果”两个字,然后机器通过学习了大量的图片中的特征,这时候再给机器任意一张苹果的图片,它就能认出来了。这边可以顺带提一下训练集和测试集的概念。训练集和测试集都是标注过的数据,还是以苹果为例子,假设我们有1000张标注着“苹果”的图片,那么我们可以拿900涨作为训练集,100张作为测试集。机器从900张苹果的图片中学习得到一个模型,然后我们将剩下的100张机器没有见过的图片去给它识别,然后我们就能够得到这个模型的准确率了。想想我们上学的时候,考试的内容总是不会和我们平时的作业一样,也只有这样才能测试出学习的真正效果,这样就不难理解为什么要划分一个测试集了。我们知道机器学习分为有监督学习和无监督学习。无监督学习的效果是不可控的,常常是被用来做探索性的实验。而在实际产品应用中,通常使用的是有监督学习。有监督的机器学习就需要有标注的数据来作为先验经验。在进行数据标注之前,我们首先要对数据进行清洗,得到符合我们要求的数据。数据的清洗包括去除无效的数据、整理成规整的格式等等。具体的数据要求可以和算法人员确认。二、常见的几种数据标注类型1.分类标注:分类标注,就是我们常见的打标签。一般是从既定的标签中选择数据对应的标签,是封闭集合。如下图,一张图就可以有很多分类/标签:成人、女、黄种人、长发等。对于文字,可以标注主语、谓语、宾语,名词动词等。<img src="https://pic2.zhimg.com/50/v2-df93dc0a7e8a5fe387dc3774748b5f05_hd.jpg" data-caption="" data-size="normal" data-rawwidth="700" data-rawheight="400" class="origin_image zh-lightbox-thumb" width="700" data-original="https://pic2.zhimg.com/v2-df93dc0a7e8a5fe387dc3774748b5f05_r.jpg">适用:文本、图像、语音、视频应用:脸龄识别,情绪识别,性别识别2.标框标注:机器视觉中的标框标注,很容易理解,就是框选要检测的对象。如人脸识别,首先要先把人脸的位置确定下来。行人识别,如下图。<img src="https://pic2.zhimg.com/50/v2-7824903d6d840e2bb08d96b5c2fa5874_hd.jpg" data-caption="" data-size="normal" data-rawwidth="591" data-rawheight="398" class="origin_image zh-lightbox-thumb" width="591" data-original="https://pic2.zhimg.com/v2-7824903d6d840e2bb08d96b5c2fa5874_r.jpg">适用:图像应用:人脸识别,物品识别3.区域标注:相比于标框标注,区域标注要求更加精确。边缘可以是柔性的。如自动驾驶中的道路识别。<img src="https://pic3.zhimg.com/50/v2-4bc1dd2278182acf94fc426d7e6f2dc1_hd.jpg" data-caption="" data-size="normal" data-rawwidth="601" data-rawheight="377" class="origin_image zh-lightbox-thumb" width="601" data-original="https://pic3.zhimg.com/v2-4bc1dd2278182acf94fc426d7e6f2dc1_r.jpg">适用:图像应用:自动驾驶4.描点标注:一些对于特征要求细致的应用中常常需要描点标注。人脸识别、骨骼识别等。<img src="https://pic4.zhimg.com/50/v2-5e24f394516c75e45942c37ba0da85c0_hd.jpg" data-caption="" data-size="normal" data-rawwidth="583" data-rawheight="387" class="origin_image zh-lightbox-thumb" width="583" data-original="https://pic4.zhimg.com/v2-5e24f394516c75e45942c37ba0da85c0_r.jpg">适用:图像应用:人脸识别、骨骼识别5.其他标注:标注的类型除了上面几种常见,还有很多个性化的。根据不同的需求则需要不同的标注。如自动摘要,就需要标注文章的主要观点,这时候的标注严格上就不属于上面的任何一种了。(或则你把它归为分类也是可以的,只是标注主要观点就没有这么客观的标准,如果是标注苹果估计大多数人标注的结果都差不多。)三、有什么发展前途?数据标注员可以说是AI消灭了一部分工作又创造出来的一种工作。在未来AI发展良好的前提下,数据的缺口一定是巨大的。可以预见3-5年内数据标注员的需求会一直存在。至于发展,其实所谓一些熟能生巧的工作,都是有被替代掉的风险的。深度学习解决的一件事情就是熟能生巧。在这个岗位上,其实你的一些想法就代表了AI的想法,AI会根据你标注的数据进行学习,想想还是有点成就感的。数据标注可以说是AI的入门级岗位,未来可转向其他AI岗位。如项目实施顾问等,这就要求更多的工作技能,需要再工作中积累。作者:跹尘链接:https://www.zhihu.com/question/30654399/answer/264828926来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。