当前位置: 首页 > news >正文

视觉语言模型:融合视觉与语言的未来

1. 概述

视觉语言模型(Vision-Language Models, VLMs)是能够同时处理和理解视觉(图像)和语言(文本)两种模态信息的人工智能模型。这种模型结合了计算机视觉和自然语言处理的技术,使得它们能够在视觉问答、图像描述生成、文本到图像搜索等复杂任务中表现出色。它是将transformer架构应用到计算机视觉领域的成功案例。具体来说就是将传统CNN中图像特征提取的全局替换为注意力机制。视觉语言模型在多个领域展示了巨大的潜力,包括图像检索、生成式AI、图像分割、医疗诊断和机器人技术。这些模型的出现不仅提升了AI系统的性能,还为开发更智能、更高效的应用程序提供了新的可能性。

2. 视觉Transformer

视觉Transformer(ViT)通过将图像分割成小块(patches),然后将这些小块嵌入到Transformer编码器中,以获取全局图像表示。每个图像块被视为一个独立的“词”,并通过自注意力机制进行处理。与传统的卷积神经网络(CNN)相比,视觉Transformer在处理大型数据集和高分辨率图像时表现出色。它们在图像分类任务中超越了许多先进的CNN架构。
下面是一个简单视觉Transformer的结构。
在这里插入图片描述

4. 视觉语言模型的架构
4.1 对比学习(Contrastive Learning)

对比学习是一种通过理解数据点差异来学习数据点的技术。该方法计算数据实例之间的相似性得分,旨在最大限度地减少对比损失。它在半监督学习中最有用,其中只有少数标记样本指导优化过程来标记看不见的数据点。
在这里插入图片描述例如,了解猫的外观的一种方法是将其与相似的猫图像和狗图像进行比较。对比学习模型通过识别面部结构、身体大小和皮毛等特征来学习区分猫和狗。这些模型可以确定哪张图像更接近原始图像(称为“锚点”),并预测其类别。其中CLIP模型就是典型的按照对比学习来训练的一种模型。CLIP模型通过计算文本和图像嵌入之间的相似度来实现零样本预测。它首先训练文本和图像编码器,然后将训练数据集的类别转换为标题,并为给定输入图像估计最佳标题。下面是CLIP模型的架构:
CLIP架构

4.2 前缀语言模型(PrefixLM)

前缀语言模型通过输入部分文本(前缀)并预测序列中的下一个词来进行预训练。在视觉语言模型中,PrefixLM 使模型能够根据图像及其各自的前缀文本预测下一个单词序列。它利用视觉变换器(ViT)将图像划分为一维补丁序列,每个序列代表一个局部图像区域。然后,该模型对处理后的补丁应用卷积或线性投影,以生成上下文化的视觉嵌入。对于文本模态,模型将相对于补丁的文本前缀转换为标记嵌入。转换器的编码器-解码器块接收视觉嵌入和令牌嵌入。SimVLM 是一种利用 PrefixLM 学习方法的流行架构。下面是它的架构:
在这里插入图片描述

4.3 冻结前缀语言模型(Frozen PrefixLM)

冻结前缀语言模型允许使用预训练网络,并仅更新图像编码器的参数。其中典型就有Frozen架构和Flamingo架构。Frozen架构使用预训练的语言模型和视觉编码器。通过微调图像编码器,使其图像表示与文本嵌入对齐。Flamingo架构结合了类似CLIP的视觉编码器和大型语言模型(LLM)。通过在文本之间插入图像,进行快速推理。下面是典型的一个Frozen PrefixLM的网络架构。

在这里插入图片描述

4.4 跨注意力融合(Cross-Attention)

Cross-Attention是一种通过跨模态注意力机制将不同模态(如文本、图像、音频等)信息进行融合的方法。跨注意力融合方法通过添加跨注意力层来学习视觉表示。具体来说,就是让一种数据类型的特征(比如文字)关注另一种数据类型的特征(比如图片),从而在理解和处理多种信息时表现更好。这种机制在许多需要同时处理多种数据类型的任务中都能显著提升效果。下面是Cross-Attention架构的原理图:
在这里插入图片描述

5. 视觉语言模型的数据集
5.1 LAION-5B

LAION-5B数据集包含超过50亿个由CLIP生成的图像-文本对,用于构建大型预训练模型。
https://laion.ai/blog/laion-5b/

