大模型背景下计算机视觉年终思考小结(一)

1. 引言

在过去的十年里,出现了许多涉及计算机视觉的项目,举例如下:

  • 使用射线图像和其他医学图像领域的医学诊断应用
  • 使用卫星图像分析建筑物和土地利用率相关应用
  • 各种环境下的目标检测和跟踪,如交通流统计、自然环境垃圾检测估计等

在这里插入图片描述
上述应用所采用的计算机视觉的方法遵循统一的标准流程:

  • 首先定义需要解决的问题所属类别(分类、检测、跟踪、分割) 以及相应输入数据的分辨率等
  • 接着需要人工标注数据
  • 选择一个网络进行训练,验证和进行一些统计值分析
  • 建立推理脚本并进行部署

到2023年底,人工智能领域迎来了来自生成式AI的新爆发:大语言模型(LLM)和图像生成式模型。每个人都在谈论它,那么它对计算机视觉领域的应用有什么改变呢?本文我们将探索是否可以利用它们来构建数据集,以及如何利用新的架构和新的预训练权重,或者从大模型中进行蒸馏学习。

2. 理想的计算机视觉应用开发

在工业界,我们通常感兴趣的是可以以相对较小的成本来构建和部署计算机视觉相关应用,小规模计算机视觉特性如下:

  • 小规模计算机视觉开发成本不应过高
  • 它不应该需要庞大的基础设施来训练(想想算力和数据规模)
  • 它不需要具备强大的研究技能,而是现有技术的扩展应用
  • 推理应该是轻量化和快速的,这样它就可以在嵌入式或部署在CPU/GPU服务器上

小规模计算机视觉显然不是当今人工智能的趋势,因为我们看到具有数十亿参数的模型开始成为一些应用程序的标准设计。我们听到了很多关于这方面的消息,但重要的是要记住,关注较小的规模在某些场景的应用也是至关重要的,并不是所有项目都应该遵循谷歌、Meta、OpenAI或微软的大模型规模趋势。事实上,大多数有趣的计算机视觉项目实际上比那些成为头条新闻的项目规模要小得多。

考虑到这一点,我们还能利用人工智能的最新发展来进行相关应用开发吗?首先让我们深入了解下计算机视觉下的基础模型。

3. 计算机视觉基础模型

最近的大语言模型(LLM)非常流行,因为大家可以轻松地在应用程序中使用基础模型(许多是开源的,或者可以通过API使用), 事实上大家也可以把GPTBertLlama想象成这样的提取文本特征的基础模型。基础模型是一个非常大的通用神经网络,可作为大多数下游任务的基础。它包含了关于非常广泛的主题、语义、语法等的知识。

类比到计算机视觉领域中,我们已经使用这样的模型有一段时间了:在过去的10年里,使用在ImageNet上预先训练的神经网络(100万张标记的图像)作为下游任务的“基础”模型是标准的训练流程。大家可以在上面建立自己的神经网络,如果需要的话,可以根据自己的数据对其进行微调。

在这里插入图片描述
ImageNet上预训练的视觉网络和大语言预训练模型LLM之间有两个主要的概念上的差异:

  • 训练二者的数据类型不同:ImageNet上视觉网络的训练依赖于纯有监督学习,一个1000个类别的分类任务;然而LLM属于生成式模型,它们是使用原始文本以自监督的方式进行训练的(任务通常为预测下一个单词)
  • 这些基础模型对新任务的适应:ImageNet上预训练网络需要新的学习过程来适应新任务。对于LLM,虽然也可以对模型进行微调,但该模型足够强大,通常可以直接用于下游任务,而无需做进一步的训练,只需提供给模型正确的提示信息,使其对新任务有用

目前大多数计算机视觉应用,如分类、目标检测、语义分割等任务,仍然使用ImageNet预训练网络的权重。让我们回顾一下最近推出的新模型,这些模型可能对我们的计算机视觉任务有用。

4. 大规模视觉模型

在计算机视觉的世界里,除了ImageNet外,今年来有很多自监督网络的例子,其中一些是生成式模型(想想最新的GAN和最近大火的扩散模型)。它们仅在原始图像或图像-文本对(例如图像及其描述)上进行训练。它们通常被称为LVM(大规模视觉模型)。

  • DINOV2: 一组大型ViT集合(视觉transformer,1B参数量),明确旨在成为计算机视觉的良好基础模型,即这样的模型可以提取一些通用的视觉特征,也就是说,这些特征适用于不同的图像任务,无需进行进一步的微调即可使用, 而且它以完全自监督的方式进行训练。
    在这里插入图片描述
  • SAM: 一个致力于高分辨率图像的ViT,专门设计用于分割,并实现零样本分割(无需注释即可生成新的分割mask)。使用LoRA可以廉价地“微调”SAM,从而大幅减少必要的训练图像数量。另一个用例是使用SAM作为医学图像分割中的补充输入。
    在这里插入图片描述

5. 图文大模型

