第七阶段 · 第57篇2026-04-02

图像Embedding:如何用向量表示图片

图片怎么变成数字?图像Embedding就是把图片压缩成一个向量,这个向量包含了图片的核心特征。相似的图片有相似的向量。

阅读时间:11分钟
💡 从图片到数字

你有没有用过"以图搜图"的功能?上传一张照片,搜索引擎能帮你找到相似的图片。它是怎么做到的?

计算机不"看"图片,它只认识数字。所以,要让计算机理解图片,第一步就是把图片变成数字。这个数字不是简单的像素值,而是一个向量——这就是图像Embedding。

想象一下,你用几百个数字来描述一张图片的内容:有没有猫、是什么颜色、光线怎么样、构图如何……这些数字组成的向量,就是这张图片的"数字指纹"。

什么是图像Embedding?
🎯 核心概念

图像Embedding,就是把一张图片映射到一个高维向量空间。这个向量(通常几百到几千维)包含了图片的语义信息。

关键性质:相似的图片,向量也相似。两张都是猫的照片,它们的向量会很接近;一张猫和一张车的照片,向量会离得很远。

这种相似性可以用余弦相似度欧氏距离来衡量。这就是为什么我们可以用向量来搜索相似图片——只需要计算向量之间的距离。

图像Embedding:从像素到语义向量
原始图片像素矩阵224×224×3 = 150,528维压缩特征提取器CNNViT提取高级特征丢弃冗余信息编码Embedding向量[0.23-0.570.89-0.120.45...0.34]语义向量512维 或 768维💡 从15万维压缩到几百维,保留了图片的核心语义信息相当于把整张图片"总结"成几百个关键数字
怎么生成图像Embedding?
⚙️ 生成方法

生成图像Embedding的方法经历了几个阶段的演变:

1. 传统方法:手工特征

早期的图像特征是人工设计的,比如SIFT、HOG、颜色直方图等。这些方法能捕捉一些底层特征,但无法理解高级语义。

2. CNN时代:卷积特征

用预训练的CNN(如ResNet、VGG)提取特征。通常取倒数第二层的输出作为Embedding。这些特征已经有很强的语义信息,能区分猫、狗、车等类别。

3. ViT时代:Transformer特征

Vision Transformer的[CLS]token就是全局特征的表示。相比CNN,ViT的特征包含更丰富的全局信息和空间关系。

4. 多模态时代:CLIP特征

CLIP的图像编码器输出的特征,不仅能表示图像内容,还能和文本对齐。这是目前最强大的图像Embedding方法之一。

不同方法的Embedding对比
图像Embedding方法演进传统方法SIFT / HOG手工设计特征❌ 语义理解弱❌ 维度低(几百)CNN特征ResNet / VGG学习局部特征✓ 语义理解强✓ 维度适中(512-2048)ViT特征Vision Transformer全局注意力✓ 全局信息✓ 空间关系强CLIP特征多模态对齐图文统一空间✓ 可用文本搜索✓ 零样本能力强向量空间示意(相似图片聚类)🐱 猫🐕 狗🚗 车💡 相似内容的图片在向量空间中聚在一起,距离近 = 语义相似
图像Embedding的应用
🌟 实际应用场景
1. 以图搜图

把图片库里的所有图片都转成Embedding存起来。用户上传图片时,计算它的Embedding,然后在库里找最近的向量。这就是Google Images、Pinterest Lens的原理。

2. 图像分类

用Embedding作为特征,训练一个简单的分类器。比如,把商品图片的Embedding输入分类器,判断是哪个类目。

3. 相似推荐

电商网站上,用户看了某个商品,系统推荐相似的商品。方法很简单:找Embedding相近的商品。

4. 去重检测

计算图片之间的Embedding相似度,如果相似度超过阈值,就认为是重复图片。这在内容审核、版权保护中很有用。

5. 跨模态检索

用CLIP等模型,图像Embedding和文本Embedding在同一个空间。你可以用"一只可爱的猫"这样的文本,搜索对应的图片。

Embedding的质量很重要
⚠️ 如何评估Embedding质量

不是所有Embedding都一样好。评估Embedding质量有几种方法:

  • 线性可分性:好的Embedding让不同类别的图片在空间中线性可分。用简单的分类器就能达到高准确率。
  • 聚类效果:同类图片的Embedding应该聚在一起,类间距离远,类内距离近。
  • 检索召回率:用Embedding做检索,看召回率和准确率。好的Embedding能找回更多相似图片。
  • 鲁棒性:图片稍微变化(旋转、缩放、光照),Embedding应该保持稳定。
技术细节
🔬 实现细节

维度选择:Embedding维度通常在128-2048之间。维度太低会损失信息,太高增加计算和存储成本。512维是常用的折中方案。

归一化:通常会对Embedding做L2归一化,让所有向量的长度都为1。这样计算余弦相似度就变成了简单的点积,速度更快。

量化压缩:为了节省存储空间,可以用乘积量化(PQ)局部敏感哈希(LSH)把浮点向量压缩成二进制码。虽然会损失一些精度,但可以大幅节省空间。

📋 本篇要点

  • ✓ 图像Embedding把图片压缩成向量,保留了语义信息
  • ✓ 相似图片有相似的向量,距离近 = 内容相似
  • ✓ 生成方法:传统手工特征 → CNN → ViT → CLIP
  • ✓ CLIP的Embedding支持文本-图像跨模态检索
  • ✓ 应用:以图搜图、分类、推荐、去重、跨模态检索
  • ✓ 好的Embedding:线性可分、聚类清晰、鲁棒性强