专栏名称: 自动驾驶之心
自动驾驶开发者社区,关注计算机视觉、多维感知融合、部署落地、定位规控、领域方案等,坚持为领域输出最前沿的技术方向!
目录
相关文章推荐
电影工厂  ·  马上要去日本了 麻烦大家帮忙 取个日本名字 ... ·  13 小时前  
豆瓣电影  ·  最高9.3分,后劲过大,请谨慎二刷 ·  16 小时前  
新华网财经  ·  《哪吒2》,全球前5! ·  16 小时前  
九派新闻  ·  《哪吒2》烂番茄开分:100%新鲜度 ·  2 天前  
九派新闻  ·  《哪吒2》烂番茄开分:100%新鲜度 ·  2 天前  
51好读  ›  专栏  ›  自动驾驶之心

DINOv2!计算机视觉领域的基础模型终于出现

自动驾驶之心  · 公众号  ·  · 2024-11-01 07:30

正文

作者 | 数源AI  编辑 | 自动驾驶之心

原文链接:https://zhuanlan.zhihu.com/p/2147759445

点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号

戳我-> 领取 自动驾驶近15个 方向 学习 路线

>> 点击进入→ 自动驾驶之心 基础模型 技术交流群

本文只做学术分享,如有侵权,联系删文

使用 DINOv2 进行语义分割的示例(图1-1)

DINOv2 是 Meta AI 推出的一款计算机视觉模型,旨在提供一个基础模型,类似于自然语言处理领域已经普遍存在的基础模型。

在这篇文章中,我们将解释在计算机视觉中成为基础模型的意义,以及为什么 DINOv2 能够被视为这样的模型。

DINOv2 是一个非常大的模型(相对于计算机视觉领域),拥有十亿个参数,因此在训练和使用时会面临一些严峻的挑战。本文将回顾这些挑战,并介绍 Meta AI 的研究人员如何通过自监督学习和蒸馏技术克服这些问题。即使你不熟悉这些术语,也不用担心,我们会在后面解释。首先,让我们了解 DINOv2 提供了什么,使它成为计算机视觉领域的基础模型。

什么是基础模型?

在没有基础模型的时代,必须先找到或创建一个数据集,然后选择一种模型架构,并在该数据集上训练模型。你所需的模型可能非常复杂,训练过程可能很长或很困难。

基础模型出现之前的生活。适用于任何任务的专用模型。可能很复杂。(图2-1)

于是,DINOv2 出现了,这是一种预训练的大型视觉Transformer(ViT)模型,这是计算机视觉领域中一种已知的架构。它表明你可能不再需要一个复杂的专用模型。

例如,假设我们有一张猫的图片(下图左侧的那张)。我们可以将这张图片作为输入提供给 DINOv2。DINOv2 会生成一个数字向量,通常称为嵌入或视觉特征。这些嵌入包含对输入猫图片的深层理解,一旦我们获得这些嵌入,就可以将它们用于处理特定任务的小型模型中。例如,我们可以使用一个模型进行语义分割(即对图像中的相关部分进行分类),另一个模型估计图中物体的深度。这些输出示例来自 Meta AI 对 DINOv2 的演示。

DINOv2 作为基础模型(图2-2)

DINOv2 的另一个重要特性是,在训练这些任务特定的模型时,DINOv2 可以被冻结,换句话说,不需要进行微调。这大大简化了简单模型的训练和使用,因为 DINOv2 可以在图像上执行一次,输出结果可以被多个模型使用。与需要微调的情况不同,那样每个任务特定的模型都需要重新运行微调后的 DINOv2。此外,微调这样的大型模型并不容易,需要特定的硬件,而这种硬件并非人人都能使用。

训练下游任务模型时,DINOv2 可能会被冻结(图2-3)

如何使用DINOv2?

我们不会深入探讨代码,但如果你想使用 DINOv2,可以通过 PyTorch 代码简单加载它。以下代码来自 DINOv2 的 GitHub 页面。我们可以看到,有几种不同大小的模型版本可供加载,因此你可以根据自己的需求和资源选择合适的版本。即使使用较小版本,准确率的下降也不明显,尤其是使用中等大小的版本时,这非常有用。

如何生成不同版本的 DINOv2 模型,答案是通过蒸馏技术实现。(图3-1)







请到「今天看啥」查看全文