参考:
https://www.jianshu.com/p/8c7a7cb7198c
https://blog.csdn.net/gdymind/article/details/82696481
零、前言
最近一个叫deepnude的软件火了,开发它的程序员声称这个软件可以一键“脱掉”照片中女性的衣服(因为AI训练素材的原因也只能是女性),deepnude推出了免费版和付费版,免费版中间有一个大大的水印基本啥都遮住了,付费版就只是在照片的左上角注明了“FAKE”。该软件一经推出就掀起了很大的舆论争议,最近该软件的开发者迫于压力关掉了网站和软件下载(改善生活的企图END)并表示该软件并没有使用很高深的技术,只是pix2pix算法的一种应用(基于大量学习)。这里我们就简单介绍下pix2pix这个AI框架,如果你对deepnude本身感兴趣的话可以关注公众号“程序员防脱发中心”回复“deepnude”获取更多信息。
一、逆图片识别
深度学习经过多年发展已经很容易实现AI的万物识别,以前调侃过的AI民工(数据标注员)主要工作就是对大量图片或数据进行标注,不断训练AI,达到的效果就是“看猫是猫”、“看狗是狗”。啥意思呢,简单来说就是给一张猫图能识别出这是个猫,给个狗图就知道是狗,推而广之就是人脸识别、车牌识别、场景识别等等、等等。
接着我们自然就会想到说,那能不能把这个过程反过来,给AI一个“猫”让它返回一个猫图呢?
很遗憾,不行!对于AI来说,知道是猫和画个猫其难度与人类学画画是一样一样的。
二、生成对抗网络GAN
为了教AI学会画猫,科学家们整出了GAN,GAN主要包含两个元素:G和D,G用来生成随机图片,D用来判断这个图片是否符合要求。比如使用G来不断生成随机图片,D判断图片是否是猫图。GD互相作用相互锻炼,如果D足够聪明的话,在一段时间的学习后G生成的图片就越来越像猫,最终就可以源源不断地生产猫图啦。
前段时间大火的猫图生成器使用的就是这么个原理(还有卡通头像、美女图片等),不过光生成随机图片还不过瘾啊,能不能生成用户需要的图片呢?比如站着的猫、躺着的猫、睡觉的猫?
三、成对训练pix2pix
GAN使用的方法是生成随机图片,然后判断是否是猫,这种模式的后果就是你得到的总是随机猫图。科学家们又想了个点子,能不能在判断之前先给出正确答案,让G生成的猫图越来越靠近我们需要的样子?于是就有了成对训练pix2pix。
这个算法的核心就是给出AB两个成对的图片来进行训练,如下图所示。对AI进行大量训练后,当我们给出一个X时,AI就能自动将X转化为Y。
理论上deepnude就在pix2pix的基础上对大量女性图片(X)和大量果体图片(Y)进行训练,最后达到的效果就是随机给出一个X,AI自动生成果体Y,当然具体操作上会比较复杂。
四、总结
这里只是对pix2pix做了个简单的介绍,后续还会继续补充更多学习资料,敬请关注“程序员防脱发中心”!如果你对deepnude本身感兴趣的话可以关注公众号“程序员防脱发中心”回复“deepnude”获取更多信息。