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

OPCap:Object-aware Prompting Captioning

研究方向:Image Captioning

1. 论文介绍

本文提出了一种目标感知的提示策略(OPCap)来有效缓解对象幻觉现象。具体方法是使用预训练的对象检测器来识别图像中的关键对象标签及其空间信息。然后根据这些空间信息提取相应的图像区域,并将它们输入到属性预测器中以获取对象的属性。这些对象标签和属性与由图像编码器提取的特征结合后传递给解码器,增强了模型对图像上下文的理解。

2. 方法介绍

该方法主要包括四个步骤:图像编码、对象检测、属性预测和解码。通过将检测到的对象及其属性整合到字幕生成过程中,OPCap增强了模型对图像上下文的理解,而不依赖外部语言模型。

2.1 对象感知的提示

图像通过目标检测器后,我们获得图像内物体的标签和位置。然后裁剪这些物体区域,用作属性预测器的输入,预测详细的属性,如颜色、形状和状态。

属性预测是一个多标签分类任务。采用了CLIP作为图像编码器,并将其与多层感知器(MLP)分类器集成在一起。

在预测过程中,我们在应用sigmoid激活函数后选择前k个属性。生成的标签随后连接成一个自定义的标记序列。例如,当k=2时,相应的标记序列为:

[OBJ] person [ATTR] gray [ATTR] swinging

[OBJ] sports ball [ATTR] small[ATTR] rounded

嵌入后,标记序列与图像特征结合,作为输入传递给解码器。

2.2 caption生成与训练

图像分别输入到图像编码器和目标检测器。图像编码器输出 m 个特征向量,而目标检测器生成一个包含 o 个物体的列表。然后属性预测器为每个物体预测 k 个属性。为了区分这些信息片段,我们使用自定义的特殊标记来分隔与对象相关的信息。最后,通过嵌入层,这些信息被映射到2*(o+k)个特征向量中。

I^i表示第i个样本,而objs^iboxes^i分别指代对象标签及其对应的边界框。attrs^i代表与每个对象相关联的属性。x^i和 e^i都映射到相同的特征维度d_{model},确保它们共享相同的嵌入空间。随后,这两个特征被连接起来,形成:

Z^i = x^i_1,...,x^i_m,e^i_1,...,e^i_{2*(o+k)}

为了防止模型过度依赖语言先验并提高其鲁棒性,我们首先对文本中的标记应用随机丢弃,然后再将嵌入的文本输入到因果注意力层。C^i表示处理过的输入字幕,Z^i为Transformer的关键值对,C^i为查询。然后将Transformer的输出通过一个多层感知器分类器来完成解码过程:

损失函数如下:

P(w_t|w_{<t},I,\theta) 是在给定图像I、前面的词 w_{<t}和模型参数 \theta 的条件下生成词w_t的概率。

3. 实验

数据集: MSCOCO2017(最新的版本)

评估指标:常见有参指标CIDEr、BLEU、METEOR 和 SPICE;幻觉指标 CHAIRs 和 CHAIRi,分别评估句子级别和对象级别的幻觉。

定性分析:不同模型输出的比较,“+OP”表示采用了我们提出的对象感知提示方法的模型。

http://www.dtcms.com/a/305932.html

相关文章:

  • “娃哈哈”387件商标还在原集团名下!
  • 洛谷 P1303 A*B Problem-普及-
  • SpringAOP实现
  • 图像处理中级篇 [1]—— 彩色照相机的效果与预处理
  • RHEL 9.5 离线安装 Ansible 完整教程
  • 【自动化运维神器Ansible】Ansible常用模块之user模块详解
  • 【自动化运维神器Ansible】Ansible常用模块之group模块详解
  • Vite 模块动态导入之Glob导入
  • 一款基于 ReactNative 最新发布的`Android/iOS` 新架构文档预览开源库
  • Three.js + AI:结合 Stable Diffusion 生成纹理贴图
  • 关于项目的一些完善功能
  • 【BUUCTF系列】[极客大挑战 2019] EasySQL 1
  • 性能优化(一):时间分片(Time Slicing):让你的应用在高负载下“永不卡顿”的秘密
  • Django常见模型字段
  • 【从零实践Onvif】01、Onvif详细介绍(从Onvif客户端开发的角度认识Onvif、Web Servies、WSDL、SOAP)
  • ECMAScript2021(ES12)新特性
  • Python深度挖掘:openpyxl与pandas高效数据处理实战指南
  • 网络编程-(网络计算机和网络通信)
  • Orange的运维学习日记--18.Linux sshd安全实践
  • CUDA编程9 - 卷积实践
  • String模拟实现的补充说明
  • 工业计算机ARM-如何实现工业数字化升级EC100!
  • QT跨平台应用程序开发框架(13)—— 绘图API
  • Linux设备驱动架构相关文章
  • @Scope(value = WebApplicationContext.SCOPE_REQUEST)和@Scope(“prototype“)区别
  • SQL 连接类型示例:内连接与外连接
  • 分布式系统:一致性
  • 二叉树(全)
  • InspireFace SDK gRPC 开发详细指导
  • 大厂主力双塔模型实践与线上服务