当前位置: 首页 > 科技观察

AI依靠语义理解,把照片变成抽象画,不需要相应的数据集,只需要四笔就能保留神韵,颇有毕加索的味道

时间:2023-03-12 19:05:54 科技观察

转载请联系出处。仅仅几笔,如何勾勒出动物的简笔画,是很多人从小不理解的问题——现在AI也可以实现了。下图中,左边是三张不同的动物照片,右边是AI只用线条来描述它们的形状和表情。从32笔到4笔,虽然抽象掉了很多信息,但我们仍然可以识别出对应的动物,尤其是最下面的那只猫。只用4条曲线就能展现猫的神韵:看这匹马,抽象到最后,只保留了马头、鬃毛和奔腾的动作,真有点像毕加索的公牛。更神奇的是,它背后的模型CLIPasso并没有在素描数据集上训练——也就是说,它从未“学习”过如何绘制抽象画,并且可以根据文字描述完成粘性素描。要知道日常速写是比较抽象的。即使是人类画出来的,也需要长时间的训练才能抓住物体的“灵魂”。那为什么这个CLIPasso连素描数据集都没有训练就能够得到抽象简笔画的“灵魂”呢?CLIPasso如何画抽象画事实上,AI画抽象简笔画比人类更难。要使抽象画看起来像,就必须准确地理解语义并在几何上相似。在具体实现上,模型会先根据图像的特征图生成初始线的位置,然后使用CLIP构造两个损失函数来控制抽象画的几何相似度和准确的语义理解。其中,CLIP是OpenAI发布的重排序模型。它会通过打分和排名筛选出与文字匹配度最高的图片。这样,CLIPasso的整体结构就比较清晰了:比如我们要画一匹马,首先通过featuremap(saliency)标记出一些初始线(S1,S2...Sn)的位置。然后通过光栅化将线条投影到成像平面:下一步是优化线条参数。将初始图像导入CLIP模型,计算几何损失(Lg)和语义损失(Ls)。其中,语义损失通过余弦相似度判断两幅图像的差异,而几何损失则通过中间层进行控制。这样可以保证在准确理解语义的同时保持几何的准确,然后通过反向传播不断调整线参数,直到损失收敛。如何控制素描的抽象层次?它是通过设置行数。同样,如果你用32笔和只有4笔画一匹马,抽象出来的效果肯定会不一样:最后我们来看看CLIPasso画的这幅画的辨识度如何。下图中的直方图代表了五种动物的识别准确率。但是在猜测时还有第六种选择:这五种动物都不是。从图中可以看出,无论什么动物,在高度抽象(4笔画)时,识别度很低,随着笔画数的增加,识别度会逐渐提高。毕竟这么抽象的画,分不清是什么东西也是正常的。但是,建模团队在第二轮识别测试中删除了第六个选项,这意味着必须对五种动物中的一种进行分类。这时候我们从下面的条形图可以看出,即使是高度抽象的4笔画,识别??率也提升了很多,从36%提高到76%。这说明以前太抽象了,识别不了,但AI毕加索的画还是抓住了动物的核心特征。目前这个模型有colab版本,只需要在左侧文件夹中添加你要抽象的图片,然后运行三部分就可以得到输出图片了。关于作者CLIPasso团队的成员主要来自洛桑联邦理工学院和特拉维夫大学。其中,Jessica是苏黎世联邦理工学院机器人学硕士,目前在洛桑联邦理工学院计算机视觉实验室VILAB实习。而YaleVinker是特拉维夫大学计算机科学博士生,对艺术与科技的交叉领域非常感兴趣。难怪CLIPasso拥有如此丰富的艺术细胞。