本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
别再怕图片搜索结果牛头不对马嘴了,你可以试试这个精准图片搜索,来自OpenAI最新的技术CLIP。
只需一句“大白话”描述,便能给出想要的图片。
例如输入:
The word love written on the wall
就会得到这样的结果:

可以说是相当的精准了!这就是今天在Reddit上爆火的一个项目。

这个项目利用到的,便是OpenAI前不久频频刷屏的DALL·E中的核心模块——CLIP,一个负责重排序(rerank)的模型。
这个项目使用谷歌Colab Notebook,而且在线、免费,包含200万图片数据集,最重要的是效果还非常的精准。
不禁引得网友直呼“Amazing”。
简单几步,“大白话”在线精准搜图
这个项目之所以如此火爆,操作简单是很重要的一个原因之一。
首先要做的,就是点开该项目在Colab Notebook中的地址(见文末链接),登陆自己的账号。

至于环境配置、包或库的调用,这个项目非常贴心的已经做好了,只需要依次点击cell左侧的小三角,等待运行完成即可。

最后,来到包含如下代码的cell:
search_query = “Two dogs playing in the snow”
点击运行这个cell,便可得到搜索图片的结果,例如:


当然,这个程序似乎很懂人,若是输入“当你的代码跑通时的情绪”:
The feeling when your program finally works
得到的结果,和正常人想象中的应该是一致的:


为什么CLIP搜图能如此精准?
OpenAI前不久推出的DALL·E,主要能实现的功能就是 可以按照文字描述、生成对应图片。
而其呈现给我们的最终作品,其实是它生成大量图片中的一部分。
在中间过程中,其实也有排名、打分的帅选过程。
这部分的任务,便是由CLIP来完成:
越是它看得懂、匹配度最高的作品,分数就会越高,排名也会越靠前。

这种结构,有点像是利用生成对抗文本,以合成图像的GAN。
不过,相比于利用GAN扩大图像分辨率、匹配图像-文本特征等方法,CLIP则选择了直接对输出进行排名。
据研究人员表示,CLIP网络的最大意义在于,它缓解了深度学习在视觉任务中,最大的两个问题。
首先,它降低了深度学习需要的数据标注量。
相比于手动在ImageNet上,用文字描述1400万张图像,CLIP直接从网上已有的“文字描述图像”数据中进行学习。

此外,CLIP还能“身兼多职”,在各种数据集上的表现都很好(包括没见过的数据集)。
但此前的大部分视觉神经网络,只能在训练的数据集上有不错的表现。
例如,CLIP与ResNet101相比,在各项数据集上都有不错的检测精度,然而ResNet101在除了ImageNet以外的检测精度上,表现都不太好。

具体来说,CLIP用到了零样本学习(zero-shot learning)、自然语言理解和多模态学习等技术,来完成图像的理解。

例如,描述一只斑马,可以用“马的轮廓+虎的皮毛+熊猫的黑白”。这样,网络就能从没见过的数据中,找出“斑马”的图像。
最后,CLIP将文本和图像理解结合起来,预测哪些图像,与数据集中的哪些文本能完成最好的配对。

网友:机器人(bot)可能不太高兴
在惊叹CLIP用“大白话”搜索图片效果之余,一位Reddit网友还发现了一个比较有意思的搜索结果。
他在文本描述的代码部分输入:
What image best represents how you feel right now?
这句话在我们人类眼中,应当是询问AI的语气了,然后出来的图片结果是这样的:

还有这样的:

嗯,看来是被“玩多了”,AI宝宝有点小脾气了。
参考链接:
https://www.reddit.com/r/MachineLearning/comments/l52qe6/p_use_natural_language_queries_to_search_2/
项目地址:
https://colab.research.google.com/github/haltakov/natural-language-image-search/blob/main/colab/unsplash-image-search.ipynb#scrollTo=OswqrzaeMy1J