分类
Stable Diffusion

openai CLIP 库实现图片搜索

在看 stable diffusion 代码的时候,发现基本上都会用一个库 CLIP,是 openai 开源出来的, openai/CLIP: Contrastive Language-Image Pretraining 可以把图像和文本转换到一个向量空间,最简单的应用是可以用文本搜索图片,像 stable diffusion 这种生成模型,其实就是好几种技术拼接在一起,才会有这样的效果。

openia

图片搜索

Search photos on Unsplash using natural language 实现了文字到图片的搜索,原理非常简单,把要搜索的图片都转换面向量,把要搜索的文字也转换成向量,直接到这些向量就相似度就可以。

讓AI幫你穿搭!用CLIP實作一個時尚穿搭資料庫 (aif.tw)

openai CLIP
分类
Stable Diffusion

什么是 Latent Space

最近在看 Stable Diffussion 的相关原理性的知识,遇到一个 Laten Space 的概念,发现有人写一个文章,非常形像的解释的了什么叫做 Latent Space ,他有什么用?还有代码怎么样去实现之类的思路,非常值得推荐一读。

也让我形像的理解了 Autoencoders 的思路,Understanding Latent Space in Machine Learning | by Ekin Tiu | Towards Data Science

Latent Space

什么是Latent Space?

如果我必须用一句话来描述Latent Space,数据压缩的表示方法

举例

下面这个例子非常形像化的去理解 Latent Space,就是对这些对象提取重要的特征,相似对象的特征应该更加接近,比如下图中的几个椅子的特征和桌子的特征肯定不一样,几个椅子的特征更加相似,因此可以去掉一些椅子多余的特征,如颜色,只保留重要的一些特征。

如果我们看这副图像,四张椅子和一张桌子,我们很容易说这四张椅子图像最相似,而桌子与任何一张椅子图像的差异最大。

202212146uQ4Kq

但是,是什么让这两张椅子的图像“更相似”?椅子具有明显的特征(即靠背、无抽屉、腿之间的连接)。通过学习边缘、角度等方面的模式,我们的模型都可以“理解”这些。

因此,随着维数的减少,每个图像(即椅子颜色)不同的“无关”信息从我们的潜空间(Latent Space)表示中“移除”,因为只有每个图像最重要的特征存储在潜在空间表示中。

结果,当我们降低维度时,两把椅子的表示

变得不那么明显而更相似。如果我们想象它们在空间中,它们会“更靠近”在一起。

怎么样对 Latent Space 进行可视化

Latent space visualization — Deep Learning bits #2 | HackerNoon 做了一个 Latent Space 的可视化,非常方便理解生成的逻辑。

湘ICP备2020020034号-1