基于超分辨率的遥感图像小目标检测

        这是一篇基于遥感图像小目标检测的文章,没有代码,只是为了学习学习思路而已,这篇文章针对遥感图像小目标检测困难问题,提出了一种S^{^{2}}ANET-SR模型,即将原始图像和简化后的图像同时输入检测网络,设计了简化后的图像超分辨率增强模块来增强小目标的特征提取,并提出了感知损失和纹理匹配损失作为监督。

        对于本文的贡献:

        1、设计了一种损失函数来进行提升小目标检测效果。

        2、为了使模型(文章说的是S^{^{2}}ANET)的参数相似,从而将FAM直接删除了。

        3、相比较S^{^{2}}ANET提升了0.79个点。

        提一个小目标检测差的通用说法:

        基于深度学习的应用通常需要提取图像的潜在特征,然后通过神经网络的前向传播得到预测结果。有足够的输入信息和合适的神经网络的样本是获得良好结果的必要条件。而遥感图像中的小物体在图像中所占比例很小,导致边缘特征和纹理信息不明显甚至缺失。同时,检测模型的骨干网通常包含多个下采样过程,这可能使特征图中小目标的比例尺仅为个位数像素。这种现象可以使检测算法在检测大物体时取得较好的效果,但不适用于小物体的检测。

一、图像的多尺度前向传播

         那么一些基于GAN方法的网络结构,即使用大对象作为正样本,小对象作为负样本生成大对象,从而增强小对象的表示,使其与真实大对象相似。在此思想的启发下,该文章利用遥感图像中具有相同特征但不同尺度的大型物体的信息来增强小物体的特征提取就比如说FPN网络,就是直接利用不同大小的特征层进行学习和提取不同的层次的特征。由此也就得出输出结果的差异是由于输入对象的特征不同造成的。基于这样输入对象的大小不同,作者就直接通过缩小输入图片来完成,因为图片缩小2倍,那么对应图像中的对象也自然会缩小二倍。如下图所示:

 二、特征增强模块

        这一部分,也不知道是作者没说清楚还是自己的没理解清楚地原因,总之,自己有点没弄懂,而且它的图也画的不清楚,我们就直接看着玩玩就行,不必深究,毕竟没有提供代码。 如下面的虚线框所示,这就是作者所说的特征增强模块。为什么需要这么做呢?前面提到过,因为随着卷积和池化的操作,使得输入图像中的小目标的信息就变少了,或者说就直接变没了,所以作者通过在主干网络的第一层block的结果和FPN的最底层结果 直接进行3个堆叠的残差块,用来是FPN的最底层特征图也能再学习到一些小的特征信息,这样就有利于下一步的检测了。个人的理解就是这样,如果有不对的,大家可以自己下载论文看看。

        在下面的一张图中,supervision的意思就是监督学习的意思,就是说,对于原始图片的第二层预测前的特征图与缩小后的图片的第一层预测层之前的特征图进行某种损失计算,从而达到监督的作用,因为从本质上说,这两个预测层应该是可以预测出同一个物体的,输入虽然是二倍关系,但是输出缺失1/2的关系,自己领悟一下,下面图中画的曲线箭头就是我所说的部分。

 三、损失函数

        这部分也是本文的重点部分,对于上面所说的特征增强模块,肯定需要损失函数来学习到小目标的位置的,那么在本文中,作者使用的是MSE损失函数。这是基于像素的。

        对于监督学习的部分,作者通过引用其他学者的总结:通过大量的分类任务得知, 深度学习技术在物体检测中严重依赖于物体的纹理,而不是物体的形状。因此,在监督学习部分作者直接通过纹理部分来进行损失函数的计算,如下图所示,该部分计算并不是在预测头中进行计算的,而是在预测头之前的特征层进行计算的。

 

         针对监督学习的损失计算公式,作者也做出了相应的解释,如下图所示:它是一种自己和自己的转置进行计算,其中F表示的是特征层,并且是对通道进行的点积运算,因此矩阵G被定义为位于图像同一位置的每一对特征之间的组合,因此可以在两个通道中的特征值之间的相关性可以导出高级纹理信息。说的很难理解哈,我的理解是这样的,假设特征层有7x7个网格,那么就是每个网格的通道数进行一次计算。感觉就和自注意力机制一样。但是我觉得这样计算,是不是复杂度升高了呢?

         至于后面的就是一些实验部分,大家感兴趣就自己去看吧。

猜你喜欢

转载自blog.csdn.net/weixin_44911037/article/details/127648875