您的位置: 首页>滚动新闻 > >正文

AI一键去纹身,几秒钟让你看见明星「真面目」

2021-04-13 10:34:28来源:

有些时候,我们需要把一些人身上的纹身覆盖掉,以避免引人效仿。有的时候人们只是单纯地好奇,想知道一些大明星如果没有纹身会是什么样子。来自印度的机器学习研究者VijishMadhavan最近开源的一个机器学习工具SkinDeep满足了我们的需求。

网友们也使用这一工具去处理了一些画了重度纹身的人物照片,效果还不错。

该项目的作者VijishMadhavan在看完加拿大歌手贾斯汀·比伯的MV《Anyone》后,萌生了做这个项目的计划。贾斯汀·比伯在化妆师的帮助下花了好几个小时的时间才把他的一身纹身覆盖掉。

MV视频的效果非常完美,因为制作视频输出是非常困难的,因此项目作者选择图像来处理。该项目的起点是深度学习能否胜任这项工作,与photoshop相比又如何?

项目地址:https://github.com/vijishmadhavan/SkinDeep

有人会问,为什么不把纹身直接PS掉?Photoshop可以产生非常好的效果,但问题是使用Photoshop需要专业知识,如果用PS处理纹身的话,你可能需要花费几个小时的时间去修饰整个图像。

我们先来看一下效果如何?阿伦·艾弗森(美国篮球运动员)的纹身就是用这个模型去掉的。

下图中第一行为输入图像,第二行为输出图像,输出结果明显感觉到纹身被去除了。

脸部有大量密集纹身的图像,还有其他装饰,AI的纹身去除效果也非常好:

与专业图像处理软件photoshop相比,效果也不错:

看起来SkinDeep的效果还不错,但如果纹身是彩色的,还会有一些残留的痕迹。

项目介绍

根据作者介绍,完成这个项目需要大量的图像对,因为没有合适的数据集,很多时候训练内容采用合成数据来完成,具体来说:

首先将APDrawing数据集图像对与一些背景去掉纹身设计的图像叠加在一起,使用PythonOpenCV实现;

绘制数据集有线条艺术对,可以模拟纹身线条,这将有助于模型学习和删除这些线条;

APDrawing数据集只有头像,对于全身图像,项目作者采用了以前的项目ArtLine,并将输出与输入图像叠加在一起;

ImageDraw.Draw与森林绿色(forestgreencolour)色码一起使用,并随机放置在身体图像上,类似于fast.ai中的Crappify;

Photoshop也被用来在需要弯曲和角度改变的对象上放置纹身。

这一项目是由Fast.AI库构建的,你需要安装fastai1.0.61版(及其依赖库),以及PyTorch1.6.0,不支持更高的版本。

尝试这一项目的最快方法就是在Colab上:

https://colab.research.google.com/github/vijishmadhavan/SkinDeep/blob/master/SkinDeep.ipynb

它的输出限制为500像素。

限制

去纹身的机器学习模型虽然看起来并不复杂,但在现实世界千奇百怪的情况下,有时仍然会出现一些「贴图错误」的情况。该项目的构建者表示,由于缺乏数据集支持,所以用于训练的数据集容量有限。另外,如果有人纹了彩色纹身,恐怕人工智能目前还是认不出来的。

如果这个效果被做成网站,或者成为美颜app的一个滤镜,那就太好了。最后,SkinDeep能不能反过来给人加纹身呢?「试穿」的效果或许会火起来。

来源:51CTO

相关阅读
  • 国内
  • 社会
  • 财经
  • 娱乐
  • 滚动
  • 粤港澳
  • 大都市
推荐阅读