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

ViP-LLaVA: Making Large Multimodal Models Understand Arbitrary Visual Prompts

发表时间:cvpr2024

论文链接:https://readpaper.com/pdf-annotate/note?pdfId=2357936887983293952&noteId=2426262228488986112

作者单位:University of Wisconsin–Madison

Motivation:现在的多模态模型都关注整张图像的理解,它们缺乏在复杂场景中处理特定区域信息的能力

解决方法:为了应对这一挑战,我们引入了一种新的多模态模型,能够解码任意(自由形式)的视觉提示。这允许用户直观地标记图像并使用“红色边界框”或“指向箭头”等自然线索与模型交互

本文主要贡献是:

  1. 我们引入了一种新的多模态模型,用于使用自然语言和任意视觉提示与图像的直观交互,增强了用户可访问性和模型灵活性。

  2. 我们开发了一种visual referal approach(视觉引导方法),将视觉提示直接叠加到图像上,在不影响性能的情况下简化模型架构。

  3. 我们的模型 ViP-LLAVA 在已建立的基准上在区域理解任务上取得了最先进的结果,surpassing specialized region encoding models。

  4. 我们介绍了 ViP-Bench,用于评估多模态模型具有任意视觉提示的区域理解能力。

实现方式模型架构:在将视觉提示通过Alpha混合叠加(Alpha混合指的是一种图像处理技术,用于将两个或多个图像合成在一起,同时考虑每个图像的透明度(Alpha通道))到原始图像后,将生成的图像输入到视觉编码器中以获取multi-level visual features。这些特征被concat起来并输入到LayerNorm和MLP层以形成visual token。然后,visual token和文本指令标记被输入到大型语言模型中,通过自回归的方式得到输出。

具体结构:

  • visual model, we choose CLIP-336px

  • Vicuna v1.5 [31] as the language encoder

  • a 2-layer MLP is utilized。

  • 该架构与 llava 架构类似,只是多模态投影器采用一组Fusion+LN+MLP的映射。

通过CLIP做视觉提示词嵌入:

视觉提示词设计:

文中也提出了一个视觉指令微调数据集,数据集包含了520K的图像-文本对,源数据都是一些开源的数据集,比如RefCOCOg、PointQA-LookTwice、Visual Genome、Flicker 30k Entities、Visual Commonsense Reasoning和Visual7W。作者对源数据的图片用各种形式的视觉提示词做了自动化标注。

对于只包含bounding box标注的图像来说,视觉提示可以是矩形框、椭圆和箭头中的一种。对于箭头来说,需要保证其落在图像范围之内。

对于包含像素级别的mask标注的图像来说,视觉提示可以是 矩形框、椭圆、点、三角形、mask、mask边缘、箭头、涂鸦等。

Fig 3 可视化视觉提示类型,从左上到右下依次是:掩膜轮廓、椭圆、边界框、三角形、涂鸦、点、箭头和掩膜。请注意,提示不仅形状多样,而且颜色、透明度值、宽度、比例和方向也各不相同

ViP-LLaVA uses 8 visual prompts: rectangles, ellipses, points, scribbles, triangles, masks, mask contours, and arrows. 每种提示随机颜色,随机位置。 For referencing specific regions, we replace the <region> text with the color and shape description, such as red scribble.

可选择的区域级别的指令微调数据:

文中用到的训练数据包括上面介绍的region-level的视觉提示数据,也包括图像级别的视觉提示数据,主要来自于LLaVA v1.5的数据。本文还借助于GPT-4V生成了区域级别的指令微调数据集,主要做法如下:

  • 原图和绘制了视觉提示的图片作为GPT-4V的输入,同时也提供了数据集原本自带的ground-truth的标注还有系统提示词,模型会返回<visual prompt, text prompt, text output>的triplets。

  • 为了让GPT-4V识别对应的物体或者区域,作者提供了一些文本描述,比如针对单物体的<within red mask>或者多物体的(<within red box>,<within blue box>)。在训练的时候,会把这些位置用Fig 3所示的8种视觉提示中的一种来填充。一共得到了13k高质量的区域级别的视觉指令微调数据,包括7k单物体区域和6k多物体区域的。

训练方式:三个阶段训练

第一阶段:第一步使用558k BLIP caption的图像-文本对数据 预训练多模态的connector

第二阶段:第二步用LLaVA 1.5的指令微调数据和本文提到的区域级别的指令微调数据训练模型,两个阶段都训了1个epoch,采用了8个Nvidia A100 GPU;

第三阶段:第三步用到了13K高质量指令微调数据集以及从stage 2训练所用数据集中采样的13k数据集,对模型做微调,也是采用了8个A100 GPU。

第二阶段和第三阶段是按照fig2的结构进行微调(只有Clip image encoder是冻住的)。

实验:Evaluation on Region Reasoning Benchmarks,ViP-Bench Evaluation Results

结论:ViP-LLAVA 的直观设计利用了自然语言交互和视觉标记,简化了图像注释过程,同时增强了visual references的清晰度(可以使用很多形式的visual references)。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 江协科技51单片机学习- p31 LCD1602液晶屏驱动
  • Java二十三种设计模式-组合模式(11/23)
  • 揭秘LoRA:利用深度学习原理在Stable Diffusion中打造完美图像生成的秘密武器
  • c++ | vector
  • 【多线程-从零开始-肆】线程安全、加锁和死锁
  • 线程 【Linux】
  • vue3+axios请求导出excel文件
  • 【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏
  • Jboss 漏洞合集
  • uniapp结合uview-ui创建项目关键步骤一步一图教程
  • 记忆化搜索——1
  • CSDN 僵尸粉 机器人
  • 学习笔记 韩顺平 零基础30天学会Java(2024.8.6)
  • 【Material-UI】File Upload Button 组件详解
  • 如何判断IP地址属于住宅IP还是机房IP
  • 分享一款快速APP功能测试工具
  • [deviceone开发]-do_Webview的基本示例
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • express.js的介绍及使用
  • IDEA常用插件整理
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • iOS小技巧之UIImagePickerController实现头像选择
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • linux安装openssl、swoole等扩展的具体步骤
  • Spring-boot 启动时碰到的错误
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 前端面试总结(at, md)
  • 三分钟教你同步 Visual Studio Code 设置
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 与 ConTeXt MkIV 官方文档的接驳
  • 大数据全解:定义、价值及挑战
  • ​configparser --- 配置文件解析器​
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #100天计划# 2013年9月29日
  • #if 1...#endif
  • #include
  • (007)XHTML文档之标题——h1~h6
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (补)B+树一些思想
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (十一)图像的罗伯特梯度锐化
  • (数据结构)顺序表的定义
  • (一)Java算法:二分查找
  • (原)Matlab的svmtrain和svmclassify
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)为C# Windows服务添加安装程序
  • ./和../以及/和~之间的区别