Multi-label Image Recognition by Recurrently Discovering Attentional Regions

本文提出一种结合空间变换器与LSTM的深度学习模型,用于高效准确地完成多标签图像识别任务。该模型能够自动定位图像中有意义的区域,并通过循环结构揭示不同区域间的语义关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:

1、论文解决问题:使用一种新的深度神经网络结构实现多标签的图像识别任务;

2、传统方法及其缺陷:传统多标签分类器往往需要预测候选区域(region proposal),这种方法往往会造成额外开销,性能也难以达到最好;

3、本文的主要工作:本文中实现了一个具有可解释性且能获得图像语义信息的多标签图像分类器,该分类器的主要模块由两部分组成:一个空间转换器(spatial transformer layer)在特征层中定位感兴趣区域(这里用attentional regions表示);一个LSTM层用于计算这些regions之间的依赖关系,并且按顺序输出各个regions标签预测分数,同时LSTM还可以输出用于计算空间转换器的相关参数。

4、实验结果:在多标签的大型数据集(MS-COCO和PASCAL VOC 2007)上,本文提出的网络结构在准确率和运行效率都优于现有的其他先进分类器。

 

简介:

1、多标签图像识别问题:这是计算机视觉中的一个非常实际的问题,因为在现实生活中的绝大部分图像都是包含丰富多样的语义信息的。对比起单标签的图像识别,多标签图像识别要求我们必须更加深度的理解图像中的语义信息(例如标签和图像中的各个区域之间如何关联,如何获得它们的依赖关系等),因此多标签视觉的难度会大很多。

2、多标注图像识别的一种常用的做法是结合CNN和图像目标定位技术(detection)(作者以HCP方法举例,我大致看了一下那篇论文:是通过无监督的方法(Edgebox)产生大量的region proposal,然后将每个候选区域通过一个共享卷积层得到每个框的多标签分类预测,再将所有的预测通过cross-hypothesis max-pooling层融合到一起),这些做法通常会产生许多冗余计算,而且这些做法中都是把每个框以及原图先通过并行的计算再融合到一起,这就忽略了图像中不同区域之间的关联性以及不同标签之间的依赖可能性。

3、论文《 CNN-RNN: A Unified Framework for Multi-label Image Classification》提出将RNN和CNN结合(大致看了一下模型结构,这篇文章将标签作为文本信息通过一个LSTM网络之后将图片的特征层和文本特征映射到相同维度后相加作为总的特征层),以此来计算标签之间的相关性,但是这种做法忽略了语义标签和图像内容(不同区域)之间可能存在的相关性,且缺乏对图像语义的挖掘(根据文章模型的描述,我猜测这里的图像语义应该是指图像中不同区域之间的逻辑关系);

4、基于上述方法的比较,作者提出一个端到端的可训练模型框架,该框架基于图片的多分类标签确定地获得attentional regions、并同时获得这些区域之间的语义关系以及它们的多分类标签预测。提出的方法并不需要获得额外假设的region proposal。下图是通过这种模型获得的attentional regions例子:

5、本文的主要工作:a、提出一个不需要假设region的方法,能够在图像上自动发现具有语义特征的区域,获得这些区域之间的逻辑关系;b、提出空间转换模型的三个约束,有助于学习获得更有价值的区域,加强分类效果;3、在PASCAL VOC和COCO等大型数据集上进行大量试验评估,证明在性能和效率上都由于其他先进的多标签分类模型。

 

相关工作

1、多标签图像识别任务:

传统的多标签图像识别任务都是基于bag-of-words模型(BOW,词袋)来解决问题(这类模型我并没有了解,因此只转述作者的话),这些模型是基于人工构造的低级特征,因此虽然在简答的场景下表现良好,但是在更复杂的环境中就会失去作用;相反,使用深度学习获得的特征被证明了具有更高的通用性,更适合进行分类。

在深度学习中,很多方法都忽略了图像的空间信息(作者列举了一些论文举例),难以将图像区域和检测到的类型联系起来,并且容易受到复杂背景的影响。因此,在一些研究中,有人提出了利用object proposals只关注图像中的对象区域来避免背景的干扰(包括Wei、Yang等人的论文都提出了获得候选区域的方法)。但是由于数据集本身并不包含对象的位置信息,这些方法通常效率不高,容易成为模型的瓶颈,而且难以形成端到端的训练模型。

