有时候,我们需要遮盖一些人的纹身,避免被模仿。有时人们只是好奇一些最大的明星如果没有纹身会是什么样子。印度机器学习研究员VijishMadhavan最近开源的一款机器学习工具SkinDeep满足了我们的需求。网友们还用这个工具处理了一些纹身很重的人的照片,效果还不错。该项目的作者VijishMadhavan在看了加拿大歌手贾斯汀比伯的MV《Anyone》后萌生了做这个项目的想法。贾斯汀比伯在化妆师的帮助下花了几个小时来遮盖他所有的纹身。MV视频效果完美,因为制作视频输出难度很大,所以项目作者选择图片进行处理。该项目的出发点是深度学习能否完成这项工作,它与Photoshop相比如何?项目地址:https://github.com/vijishmadhavan/SkinDeep有人会问,为什么不把纹身直接PS掉呢?Photoshop可以产生非常好的效果,但问题是使用Photoshop需要专业知识,如果你在Photoshop中做一个纹身,你可能要花几个小时来修饰整个图像。先来看看效果吧?艾弗森(美国篮球运动员)的纹身是用这个模型去除的。下图中,第一行是输入图像,第二行是输出图像。输出结果明显感觉纹身已经去掉了。脸上有很多密密麻麻的纹身,还有其他装饰的图片,AI的纹身去除效果也很好:对比专业图像处理软件photoshop,效果也不错:看来SkinDeep的效果还不错,但如果纹身是彩色的,就会有一些残留的痕迹。项目介绍据作者介绍,完成这个项目需要大量的图像对,因为没有合适的数据集,而且很多时候训练内容都是使用合成数据完成的。图像叠加在一起,使用PythonOpenCV实现;绘图数据集有线条艺术对,可以模拟纹身线条,这将有助于模型学习和去除这些线条;APDrawing数据集只有头像,对于全身图,项目作者使用项目之前的ArtLine,将输出与输入图像叠加;ImageDraw.Draw使用森林绿(forestgreencolor)色码,随机放置在人体图像上,类似于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像素。虽然限制纹身的机器学习模型看起来并不复杂,但有时在现实世界的奇怪情况下还是会出现一些“映射错误”。该项目的建设者表示,由于缺乏数据集支持,用于训练的数据集规模有限。另外,如果有人身上有彩色纹身,恐怕人工智能还无法识别。如果把这种效果做成网站,或者美妆应用中的滤镜,那就太好了。最后,SkinDeep可以反向给人加纹身吗?“试穿”的效果可能会流行起来。