图文大模型的主要以图像文本对作为模型的输入,这类模型随着对比学习的快速发展也得到了迅速的崛起,举例如下:

  • CLIP: 图像和文本描述的特征对齐,非常适合少样本分类任务,并在实践应用中作为各种下游CV任务的基础模型
    在这里插入图片描述

  • Scaling Open-Vocabulary Object Detection: 现有的开放世界目标检测算法中,得益于大规模的图像-文本对,预训练的encoder有较多的数据支撑,但在应用于目标检测时,由于检测数据集比起图像-文本数据集数量规模少很多,限制了开放世界目标检测算法的性能。这里作者用self-training的范式来扩展检测数据集。
    在这里插入图片描述

6. 文生图大模型

文生图模型现在属于大规模生成式模型,通常为多模式的任务(包括在其架构中能够理解复杂文本的大型语言基础模型),比较出名的例子为StableDiffusion以及DALL-E

在这里插入图片描述

这两项工作的细节,可以直接去对应官网进行更全面的研究。

7. 视觉多任务大模型

  • Florence-2: unified Computer Vision (Microsoft)
    在这里插入图片描述

该模型采用了一种基于prompt的统一表示方法,广泛适用于各种 CV 和 Visual-Language 任务。与现有的 CV 大模型在迁移学习方面表现出色不同,它在执行各种任务时可以通过简单的指令来处理不同的空间层次和语义粒度的复杂性。Florence-2 核心为通过采用文本提示作为任务说明来支持语义描述生成(image captioning),目标检测(object detection)、定位(grounding)和分割(segmentation)等相关视觉任务。

8. 多用途大模型

业内还涌现一批封闭源代码,仅通过API调用的大型多用途大模型,虽然不以视觉为中心,但展示了卓越的视觉功能,而且还具有生成式功能:比如Open AI的GPT-4V 以及Google的Gemini(下图所示),都带来了行业内新的大模型发展高度。与之对比,还有许多开源的、较小规模的多用途视觉+文本大模型也在开发中,例如LlaVA
在这里插入图片描述

所有这些模型都是强大的基础模型,涵盖了许多视觉文本领域,并擅长在许多情况下进行判别式或生成式任务。

9. 总结

本文主要用来回顾了23年相关大模型在计算机视觉多个领域的发展现状,以及一些突出的技术论文概要分享,主要涉及图像大模型到图文大模型以及生成式大模型。对于这些大模型,在实际工作和项目中,我们更多的应该是思考如何在我们特定的、小规模的背景下利用好它们。

本章节主要为相关论文的梳理和概述总结,下一节我们会针对实际项目中如何结合大模型进行数据集的构造等方向进行归纳总结。

10. 参考链接

主要参考论文和文献资料梳理如下:

DINO V2

SAM

SAMed

SAM medical image segmentation

CLIP

Scaling Open-Vocabulary Object Detection

StableDiffusion

DALL-E

Florence-2

GPT-4V

Gemini

LlaVA

Small Scale Computer Vision

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/240048.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务网关 Gateway

服务网关 Gateway Spring Cloud Gateway 是 Spring Cloud 生态系统中的网关,它基于 Spring5.0 SpringBoot2.0 WebFlux(基于高性能的 Reactor 模式响应式通信框架 Netty,异步非阻塞模型)等技术开发。旨在为微服务架构提供一种简…

【Docker篇】使用Docker操作镜像

文章目录 🛸镜像🌺基本操作⭐docker --help⭐docker pull [ 参数 ]⭐docker images⭐docker save -- 导出⭐docker rmi -- 删除⭐docker load -- 导入 🛸镜像 镜像是指在计算机领域中,通过复制和创建一个与原始对象相似的副本的过…

学习JavaEE的日子 day11 初识面相对象