作者提出了一个可以嵌入神经网络中的循环记忆-注意模块(recurrent memorized-attention module),可以同时定位注意区域,并且获得这些区域的预测标签。而且该模块不需要额外获得proposals,因此效率很高并且容易形成端到端的模型结构。

2、注意力提取模型:

有很多研究中将注意力模型应用于各种计算机视觉任务中,这些研究大多使用RNN进行循环关注,并使用强化学习进行优化。.Jaderberg提出一种空间变换模块(spatial transformer module),该模块可用于提取具有任何空间变换的注意区域,包括缩放、旋转、平移和裁剪,作者认为可以使用空间变换模块嵌入到神经网络中,使用反向传播进行优化,而不是使用强化学习。

 

模型结构

模型概览图:

一、模型概览

1、图片经过CNN特征提取模块获得特征f_I,并不产生任何假设的候选区域。

2、图中ST模型即 spatial transformer model ,表示空间变换模型,可以通过一个变换矩阵获得特征层中的一个区域,ST模型和LSTM模型共同构成注意力-递归模块,直接输出输入的图像中的不同区域产生的标签分布。

3、在每次梯度下降过程中会进行迭代K次,每次迭代中ST网络通过变换矩阵M_i为LSTM提供预测的注意区域,LSTM预测这个区域的分类分布,并且输出用于更新变换矩阵的参数(c_i, k_i)。最后将K次迭代中获得的分布通过category-wise max-pooling层得到最终的标签分布预测。

二、空间转换(ST)模型细节

1、原理:使用特定的变换矩阵M对图像的各个坐标做映射可以起到对图像进行crop,translation以及scale等操作的效果,例如:

