Image_captioning

article/2025/10/11 3:43:26

Image caption——图像理解

文章目录

  • Image caption——图像理解
      • 1、任务综述以及早期做法
      • 2、从Encoder-Decoder结构谈起(前身)
      • 3、Show and Tell: A Neural Image Caption Generator(image caption 开山之作)

1、任务综述以及早期做法

在这里插入图片描述

​ 图像理解可以认为是一种动态的目标检测,由全局信息生成image abstract。早先的做法例如《Baby Talk》,《Every picture tell a story》等都是利用图像处理的一些算子提取出图像的特征,经过SVM分类等等得到图像中可能存在的目标object。根据提取出的object以及它们的属性利用CRF或者是一些认为制定的规则来恢复成对图像的描述。这种做法非常依赖于1)图像特征的提取2)生成句子时所需要的规则。自然而然这种效果并不理想。

​ 综上所述,image caption task 的主要任务是:(1) 根据提取得到的图像特征生成object bounding box

(2) 根据bounding box里object内容,利用特定的规则生成图像的描述

2、从Encoder-Decoder结构谈起(前身)

​ 在介绍Image Caption相关的技术前,有必要先来复习一下RNN(循环神经网络)的Encoder-Decoder结构。**我们知道,在最原始的RNN结构中,输入序列和输出序列必须是严格等长的。但在机器翻译等任务中,源语言句子的长度和目标语言句子的长度往往不同,因此我们需要将原始序列映射为一个不同长度的序列。**Encoder-Decoder模型就解决了这样一个长度不一致的映射问题,它的结构如下图:
在这里插入图片描述

w1, w2, w3…wn是输入的单词序列,而y1, y2, y3…yn为输出的单词序列,每个 wi 和 yi 都是已经经过编码的单词,因此它们都是1xD的向量,其中D为程序中使用的单词表的长度。RNN的隐层状态(hidden state)用h1, h2, h3…hn表示。

在实际应用中,我们往往不是把编码的w1, w2, w3…wn直接输入RNN,而是将其转换为对应的word embedding的形式,即图中的x1, x2, x3…xn,再输入RNN网络。在Encoder部分,RNN将所有的输入“编码”成一个固定的向量表示,即最后一个隐层状态 hn , 我们就认为这个hn包含了原始输入中所有有效的信息,Decoder在每一步都会利用 hn这个信息,进行“解码”,并输出合适的单词序列 y1, y2, y3…yn。这样,我们就完成了不同长度序列之间的转换工作。

在这里插入图片描述

3、Show and Tell: A Neural Image Caption Generator(image caption 开山之作)

​ 《Show and Tell: A Neural Image Caption Generator》的idea便是由上述的机器翻译的Encoder-Decoder方法衍生而来。即将经过文字编码得到的特征w1, w2, w3…wn 进行替换,对输入的图像提取一个**视觉特征w1, w2, w3…wn ** 将其送入到Encoder-Decoder理想上便可以得到图片的描述。

​ 这篇论文算是做Image Caption任务早期的开山之作,它只把Encoder-Decoder结构做了简单修改,就在Image Caption任务上取得了较好的结果,下图是这篇论文中网络的具体结构。先看提取图像特征的CNN部分,由于这篇论文是谷歌出品的,因此这部分就使用了自家的Inception模型。再看Decoder部分,将RNN换成了性能更好的LSTM,输入还是word embedding,每步的输出是单词表中所有单词的概率,这些都是标准做法了,就不再赘述。

词表中所有单词的概率,这些都是标准做法了,就不再赘述。

在这里插入图片描述


http://chatgpt.dhexx.cn/article/axplyWjh.shtml

相关文章

From Image to Imuge: Immunized Image Generation

From Image to Imuge: Immunized Image Generation Brief Introduction of myselfIntroduction of this workRelated WorksImage Self-EmbeddingImage Reconstruction (Inpainting) MethodExperimentsConclusion and Contact Brief Introduction of myself 大家好,…

PhotometricStereo

PhotometricStereo 小强老师留下了道CMU的习题,见此题十分有趣,而且博客许久不曾更新,特把该作业奉上。作业是CV中的Photometric Stereo方面的,基本原理还是视觉领域的复原建模,详见这篇论文: Aaron Hertzm…

Free-Form Image Inpainting with Gated Convolution

CVPR 2020的一篇文章 解读一下题目: - free form 自由形式 - image inpainting 图像补全 - gated convolution 门控卷积该文章提出了一个,缺失区域为自由形式的图像补全情况的解决方法,针对该方法提出了一个门控卷积的方法。 模型结构图…

Deep Image Prior

Deep Image Prior 摘要 深度卷积网络已经成为图像生成和重建的常用工具。人们猜想,他们优秀的表现是归功于他们能够从大量图像样本中学习到真实图像先验的能力。而相反,本文中作者展示生成网络在经过任何学习之前就能够捕获大量的低级图像统计信息&…

Automatic Trimap Generation for Image Matting

