最近,抖音推出了一款动漫特效滤镜“变身漫画”,能够让用户在直播中,把自己的现实形象瞬间转变为二次元“画风”。对于动漫二次元爱好者来说,“打破次元壁,变身纸片人”这种自娱自乐方式可谓久玩不腻。在此之前,各种美颜修图和视频直播类app也都纷纷开发了类似功能,但没有一个能够让用户拥有“二次元分身”。那么,这种能够“动起来”的二次元滤镜,背后隐藏什么黑科技呢?
从计算机视觉制作的角度讲,把一张图片与另一张的视觉要素相混合,称为风格迁移(style transfer)。像抖音这样在全球拥有上亿用户的短视频社交平台,同时要应对如此多用户的视觉滤镜呈现,就需要人工智能算法加持,尤其是“卷积神经网络”(Convolutional Neural Network, CNN)。卷积核一般都不大,有的5x5,有的3x3,好比工兵的地雷探测器,去探测图片里存在的模式。
信息逐级加工,最终得到一个分类识别的结果。
今天的AI,要想识别视觉形象,必须首先教它“学会”特征提取。科学家们如果想要人工智能识别一些基础物体,比如人脸、汽车、动物,和椅子,那么首先就要把这些物体的特征“提取”出来,交给人工智能去“记忆”。然而可怜的人工智能“智商捉急”,只能再把这些特征进一步简化为第三行图中的简单形状符号,加以“死记硬背”。
而人工智能领域的科学家,就必须像耐心的父母教育小朋友那样,不断调整,优化这些最基础的形状符号,把它们变成机器能够理解的“卷积核参数”。
卷积核里的数字决定了它能探测到什么样的特征,或者是轮廓,或者是形状,也可能是纹理,而“风格”就是各式特征的组合。这些负责判断不同图形特征的卷积核分层排列在一起,就成了卷积神经网络。
对于AI这个小朋友来说,它看的绘本,是ImageNet:一个具有1000类、数千万张图片的超大型数据集。卷积神经网络就像一个笨笨的小朋友,成天在ImageNet里面玩着“看图识物”的训练游戏,久而久之,它逐渐具备了相当的特征提取能力。
要让人工智能实现对大批量的实时图像进行批量风格迁移,就好比让这个笨笨的小朋友先浏览一大堆物品的形状和颜色,然后再训练他提取不同的特征,最后形成图像。对抗网络(Generative Adversarial Network),由两套独立的人工智能网络构成,分别是生成网络(G)与判别网络(D)。生成网络就是那个画画的笨孩子,判别网络就像是个严格的美术老师,负责给孩子的作品打分。
在这个不断博弈的过程中,两个网络的能力都得到了提升。训练完成之后,判别网络作为“工具人”就可以暂时领便当休息了,留下生成网络(G),用以产生图像。当然,现实生活中能够形成严格对应关系的物体并不多。为了确保精度,AI工程师会同时引入两套生成网络。
比如我们要把一匹马的照片变成斑马,但很明显,现实中你可以找到两只除了颜色外,一模一样的鞋子,但不可能存在两匹体型和五官特征完全相似的马与斑马,所以就需要两个生成网络各司其职。
有了CycleGAN算法,我们就像有了仙女棒,随意变老变小变漂亮。
这套算法,就是隐藏在现在市场上大多数美图软件滤镜后的幕后功臣,什么“LOMO风格”,“甜美日系”,“黑白简笔”,“美白磨皮”,都可以让用户轻松一键搞定,完成瞬间“变身”。不过,要把自己的视觉形象在抖音里转化为相似的二次元纸片人,还有最后一个门槛,因为次元壁并不是那么好打破的,真实人脸和卡通人脸之间的结构差别太大,很难捕捉面部基本特征。
更重要的是,这些二次元形象,还必须跟随着视频中的真人形象“动起来”,这就涉及到巨量的运算。成千上万的用户同时使用滤镜,就会形成海量的运算数据,如果单纯依靠云端计算,分析这些视频数据,再想办法为每个用户量身定制,画出二次元形象,那么很可能造成卡顿,进而会影响用户的体验感。
为了避免卡顿,这些经过训练之后的面部识别模型,会随着软件更新,“下发”到每个用户的手机上,把每个抖音用户手机里的CPU和GPU运算力也“动员”起来,进行实时的推理(inference)计算。
能够自行根据模板进行创造的AI图像生成技术,未来可能为我们开辟许多不可思议的电子互动娱乐场景与模式。想想看,戴上拥有这项功能的VR/AR设备随手一挥,画廊中莫奈的名画变成了摇曳生姿的实景AR景观,动动手指,屏幕上的电影或二次元动漫角色就打破次元壁来到你身边——自己和儿时的偶像,“龙珠”中的小悟空并肩战斗,在VR场景中一起发出龟派气功波,有多么热血!