龙空技术网

CFan科学院:零门槛极速抠图技术探秘

电脑爱好者 113

前言:

当前大家对“grabcut算法原理”可能比较珍视,兄弟们都需要分析一些“grabcut算法原理”的相关资讯。那么小编在网络上收集了一些对于“grabcut算法原理””的相关文章,希望小伙伴们能喜欢,各位老铁们一起来了解一下吧!

将照片中的人或物从背景中分离出来,俗称抠图。要实现完美的抠图,没有一定的PS(Photoshop)基础是根本无法实现的,不过现在有个名为Remove.bg的网站,号称5秒钟就可以完成复杂的抠图,彻底将抠图难度降到了零门槛!这个工具到底是怎么实现极速抠图的呢?让我们一探其背后的技术内幕。

抠图曾经是技术活

平时我们拍摄的图片,前景的人或物往往是和作为背景的风景紧密结合在一起的,要想实现精准抠图并不容易,需要经过一系列精细的操作(图1)。

图1 抠图步骤图解

我们以通道抠头发丝操作为例。首先需要找出对象最清晰的通道,接着复制通道,再对通道的色阶进行调整,然后使用画笔工具涂抹人物以及需要的头发部分,最后进行反向选择、图层复制等操作才能完成一次抠图操作(图2)。过程中,因为头发丝比较细小而且混乱,光是涂抹选取就需要花费大量的时间。

图2 通道抠图操作

除了上面的介绍外,如果抠取复杂背景的图片,还可能需要多种工具结合在一起使用,这就必须了解蒙版、通道、快速选择、图层模式等等知识。正是因为抠图的专业性很强,因此对于普通人来说要想熟练掌握抠图技巧,就得反复不断的练习,这绝对是件技术活。

极速抠图让普通人变身PS大神

大部分人并没有时间花费在抠图学习上,所以各种抠图工具应运而生,其中比较引人注目的是新近出现的Remove.bg网站,他们声称可以将这个复杂的技术活零门槛化。在网站的演示中可以看到,即使是类似头发丝的高难度抠图操作,通过网站的处理也可以轻松完成(图3)。

图3 网站抠图演示

Remove.bg的极速抠图,其实是借助具有深度学习功能的Python工具来实现的。Python是一种程序开发语言,经常被设计用于编写自动化脚本(Shell),通过一系列的脚本代码实现很多自动操作,抠图便是它在图像领域中的一个典型应用(图4)。

图4 Python语言

在Python抠图处理的脚本中,脚本代码首先选定要抽取对象的区域,通过一定的算法将图像识别为区域内(前景)和区域外(背景)两部分。接着基于选定区域,其中的Grabcut算法会对图像背景和前景进行分割,同时循环处理前景内容,将其中的前景提取出来并将背景内容删除,从而实现抠图(图5)。

当然仅仅依靠脚本无法完全实现对任意图像背景和前景进行分割,为了能够让脚本有着更高效和精准的处理功能。Remove.bg将Python自动处理脚本和深度机器学习结合起来,为了让脚本可以精准识别出前景物件,开发者预先借助一些机器学习库和Python框架来制定一些算法,如Scikit和Tensorflow机器学习算法。这些算法可以自动检测输入中的模式,这样开发者先将一些图片给算法学习,输入很多前后景混合的人物照片让机器学习。以输入斑马在草原上的照片为例,算法可以将照片中的老虎和草原环境识别出来(图6)。

图6 机器算法

为了让算法拥有更高的识别能力,开发者还准备了很多类似的斑马图片,比如斑马在动物园中、笼子里、树丛中的各种图片供机器学习。利用深度学习和神经网络,通过海量图片的学习和自我纠错,使得机器算法最终对各种照片中的前景后景能精准识别出来。

最后开发者将这套算法生成的模型部署在Remove.bg服务器端,用户只要通过网站上传图片,网站后台的算法就可以实现对照片前景后景的准确识别并实现抠图,用户只需稍等片刻,然后下载处理好的抠图就可以了(图7)。

图7 Remove.bg抠图流程图解

Python不仅仅会抠图

如上所述,借助Remove.bg网站,普通人通过部署在网站的算法服务就可以实现快速抠图,这样大大降低抠图的技术难度。比如想在朋友圈满足下自己在全球各地的旅游美图,那么只要自拍一张人物照,然后上传抠图,并将抠图贴在国外旅游景点上就OK了。当然也可以进行各种恶搞特效制作。

其实不仅仅是抠图,Python的自动处理脚本还可以应用到更多的领域。比如可以借助脚本对照片中人物脸部的识别,结合人脸识别技术快速在众多的监控照片中提取犯罪嫌疑人照片。再比如将其应用到网站购物上,通过自动识别将各大购物网站同类商品全部提取出来供我们选择、参考,我们的生活将因此而越来越便利。

标签: #grabcut算法原理