用“大白话”精准搜图,OpenAI的CLIP惊艳了所有人 | 在线可玩

  • A+
所属分类:综合体育

来源:量子位

金磊 发自 凹非寺

量子位 报道 | 公众号 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

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: