20240708 VLM(视觉大模型和视觉语言模型)

参考网站:

万字长文带你全面解读视觉大模型 - 知乎

https://github.com/IDEA-Research/DINO-X-API

detr都dino演进

https://zhuanlan.zhihu.com/p/630982959

detr架构:

DETR(DEtection TRansformers)是一个使用 Transformer 结构来实现目标检测的深度学习模型。它的创新之处在于通过“查询”(queries)机制把目标检测任务转化为一个序列到序列的问题。DETR 的设计比传统检测模型更加简洁,因为它不再依赖繁琐的手工特征和复杂的候选框生成步骤。

为了更容易理解,我们可以将 DETR 的训练网络主干部分拆解为几个主要组成部分:

1. 卷积神经网络(CNN)主干 - 提取图像特征

DETR 使用一个常见的 CNN 作为模型的主干(例如 ResNet),主要用来提取图像的基础特征。可以理解为,CNN 就像是一个“放大镜”,帮助模型把图片中的细节转化成更容易理解的特征信息。具体步骤如下:

  • 输入图像:假设我们输入一张图像,这张图像在模型中被“压缩”和“处理”,逐步转化为不同层次的特征。
  • 生成特征图:CNN 会输出一个“特征图”,这其实是一张更小、更抽象的“图片”,每个像素点代表原图中某个区域的高层信息。

在这个阶段,CNN 负责把原始图像转换成一个紧凑的、高度概括的特征表达,它会保留图像中的重要结构信息,比如轮廓、边缘和颜色等。这个特征图是接下来送入 Transformer 的输入。

2. Transformer 编码器 - 全局特征建模

Transformer 编码器部分可以理解为“全局信息提取器”,它的任务是让特征图的每个部分都“互相交流”,帮助模型更好地理解整个图像的上下文关系。

  • 位置编码:由于 Transformer 是为了处理序列数据而设计的,因此在图像处理中需要通过“位置编码”来让模型知道图像中不同区域的相对位置。
  • 自注意力机制:这是 Transformer 的核心操作,简而言之就是每个像素点都可以参考其他所有像素点的信息。这种机制允许模型找到图像中某些目标与背景的联系。比如一个汽车轮廓的像素点可以“看到”周围的汽车轮廓,知道自己处在一个整体的车里。

Transformer 编码器的作用在于让模型能够从特征图中获取全局信息,理解图像中的整体结构和内容。

3. Transformer 解码器 - 目标检测的“查询”机制

在传统检测模型中,我们通常会生成很多候选框(anchor boxes)来找到目标位置,而在 DETR 中,这一过程由 Transformer 解码器来完成,通过“查询”(queries)实现目标检测。

  • 查询向量:DETR 中的查询就像是一组“问句”,每个问句代表模型对图像中的一个潜在目标的假设。模型通过这些查询去“询问”图像特征图,来找出图像中的具体目标。
  • 交叉注意力:解码器的交叉注意力机制会让这些查询与编码器的特征图信息互相结合,让每个查询都可以从图像中找到最相关的部分。这就像模型在询问:“这里有没有我在找的目标?”

每个查询在解码器中会最终得到一个“答案”——一个包含类别和位置信息的检测结果。DETR 使用固定数量的查询向量,因此不管图像中有几个目标,模型总会输出同样数量的结果,只不过对没有目标的查询会标记为“无目标”。

4. 预测结果和匹配机制

DETR 会输出一组预测结果,每个结果包含一个类别和一个边界框。这时候,模型会通过一种“匈牙利匹配”的算法将预测的框与真实框一一对应,从而计算损失进行训练。这种匹配机制帮助模型找到最接近真实目标的预测,并进行优化。

总结

DETR 的网络主干大致流程就是:

  1. CNN 提取特征:将原始图像转化成包含重要特征的特征图。
  2. Transformer 编码器获取全局信息:让每个特征点都可以了解整个图像的上下文信息。
  3. Transformer 解码器“查询”目标:通过查询机制找到图像中的目标,输出类别和位置。
  4. 匹配和损失计算:对比预测结果与真实框,计算误差并优化模型。

通过这种方式,DETR 直接实现了端到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值