20240708 VLM

参考网站:

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

detr都dino演进

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

一.DINO

1."YOLO"(You Only Look Once)和"DINO"(DIstillation of knowledge)是两种不同的模型,针对不同的任务和学习目标。以下是它们学习到的特征的主要区别:

  1. 任务目标:

    • YOLO: YOLO是一种目标检测模型,旨在在图像中检测和定位多个物体。YOLO的训练目标是通过回归网络预测图像中每个物体的边界框及其类别概率。
    • DINO: DINO主要是一种自监督学习方法,专注于学习图像表示。DINO的目标是通过对比损失来训练模型,使相似的图像在嵌入空间中更加接近。
  2. 学习方法:

    • YOLO: YOLO使用有监督学习,通过最小化目标检测任务中的损失函数,使得模型能够准确地定位和分类图像中的物体。
    • DINO: DINO采用自监督学习方法,通过对比损失来约束网络学习图像特征,使得相似图像的表示更加接近。
  3. 特征表示:

    • YOLO: YOLO学习用于目标检测的图像特征,这些特征应该有助于准确地定位和分类图像中的物体。
    • DINO: DINO学习的是通用的图像表示,旨在捕捉图像中的语义和结构信息。这些表示可以在多个任务中使用,而不仅仅局限于目标检测。
  4. 应用领域:

    • YOLO: YOLO主要用于目标检测任务,在实时目标检测和物体定位方面表现出色。
    • DINO: DINO主要关注图像表示学习,可以用于多个领域,包括图像分类、特征学习等。

总体而言,YOLO和DINO是为不同任务设计的模型,它们学习的特征主要取决于其任务目标。 YOLO侧重于目标检测,而DINO侧重于通用图像表示学习。

2.DINO(Distillation via Noisy-Labels)模型是一种基于自监督学习的视觉表示学习方法,它主要依靠教师-学生(Teacher-Student)架构进行训练。下面是DINO模型的大致算法实现过程:

  1. 数据预处理

    • 对输入图像进行数据增强,生成两个视图(View1和View2),这两个视图是对同一张原始图像的不同变换,例如随机裁剪、翻转、色彩变换等。
  2. 模型结构

    • 设定两个相同的模型:教师网络(Teacher)和学生网络(Student),它们都采用Transformer或者类似结构,如Vision Transformer (ViT)。
  3. 特征提取

    • 分别将两个视图输入到教师网络和学生网络中,提取出对应的特征表示。
  4. 教师网络更新

    • 教师网络的参数是对学生网络参数的指数移动平均(Exponential Moving Average, EMA),在训练过程中,教师网络的参数更新较为保守,以维持稳定的学习信号。
  5. 对比学习

    • 计算学生网络对View1产生的特征向量与教师网络对View2产生的特征向量之间的 cosine相似度。
    • 通过对比学习 loss,让学生网络模仿教师网络对同一张图片不同视图的特征表示,促使两个网络学习到一致的特征表示。
  6. 正则化与噪声标签

    • DINO模型通过引入噪声标签(noisy labels)的概念,即在网络内部生成伪标签,来增强模型对噪声和多样性的适应能力。
    • 使用归一化温度softmax函数对教师网络的特征向量进行处理,模拟软标签,作为学生网络学习的目标。
  7. 训练过程

    • 学生网络的训练目标是既要模仿教师网络的特征表示,又要保持不同图片之间的特征差异性。
    • 更新学生网络的参数,最小化对比学习loss以及可能的正则化loss。
  8. 迭代训练

    • 重复以上步骤,不断迭代训练,直到模型收敛。

通过这种训练方式,DINO模型能够在没有人工标注的情况下学习到强大的视觉特征表示,这些特征可以用于下游的多项视觉任务,如图像分类、目标检测等。

3.DINO(Distillation with Noisy-Labels)和DINOv2是在自监督学习领域中的连续迭代版本,它们都采用了对比学习和教师-学生机制来训练无监督视觉模型。尽管两者的核心思想类似,但DINOv2通常会在以下几个方面有所改进或变化:

  1. 性能优化

    • DINOv2可能针对DINO的基础架构进行了优化,提升了模型在各种视觉任务上的性能表现,比如提高了模型在标准基准测试上的准确性或扩展了模型对于复杂视觉场景的理解能力。
  2. 算法改进

    • 可能引入了新的训练策略、损失函数改进或是对模型架构的调整,以促进更好的自监督学习效果和特征表达能力。
  3. 知识蒸馏

    • DINOv2可能进一步强化了知识蒸馏的过程,例如,更有效地利用大型预训练模型的知识来指导小型模型的训练,使得小型模型也能获得类似的表征学习能力。
  4. 数据效率与泛化能力

    • DINOv2可能在提高数据利用效率、减少训练资源需求以及提升模型在未见过的数据上的泛化能力方面做了针对性改进。
  5. 额外功能或应用场景

    • 随着技术发展,DINOv2可能会添加新的功能特性,比如更适用于特定任务的微调策略,或者是拓展至其他应用场景,如跨模态学习、实时推理等。

由于具体细节依赖于实际发布的论文和技术文档,上述区别是基于一般迭代升级的常见方向。要获得DINO与DINOv2之间精确的技术差异,请查阅相关的官方论文或GitHub项目页面以获取最新和详尽的说明。

全网最强 DINOv2 论文解读 - 知乎

从 DETR 到 DINO 的进化过程 - 知乎

DINOv2:无需微调,填补 SAM 的空白,支持多个下游任务 - 知乎

DINOv2 by Meta AI

Search · DINOv2 · GitHub

检测:

https://github.com/IDEA-Research/GroundingDINO

三.DETR:

DETR(DEtection TRansformer)模型在训练时采用了一种新颖的数据结构和训练方式,主要是为了实现端到端的目标检测。以下是DETR模型训练时的数据结构和流程:

  1. 数据预处理

    • 输入的RGB图像首先会被分割成多个patches(通常使用卷积神经网络提取特征图),然后将这些特征图展平成1D向量序列。
    • 与此同时,创建一组固定数量的“object queries”(目标查询向量),它们作为额外的序列元素,用于预测图像中的目标边界框和类别。
  2. 位置编码

    • 类似于BERT等Transformer模型,DETR也为图像patches和object queries添加了位置编码,以便模型理解它们在图像中的位置信息。
  3. Transformer结构

    • 将图像patches和object queries组成的序列输入到Transformer模型中。Transformer包含编码器和解码器部分。
    • 编码器负责处理图像patches序列,学习图像的全局上下文信息。
    • 解码器通过自注意力机制,结合编码器的输出和object queries,生成一组边界框坐标和类别预测。
  4. 集合预测

    • DETR模型的输出不是连续的边界框预测,而是一个有限长度的有序列表,列表中的每个元素代表一个可能的目标,并包含其类别和坐标信息。
    • 使用 Hungarian 匹配算法将预测结果与 ground truth 进行匹配,以计算训练损失。
  5. 损失函数

    • DETR使用了一种称为“集合损失”(Set Prediction Loss)的方法,它包括 bounding box 的L1损失和类别预测的交叉熵损失,同时加入了一种匹配成本来优化预测结果与真实标签的匹配。
  6. 训练过程

    • 在训练期间,模型的目标是通过优化上述损失函数,使得预测的边界框和类别尽可能接近真实的标注信息。

总之,DETR模型通过Transformer结构处理图像和object queries的序列化表示,并利用集合预测和匈牙利匹配算法优化训练过程,从而实现了一种全新的、无需 anchor boxes 和非极大值抑制(NMS)的目标检测方法。

五.BEIT

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值