5.2 PMD

PMD数据集由多个大型数据集组合而成,包含70亿个图像-文本对。
https://huggingface.co/datasets/facebook/pmd

5.3 VQA

VQA数据集用于视觉问答和视觉推理任务,包含超过20万张图像,每张图像有五个问题和对应的答案。
https://visualqa.org/

5.4 ImageNet

ImageNet数据集包含超过1400万张带注释的图像,适用于图像分类和目标识别任务。
https://www.image-net.org/

6. 视觉语言模型的应用
6.1 图像检索

通过视觉语言模型,用户可以使用语言查询找到相关的图像。
在这里插入图片描述

6.2 生成式AI

生成式AI允许用户通过文本描述生成图像,应用于设计和内容创作等领域。比如SD 等产品。
在这里插入图片描述

6.3 图像分割

VLMs可用于实例、全景和语义分割任务,通过理解用户提示进行图像标注。
在这里插入图片描述

相关文章:

视觉语言模型:融合视觉与语言的未来

1. 概述 视觉语言模型(Vision-Language Models, VLMs)是能够同时处理和理解视觉(图像)和语言(文本)两种模态信息的人工智能模型。这种模型结合了计算机视觉和自然语言处理的技术,使得它们能够在…...

【CSAPP】-linklab实验

目录 实验目的与要求 实验原理与内容 实验步骤 实验设备与软件环境 实验过程与结果(可贴图) 实验总结 实验目的与要求 1.了解链接的基本概念和链接过程所要完成的任务。 2.理解ELF目标代码和目标代码文件的基本概念和基本构成 3.了解ELF可重定位目…...

UE C++ 多镜头设置缩放 平移

一.整体思路 首先需要在 想要控制的躯体Pawn上,生成不同相机对应的SpringArm组件。其次是在Controller上,拿到这个Pawn,并在其中设置输入响应,并定义响应事件。响应事件里有指向Pawn的指针,并把Pawn的缩放平移功能进行…...

代码随想录Day69(图论Part05)

并查集 // 1.初始化 int fa[MAXN]; void init(int n) {for (int i1;i<n;i)fa[i]i; }// 2.查询 找到的祖先直接返回&#xff0c;未进行路径压缩 int.find(int i){if(fa[i] i)return i;// 递归出口&#xff0c;当到达了祖先位置&#xff0c;就返回祖先elsereturn find(fa[i])…...

53-1 内网代理3 - Netsh端口转发(推荐)

靶场还是用上一篇文章搭建的靶场 :52-5 内网代理2 - LCX端口转发(不推荐使用LCX)-CSDN博客 一、Netsh 实现端口转发 Netsh是Windows自带的命令行脚本工具,可用于配置端口转发。在一个典型的场景中,如果我们位于公网无法直接访问内网的Web服务器,可以利用中间的跳板机通过…...

慧哥充电桩开源平台小程序、PC后、手机商户端历经2年的无数次迭代。

...

四、(1)网络爬虫入门及准备工作(爬虫及数据可视化)

四、&#xff08;1&#xff09;网络爬虫入门及准备工作&#xff08;爬虫及数据可视化&#xff09; 1&#xff0c;网络爬虫入门1.1 百度指数1.2 天眼查1.3 爬虫原理1.4 搜索引擎原理 2&#xff0c;准备工作2.1 分析爬取页面2.2 爬虫拿到的不仅是网页还是网页的源代码2.3 爬虫就是…...

2024华为OD机试真题-分月饼-(C++/Python)-C卷D卷-200分

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述 中秋节,公司分月饼,m 个员工,买了 n 个月饼,m ≤ n,每个员工至少分 1 个月饼,但可以分多个,单人分到最多月饼的个数是 Max1 ,单人分到第二多月饼个数是 Max2 ,Max1 - Max2 ≤ 3 ,单人分到第 n - 1…...

Git 查看提交历史

Git 查看提交历史 Git 是一个强大的版本控制系统&#xff0c;它允许开发人员跟踪代码的变化&#xff0c;并与其他人协作。了解如何查看提交历史对于理解项目的发展和维护代码库至关重要。本文将详细介绍如何使用 Git 查看提交历史&#xff0c;包括不同的命令和选项&#xff0c…...