M = \left[ \begin{matrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ \end{matrix} \right] \tag{3} 时将每个坐标扩充一维后乘以矩阵M可以将图像横坐标和纵坐标分别放缩为s_x,\ s_y

M = \left[ \begin{matrix} 0 & 0 & t_x \\ 0 & 0 & t_y \\ \end{matrix} \right] \tag{3} 时将每个坐标扩充一维后乘以矩阵M可以将图像横坐标和纵坐标分别平移t_x,\ t_y长度

M = \left[ \begin{matrix} cos\theta & -sin\theta & 0\\ sin\theta & cos\theta & 0 \\ \end{matrix} \right] \tag{3} 时将每个坐标扩充一维后乘上矩阵M可以旋转\theta 角度,不过旋转效果本文中没有用到。

在本文中的STN中,将矩阵M约束为:M_k = \left[ \begin{matrix} s^k_x & 0 & t^k_x \\ 0 & s_y^k & t_x^k \\ \end{matrix} \right] \tag{3}(从公式上看似乎是放弃了旋转的功能)

2、使用双线性差值将特征层和图像层做映射。

三、注意力-递归模块细节

1、注意力区域计算:

      f_k = st(f_I, M_k),M_k = \left[ \begin{matrix} s^k_x & 0 & t^k_x \\ 0 & s_y^k & t_x^k \\ \end{matrix} \right] \tag{3}

      第一次迭代时:M_k = \left[ \begin{matrix} 1& 0 & 0 \\ 0 & 1 & 0 \\ \end{matrix} \right] \tag{3},表示的是恒等变换,即获得整个特征区域

2、使用LSTM目的:

       依靠LSTM的“记忆”能力获得各个区域之间的隐形依赖关系,公式如下(这是LSTM中的标准公式,就不解释了):

       获得值得注意的区域。

3、迭代中M的更新策略:

       将LSTM的激活函数输出进行不同的线性变换分别得到注意区域的多标签得分以及下一次迭代的变换矩阵,公式如下所示:

这一步感觉值得考究,我认为通过这种方法得到矩阵M应该是假设通过LSTM最终得到的特征会影响下一个可能的注意区域(例如如果该区域预测出大概率有人,那么下一个可能有对象的区域可能就在当前区域的下方(交通工具之类的)),但是即使基于这样的假设,矩阵M的参数是没有相关的数据可以进行训练的,作者在摘要中说的具有可解释性的区域提取这一点我有点质疑。

 4、不同区域的得分合成方法:Category-wise max-pooling方法,大致是取最大值的方法,公式如下:

            

学习过程

1、分类损失

        将最终得分经过softmax之后使用平方损失函数

2、注意区域约束损失

        问题分析:

a. ST模块容易过分关注最突出的对象,导致出现大量冗余区域;

b. ST模块容易忽略一些体积小的对象;

c. 所选择的区域只出现垂直或水平的区域(这里我理解的是可能有一些物体可能在图像中是倾斜着的,提取的框可能难以将其矫正)。

        解决方案:

a. 作者为每张图设定了几个标准区域(区域中西分布于以图片中心为原点的圆上),除了第一次迭代,期望每次迭代得到的矩阵都能按顺序在这些标准区域附近(对位置进行约束),公式表示为:

         

b. 当选择的区域过大时进行惩罚(对尺寸进行约束):

其中,有:

c. 对过小或负的缩放系数进行惩罚:

最后讲这些约束损失和分类损失进行加权和。 

从这些约束上看,似乎只解决了作者提出的前两个可能出现的问题,将框的位置和大小约束在一个合理的范围内,但是第三个问题没有解决,我猜想如果在STN的约束中把旋转的功能也加到矩阵M中有没有可能有效。

实验过程

1、对比实验:

作者列举了自己和其他相关工作在PASCAL VOC 2007以及COCO中的各项性能指标,作者的模型均表现出明显的优势,结果如下:

2、分析实验包括:

Attentional regions v.s. object proposals:对象区域通常要上百个(500)预选区域,而且通常包含很多非对象的区域,比较了EdgeBox的nms结果前五名和K=5的注意区域,从样例上看,确实作者提出的提取框方法更高概率捕捉对象:

使用固定的五个位置(标准位置)作为注意区域 VS 用空间转换层获得注意区域:后者在PASCAL VOC数据集上mAP提高了两个点;

分别去除三个约束查看效果:增加每个约束模型都有提升;

多尺度融合:用两个不同尺度融合后结果又明显提升。

结论:

这篇论文主要是介绍了一种在深度神经网络结构引入循环可记忆注意模型的方法来解决多标签图像识别问题。具体来说就是,循环可记忆注意模型由两部分组成:一个定位图像中注意区域的ST层;一个LSTM单元,根据局部区域的特征预测标记分数,并保留这个区域之前的信息。实验结果显示性能很好(准确度、效率)。

阅读笔记:

这篇文章出发点是解决计算机视觉中的多标签图像识别问题,使用深度学习中的普通分类算法做法难以提取图片的更深度的信息,且容易被复杂背景干扰,因此受目标检测等方面的研究启发,可以将提取候选区域的想法应用到这上面来。但是由于多标签图像识别问题中并不包含图像中对象的位置信息,因此提取候选区域只能通过预训练的方法或者无监督学习的方法来做到,而这往往会产生许多干扰,而且需要大量的候选框才能保证有效果。这篇论文中作者想到了可以将不同候选框之间联系起来,使用LSTM研究它们之间的语义信息是一个非常棒的创新点,我认为这是本文最重要的创新之处,可惜作者并没有做去除LSTM的对比实验,我觉得有点可惜。

不过,本文中提出的注意力区域提取方法我认为可能还有改进的空间,在提取过程中使用了矩阵M,但是矩阵M在获得的时候虽然有用到LSTM的输出,但是真正受到训练的只有基于三个约束的损失函数,因此我认为这并没有充分利用好图像的信息,同时,作者也没有解决在STN模块中提出的第三个约束。

 

阅读过程中了解的相关文章:

RNN-CNN(简单浏览):

图片通过卷积神经网络获得特征层,同时labels(one-hots表示)经过embedd映射成向量传入LSTM中输出结果,然后将图像特征和LSTM的输出投影到相同的维度后相加并通过一个激活函数获得最终的特征,然后通过预测层获得预测结果。

 

STN(简单浏览):

只是数字图像处理中关于用矩阵对图像处理的一个应用而已;

 

HCP(简单浏览):

使用bing算法或者EdgeBoxes算法提取大量候选框,将框通过共享卷积层,然后将所有预测向量通过一个cross-hypothesis max-pooling层计算多标签分类预测向量

 

EdgeBoxes算法(简单浏览):

算法比较复杂,大致是一个基于通过边缘检测提取对象轮廓然后根据轮廓预测框位置的算法。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值