day11 1.初识面相对象 1.1 类和对象的理解 类 * 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合 * 简单理解:类就是对现实事物的一种描述 类的组成 * 属性:指事物的特征,例如:手机事物(品牌…

Postgresql 12.2 + PostGIS 3.0.1 安装部署

参考文档: 按照该文档安装即可,如果遇到报错,可以参考下文: https://blog.csdn.net/weixin_41166785/article/details/127674169 所需的安装包 在资源里面(我看下怎么可以不用积分下载) 1、no acceptable…

windows安装RabbitMq,修改数据保存位置

1、先安装Erlang, Erlang和RabbitMQ有版本对应关系。 官网RabbitMQ与Erlang版本对应RabbitMQ Erlang Version Requirements — RabbitMQ 2、安装RabbitMQ。 3、修改数据保存地址。找到安装目录下的sbin文件夹,找到rabbitmq-env.bat,编辑文件…

Nacos入门到精通

Nacos概述: 全称Dynamic Naming and Configuration Service,是一个Nacos,全称Dynamic Naming and Configuration Service,是一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。其核心功能主要包括服务发现、健康检查…

Flink启动Yarn Session报错:Couldn‘t deploy Yarn session cluster

Flink版本:1.1.3 启动Yarn Session的语句:bin/yarn-session.sh -nm test -d 报错截图如下: 仅通过ERROR信息只能知道是yarn session集群未能正常启动,因此继续向下查找: 找到报错信息的Caused by部分: 报…

基于vue+Spring Boot家政服务人员预约系统iph9d

通过对家政服务管理内容的学习研究,进而设计并实现一个家政服务系统。系统能实现的主要功能应包括即时通讯、通讯回复、预约订单、接单信息、服务费用管、服务评价的一些操作。还有可以正确的为用户服务,准确显示当前信息[5]。 开发软件有很多种可以用&…

AI工具(20240116):Copilot Pro,Fitten Code等

Copilot Pro Copilot Pro是微软推出的Copilot的付费增强版本,通过提供优先访问GPT-4等最新AI模型,大大提升用户的创造力和工作效率。该服务可与Microsoft 365订阅捆绑使用,支持在Word、Excel等Office应用内直接使用Copilot功能,帮助用户更快速地起草文档、电子邮件和演示文稿等…

Linux 入门命令大全汇总 + Linux 集锦大全 【20240115】

文章目录 Linux 入门命令大全汇总Linux 集锦大全更多信息 Linux 入门命令大全汇总 别有一番风趣的alias 刚刚好合适的 apropos 命令 迷你计算器 bc 可看黄道吉日的 cal 全文可查看: Linux入门命令大全全文 Linux 集锦大全 linux终端中最漂亮的几款字体介绍及…

OpenCV——多分辨率LBP的计算方法

目录 一、算法原理1、原理概述2、参考文献 二、代码实现三、结果展示 OpenCV——多分辨率LBP的计算方法由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述 基本LBP算子虽然在早期…

快速入门Java NIO(Not I/O)的网络通信框架--Netty

Netty 入门 了解netty前需要对nio有一定认识,该笔记基础来自bilinbili黑马,在此基础上自己学习的笔记,添加了一些自己的理解 了解java 非阻塞io编程 1. 概述 1.1 Netty 是什么? Netty is an asynchronous event-driven network application framework for rapid …

23/76-LeNet

LeNet 早期成功的神经网络。 先使用卷积层来学习图片空间信息。 然后使用全连接层转换到类别空间。 #In[]LeNet,上世纪80年代的产物,最初为了手写识别设计from d2l import torch as d2l import torch from torch import nn from torch.nn.modules.loss import CrossEntropyLos…

Vue实战:两种方式创建Vue项目

文章目录 一、实战概述二、实战步骤(一)安装Vue CLI脚手架1、从Node.js官网下载LTS版本2、安装Node.js到指定目录3、配置Node.js环境变量4、查看node版本5、查看npm版本6、安装Vue Cli脚手架7、查看Vue Cli版本 (二)命令行方式构建…

Python多线程爬虫——数据分析项目实战详解

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言爬虫获取cookie网站爬取与启动CSDN爬虫爬虫启动将爬取内容存到文件中 多线程爬虫选择要爬取的用户 线程池 爬虫 爬虫是指一种自动化程序,能够模…

Jmeter 测试脚本录制器-HTTP 代理服务器

Jmeter 测试脚本录制器-HTTP 代理服务器 Jmeter 配置代理服务器代理服务器获取请求地址示例图配置步骤 浏览器配置代理Google 浏览器插件配置代理windows 本地网络配置代理 启动录制,生成证书生成证书导入证书Jmeter 配置证书 浏览器点击页面,录制请求地…

【深度学习】RTX2060 2080如何安装CUDA,如何使用onnx runtime

文章目录 如何在Python环境下配置RTX 2060与CUDA 101. 安装最新的NVIDIA显卡驱动2. 使用conda安装CUDA Toolkit3. 验证onnxruntime与CUDA版本4. 验证ONNX需求版本5. 安装ONNX与onnxruntime6. 编写ONNX推理代码 如何在Python环境下配置RTX 2060与CUDA 10 RTX 2060虽然是一款较早…

AI嵌入式K210项目(11)-SPI Flash读写

文章目录 前言一、K210的SPI二、Flash介绍三、实验过程总结 前言 这一章我们来学习下SPI及其应用,SPI 是一种高速的,全双工,同步的通信总线,由于其高速、同步和简单的特性,被广泛应用于各种微控制器和外围设备之间的通…

微信小程序防止截屏录屏

一、使用css添加水印 使用微信小程序原生的view和css给屏幕添加水印这样可以防止用户将小程序内的隐私数据进行截图或者录屏分享导致信息泄露,给小程序添加一个水印浮层。这样即使被截图或者拍照,也能轻松地确定泄露的源头。效果图如下: 代码…

MongoDB认证考试小题库

Free MongoDB C100DBA Exam Actual Questions 关于MongoDB C100 DBA 考试真题知识点零散整理 分片架构 应用程序 --> mongos --> 多个mongod对于应用来说,连接分片集群跟连接一台单机mongod服务器一样分片好处, 增加可用RAM、增加可用磁盘空间、…