力扣双指针算法题目:快乐数

目录 1.题目 2.思路解析 3.代码展示 1.题目 . - 力扣&#xff08;LeetCode&#xff09; 2.思路解析 题目意思是将一个正整数上面的每一位拿出来&#xff0c;然后分别求平方&#xff0c;最后将这些数字的平方求和得到一个数字&#xff0c;如此循环&#xff0c;如果在此循环中…...

【Tools】了解人工通用智能 (AGI):未来的智能体

什么是人工通用智能 (AGI)&#xff1f; 人工通用智能&#xff08;Artificial General Intelligence&#xff0c;AGI&#xff09;是指一种能够理解、学习和应用知识&#xff0c;具有像人类一样广泛和通用的认知能力的智能系统。与专门处理特定任务的人工智能&#xff08;AI&…...

华媒舍:8种网站构建推广方法全揭密!

网站构建成为了推广宣传和宣传品牌的关键一环。对于新手&#xff0c;搭建和营销推广网站有可能是一项全新的挑战。下面我们就为大家介绍8种网站搭建和营销推广技巧&#xff0c;帮助你在这些方面取得成功。 1.选择适合自己的网站构建平台选择合适的网站构建平台针对构建一个成功…...

【Scrapy】 深入了解 Scrapy 下载中间件的 process_exception 方法

准我快乐地重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 再去做没流着情泪的伊人 假装再有从前演过的戏份 重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 你纵是未明白仍夜深一人 穿起你那无言毛衣当跟你接近 &#x1f3b5; 陈慧娴《傻女》 Scrapy 是…...

DevEco Studio无法识别本地模拟器设备的解决方法

目录 场景 解决办法 方式1 方式2 场景 有很多小伙伴遇到过安装了手机模拟器, 但是开发工具设备栏不识别手机设备的问题, 如下图,明明模拟器都安装了,并启动, 但为什么设备栏不显示呢? 解决后的截图,应该是这样(其实跟 android 类似 )...

EN-SLAM:Implicit Event-RGBD Neural SLAM解读

论文路径&#xff1a;https://arxiv.org/pdf/2311.11013.pdf 目录 1 论文背景 2 论文概述 2.1 神经辐射场&#xff08;NeRF&#xff09; 2.2 事件相机&#xff08;Event Camera&#xff09; 2.3 事件时间聚合优化策略&#xff08;ETA&#xff09; 2.4 可微分的CRF渲染技术…...

2407C++,从构生成协议文件

原文 protobuf会根据proto文件生成c对象及其序化/反序化方法,而iguana的struct_pb则是以结构为核心,编译期反射来生成序化/反序化代码. 有人提出能不能按proto文件输出结构呢,这样就可给其它语言用了,很好建议,实现起来也比较简单. protobuf是从proto文件到c对象,而struct_p…...

遗传算法求解TSP

一、基本步骤 遗传算法求解旅行商问题&#xff08;TSP&#xff09;的一般步骤如下&#xff1a; 编码&#xff1a; 通常采用整数编码&#xff0c;将城市的访问顺序表示为一个染色体。例如&#xff0c;假设有 5 个城市&#xff0c;编码为[1, 3, 5, 2, 4]&#xff0c;表示旅行商的…...

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【明文导入密钥(C/C++)】

明文导入密钥(C/C) 以明文导入ECC密钥为例。具体的场景介绍及支持的算法规格 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 指定密钥别名keyAlias。 密钥别名的最大长度为64字节。 封装密钥属性集和密钥材料。通过[OH_Huks_I…...

视频汇聚/安防监控/GB28181国标EasyCVR视频综合管理平台出现串流的原因排查及解决

安防视频监控系统/视频汇聚EasyCVR视频综合管理平台&#xff0c;采用了开放式的网络结构&#xff0c;能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;视频汇聚EasyCVR平台支持设备…...

TypeError: Cannot read properties of null (reading ‘nextSibling‘)

做项目用的Vue3Vite, 在画静态页面时&#xff0c;点击菜单跳转之后总是出现如下报错&#xff0c;百思不得其解。看了网上很多回答&#xff0c;也没有解决问题&#xff0c;然后试了很多方法&#xff0c;最后竟然发现是template里边没有结构的原因。。。 原来我的index.vue是这样…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...