Automatic Trimap Generation for Image Matting翻译 Abstract image matting 是计算摄影中的一个重要问题。虽然已经研究了二十多年,但是开发一种不需要人工干预的自动matting算法仍然是一个挑战。大多数最先进的matting算法都需要人工干预,以trimap或涂…

Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition程序运行记录

论文题目: 《Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition》 作者列表: 杨洋(天津大学),王超岳(悉尼大学),刘日升(大连理工大学),张…

Learning Continuous Image Representation with Local Implicit Image Function

1. 简介 文章简称为LIIF,即Local Implicit Image Function,受到了3D视觉里场景或物体的隐式表示思想的启发,主要的想法便是把正常的图像当做是连续的,用神经网络表示这个图像之后,对于图像上的每一个像素点其实就当做…

【InternImage】Exploring Large-Scale Vision Foundation Models with Deformable Convolutions

基于Deformable Conv的大规模基础模型 特点: 采用Deformable Conv V3 【v2 19论文】CNN模型 背景 大规模的ViT模型借助模型能力在超大规模数据集上取得了非常高的性能,然而大规模CNN模型研究才刚刚开始。 近期CNN研究倾向于使用大的卷积kernel&#…

ImageMol

ai圈也是卷的狠啊~~ 又发现一个全球首个分子图像自监督学习框架来也 分子是维持物质化学稳定性的最小单位。对分子的研究,是药学、材料学、生物学、化学等众多科学领域的基础性问题。 分子的表征学习(Molecular Representation Learning)是…

Morphological image processing

目录 基本思想: 一.集合论基础 1.集合的概念 2.集合间的关系和运算 二.二值形态学的基本运算 1.腐蚀 (1)概念 (2)结构元素形状对腐蚀运算结果的影响 (3)腐蚀运算在物体识别中的应用 2…

实用的图片批量压缩优化工具

ImageOptim ImageOptim 支持 PNG/JPEG/GIF 动画,本质是各种影像优化工具的图形前端:AdvPNG、OptiPNG、Pngcrush、JpegOptim、jpegtran、Gifsicle 和 PNGOUT素材。 ImageOptim软件非常小! 2.6M而已ImageOptim操作非常非常非常快捷&#xff01…

【UNI APP】globalData全局变量

uni-app 在app.vue文件export default里面定义globalData,在当前文件(app.vue)里面获取globalData需要用this.$options.globalData获取,其他文件则用getApp().globalData获取。 this.$options是用来获取自…

uniapp 全局数据(globalData)的设置,获取,更改

因为uniapp基本上都是将页面,或者页面中相同的部分,进行组件化,所以会存在父,子,(子,父)之间的传值的情况,但在某些情况下,可以选择将内容设置为一个全局的变…

微信小程序定义和调用全局变量globalData

先看看文件结构: 1.现在app.js里面定义globalData对应的全局变量 2.然后在其他js文件进行调用。例如在photo.js里面 要注意的是需要在文件开始的时候初始化 app这个对象 //获取应用实例 const app getApp()

微信小程序:globalData和Storage数据存储的错误示例

前言 在小程序登录是,将返回的用户数据,存储在globalData中和storage中。 // 存储的数据是一个对象 wx.setStorageSync(userAuthData, user.data.data); this.globalData.userAuthData user.data.data; 之前,数据更新了,为了避…

uni-app之全局变量globalData的使用

一般访问请求的时候,baseurl我们都会用变量来代替,所以我们一半会把大量这种常用的,但是又不会经常变动的数据变成一个常量--globalData export default {onLaunch: function() {},onShow: function() {console.log(App Show)},onHide: function() {console.log(App Hide)},glo…

微信小程序中的共享数据 : globalData

和vue中的vuex作用相同,都是用于设置给所有页面都可以使用的数据的。 globalData在app.js中,它是一个对象,在里面设置要使用到的共享数据。 我们在其他页面要使用globalData中的数据时,首先如下: let app getApp() …

在uniapp中监听globalData中的值变化

小程序里怎么去监听app.js里的globalData数据变化呢 1、先再app.vue 中定义一个全局数据对象globalData,再对象里定义好相应的属性与属性值 globalData:{count:0 },methods:{watch:function(method,istr){var objthis.globalDataconsole.log(obj)Objec…

微信小程序中全局共享数据globalData的使用

1.全局共享数据 全局共享数据的两种方式 通过Vue原型共享数据通过globalData共享数据vuex本地存储 1)在Vue实例原型属性上添加属性,其他任何页面预想使用,直接使用this获取到, 比如: 主要代码:(在入口文件mian.js中) import request from ./utils/request Vue.prototype.re…

Vue全局共享数据之globalData,vuex,本地存储使用方法

目录 一、globalData 二、vuex存储方式 1.vue2用法,2.vue3用法 三、本地存储 uniapp的数据缓存 写在最前面,把vue能用到的存储方法都整理拿出来,方便阅读以及工作用。🍉🍉🍉可以收藏起来即拿即用 Vue全局共…