A Comparison of Super-Resolution and Nearest Neighbors Interpolation Applied to Object Detection

本文主要是介绍A Comparison of Super-Resolution and Nearest Neighbors Interpolation Applied to Object Detection,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考  A Comparison of Super-Resolution and Nearest Neighbors Interpolation - 云+社区 - 腾讯云

摘要

超分辨率(SR)作为一个成熟的研究课题,已经被应用于图像重建之外的其他领域。特别地,将分类或目标检测任务与超分辨率预处理阶段相结合,在精度上得到了提高,特别是对于相对于场景较小的目标。虽然SR已经显示出了希望,但是还没有研究将SR和最近邻(NN)插值等简单的上标方法作为目标检测的预处理步骤进行比较。将该课题应用于卫星数据,并将多尺度深超分辨率(MDSR)系统与基于xView挑战数据集的神经网络进行了比较。为此,我们提出了一种处理卫星数据的管道,它结合了多级图像平铺和升级、YOLOv2目标检测体系结构和标签拼接。我们比较了训练模型的效果,使用了4的上标因子,从30cm的地面样本距离上标图像(GSD)到7.5cm的有效GSD。该因子的升级显著提高了检测结果,将广义车辆类别的平均精度(AP)提高了23%。我们证明,虽然SR生成的放大图像比神经网络生成的图像更具有视觉上的愉悦感,但是目标检测网络在精度上几乎没有差别,使用神经网络对图像进行上采样,得到的结果与两种方法得到的MDSRx4增强图像几乎相同,差异为0.0002 AP。

一、简介

随着机器视觉和深度卷积神经网络(CNNs)被应用于新的问题和数据,网络架构的进步和这些网络的应用都得到了快速的发展。然而,在大多数分类和目标检测应用中,图像数据是这样的,感兴趣的目标相对于场景来说是很大的。这可以在最流行的公共基准数据集ImageNet、VOC、COCO和CIFAR中观察到。这些数据集和它们对应的挑战赛继续推进网络架构比如SqueezeNets, Squeeze-and-Excitation Networks, 和 Faster R-CNN。对于DigitalGlobe的WorldView-3卫星将每个像素表示为30平方厘米的区域的卫星数据。

在这些场景中,在大于3000x3000的场景中像汽车这样的物体通常是13x7像素或更小。这些大型场景需要预处理,以便在现代目标检测网络中使用,包括将原始场景切割成更小的组件用于训练和验证。除此之外,在停车场和繁忙的道路等区域,车辆等物体往往位于较近的位置,这使得车辆之间的边界在卫星图像中难以感知。缺乏公共可用的标记数据也阻碍了对这个应用程序空间的探索,只有xView Challenge数据集拥有卫星捕获的带有标记目标的图像。其他空中数据集Classification of Fine-Grained features in Aerial images(COFGA),A large-scale Dataset for Object
Detection in Aerial images (DOTA),Cars Overhead With Context(COWC)也有类似的目标类,但存在一个较低的Ground Sample Distance(GSD)使他们更容易获得良好的目标检测结果,但限制了实际应用。

考虑到将CNNs应用于卫星数据所面临的挑战,将升级作为预处理步骤对实现准确检测目标的良好性能至关重要。深度学习的进步导致了许多先进的体系结构可以执行升级,在低分辨率图像上训练网络,并与高分辨率副本进行对比验证。尽管关于这一主题的文献越来越多,但超分辨率(SR)在目标检测和分类问题上的应用在很大程度上还没有得到探索,SR与最近邻(NN)插值等也没有文献记载。SR网络作为卫星图像中目标检测的预处理步骤,具有良好的应用前景,但由于其深度网络包含数百万个必须正确训练的参数,因此增加了大量的计算成本。与SR不同的是,NN仍然是最基本的向上缩放方法之一,它通过取相邻像素并假设其值来执行插值,从而创建分段阶跃函数逼近,且计算成本很小。

在本文中,我们提出了新的贡献,在日益增长的文献在目标检测和超分辨率。本文通过研究SR和NN在训练和验证一个应用于卫星图像的目标检测网络时的上升率,旨在确定应用驱动SR的好处,从而定量比较SR和应用于目标检测任务的基本插值方法。为了实现这一目标,提出了一种新的多级管道,将WorldView-3卫星图像进行平铺、高档次平铺,并进一步将平铺后的泛锐图像细化为分辨率增强的组件。大集群的小目标将经过超分辨率数据训练的模型与经过原生分辨率图像训练的模型进行了比较,将神经网络放大2倍,将神经网络放大4倍。通过这样做,能够评估SR在真实机器视觉应用程序中的价值,以及它是否显示出足够的好处,以超过与多个深度学习体系结构共存的平台相关的巨大计算成本。

二、超分与目标检测结合的相关工作

A、目标检测结构

目标检测网络在卫星图像中的应用面临着独特的挑战,因为卫星图像非常大,使得场景中的单个目标难以定位和检测。虽然这类图像需要预处理来减小目标检测网络的图像输入大小,但是所选择的检测框架对该领域中进行目标检测的准确性和计算成本有很大的影响。

现代目标检测框架通常分为单阶段和两阶段架构,第一类架构中最流行的包括SSD、ResNet,并且你只查看一次(YOLO)。这些网络依赖于锚盒和滑动窗方法的结合,同时从场景中进行区域建议和特征提取。单级模型的一个显著优点是,它们被设计用来快速地执行目标检测,YOLO获得了近乎实时的检测速度。在卫星领域,这意味着大大节省了检测时间和计算成本。

Faster R-CNN和Mask R-CNN是常用的两阶段架构,将区域建议和特征提取组件划分为不同的阶段,并在阶段之间共享结果,以减少计算负载。虽然这些网络在计算上更昂贵,但与单级网络相比,它们具有性能优势。然而,单阶段的进步已被证明优于两级网络,同时执行检测速度明显快于。

目标检测体系结构的最新进展集中在改进这些网络用于优化其权重的损失函数。值得注意的进展包括ADAM、Focal Loss、Predefined EvenlyDistributed Class Centroids Loss和Reduced Focal Loss。在卫星图像竞赛中,xView目标检测的获胜者使用了较低的Focal Loss。

B、超分辨率和开销的图像应用程序

与传统的神经网络或双三次插值方法相比,SR网络具有显著的图像高维化能力,为人类提供了更好的视觉感知能力。这些网络对低分辨率图像进行训练,以学习一个参数空间,以便能够近似出与高分辨率图像高度匹配的图像的放大版本。超分辨率生成对抗网络(SRGAN)、增强深超分辨率(EDSR)、深后向投影网络(DBPN)、超分辨率DenseNets、深拉普拉斯金字塔网络(DLPN)等多种SR网络均存在。虽然每个网络都有不同的体系结构,但所有这些网络都在尝试解决常见SR数据集(如Set14、B100和DIV2K)上的单图像超分辨率问题。

SR中的很多研究都集中在比较不同的SR体系结构上,通常使用图像信噪比(PSNR)度量来评估体系结构能够在多大程度上从低分辨率图像重构出真正的高分辨率图像。由于这个原因,这些网络很少基于计算成本进行评估,尽管Shi等人尝试使用亚像素CNN架构来进行近乎实时的SR升级。老的应用研究作为目标检测和分类的预处理阶段研究要少得多,尽管最初的研究表明,使用老作为预处理步骤可以产生显著改善小物体的检测和分类在较大的图像和检测对象在本地解析。

对于开销图像,超分辨率已被证明既能提高图像的视觉效果,又能提高目标检测器的性能。Bosch研究了头顶图像的SR,该图像在飞机的低分辨率图像上显示出明显改善的结果。本文对多个SR网络的PSNR进行了比较,给出了开销图像域的比较。虽然SR增强图像在视觉上很吸引人,但是本文并没有将输出的超分辨率图像应用到任何应用程序中。

然而,PSNR并不一定反映机器视觉任务(如图像分类或目标检测)应用程序的改进。Haris通过将SR网络连接到目标检测器的损失函数并优化SR网络以最小化目标检测损失来证明这一点。使用早期停止,当目标检测器达到峰值性能时,就会停止训练。在此过程中,Haris证明了最佳的目标检测性能发生在一个比最大可达到的PSNR更低的PSNR。

在确定SR在目标检测中的效用时,Shermeyer和Etten在xView卫星图像数据集上模拟了各种GSDs,并应用SR体系结构来比较不同分辨率和模型下的目标检测性能。本研究是首个将目标检测与卫星图像上的遥感联系起来的研究,并证明遥感在车辆和船只等小型目标的目标检测方面具有显著的增强作用。Ferdous将SR和SSD目标检测模型应用到VEDAI航空数据集上的车辆检测任务中,对此表示赞同。虽然这两项研究都表明SR对目标检测有改善作用,但它们也忽略了比较单纯的上采样方法(如NN或双三次插值)对目标检测性能的影响。

三、实验步骤

A、Xview数据集

为了使用超分辨率和最近邻插值来训练和验证我们的模型,我们使用了xView challenge数据集。该数据集由1127张独特的图像组成,这些图像是使用“数字全球视野3号”卫星拍摄的。每个图像都是在30厘米的GSD上捕获的,这使得像汽车这样的小物体被一个大约13x7像素的网格所表示,没有什么有意义的特征用于特征提取。因此,xView数据集为测试目标检测器检测小目标(如车辆)的能力提供了很好的机会。数据集中大约有一百万带注释的目标。虽然在这个数据集中存在1127张图像,但是标签只存在于846张图像中。这是因为xView数据集是一个竞赛数据集,组织者保留了281张图片的标签来评估竞赛条目。

xView数据集的一个亮点是它的一系列独特的标记类,其中包含固定翼飞机、拖船、机车和乘用车等目标。总共有60个类,其中许多是一般目标类型的细粒度类。卡车、载货卡车、拖运卡车和自卸车的标记对象就是一个例子,它们都代表卡车的一般类别。因此,我们将总共22个类合并在一起,形成一个通用的vehicle类。为了鼓励训练中的阶级歧视,我们还训练模型识别飞机类和直升机类,虽然我们感兴趣的类只是车辆。飞机类通过合并固定翼飞机、小型飞机和货机类来表示。

我们将这846张带标签的图像分割为一组676张的训练图像和一组170张的验证图像,用于80/20分割。我们使用跨(车辆)类的平均精度(AP)度量来评估模型,并为每个模型提供精确召回(PR)曲线和定量图像。

B、目标检测和超分模型

虽然有很多方法可以实现SR,但是我们利用了EDSR最先进架构的集成扩展,即多尺度深超分辨率(MDSR)。MDSR网络具有在一个模型中执行2x、3x和4x升级的额外优势,允许我们在本文详细实验的基础上进行扩展。该方法结合了剩余学习技术和一种增加网络宽度和降低深度的方法。我们实现了EDSR/MDSR的PyTorch版本,并使用MDSRx4升级来与NN升级方法进行比较。从图2可以看出,MDSR产生了一个比NN插值方法更美观的高档视觉效果。这表明,MDSR网络成功地生产了一个高档,具有更好的PSNR比NN。我们利用预先训练好的MDSR权值,因为我们发现这些权值的PSNR与使用从原始xView数据集中抽取的低分辨率图像进行完全训练的MDSR网络的PSNR相当。                  

为了执行目标检测实验,我们利用PyTorch实现了You Only Look Once (YOLO) v2体系结构。卫星图像覆盖非常大的区域,要求快速计算物体。这种单级架构执行场景检测的速度明显快于更复杂的两级网络,如Mask R-CNN,同时实现了类似的性能。

我们在两个Nvidia Titan Xp图形卡上训练YOLOv2模型,批量大小为32,细分大小为8。我们使用0.00025的学习率和0.9的动量。在ImageNet数据集上使用官方的经过预处理的Darknet-19卷积权值来初始化我们的模型。在训练过程中,我们增加了数据来随机调整色调、饱和度和曝光率,使我们的模型对颜色和光照的变化具有鲁棒性。训练中还采用了随机平移、缩放和抖动等方法,提高了模型的鲁棒性。我们使用一个单一的Nvidia Titan Xp进行目标检测和评估性能的训练模型。为了获得我们的平均精度指标,我们使用IOU阈值0.5,并扫描边界框的置信阈值,以获得从0.01到0.9的所有置信评分的精度和召回值。

C、用于在卫星场景中对小目标进行目标检测的自定义流程

为了获得较好的卫星图像处理性能,提出了一种结合图像平铺和缩放的多级预处理管道。xView数据集中的图像非常大,每个图像的大小大约为4000x3000。假设YOLOv2网络将所有输入图像的大小调整为416x416,以确保13x13输出特征映射,则必须将原始xView图像平铺成更小的图像,以保留目标。如果没有这个步骤,像车辆这样的非常小的物体将被调整到小于4x4的大小。

我们的目标检测流程为卫星图像进行了调整,它执行了两个平铺阶段和一个升级步骤。对于xView数据集中的每个图像,从图像中连续切割208x208个tile,每个tile之间的重叠为50个像素。这些被送入一个升级阶段,它将每个瓦片放大4倍,产生一个832x832的切割。然后,将这些放大后的图像应用到第二阶段的tiler中,该阶段使用416x416个重叠像素为50的切面。平铺方案是这样的,连续的平铺砖从上到下,直到达到图像的边缘,这时平铺砖返回到图像的顶部并向右移动。这将导致图像边缘出现明显的重叠,不过对于大型场景,这种重叠并不明显。在第二个平铺阶段,这种显著的重叠成为性能的一个额外优势,因为它允许YOLOv2有第二次机会检测场景中的目标,通常可以正确地检测在一个重叠平铺中丢失的目标。然后将检测结果拼接在一起,返回相对于原始场景的包围框位置。

                                

为了消除重叠平铺场景中出现的重叠边界框,我们使用了面积上的交集(IOA)度量。

                              

边界框是根据YOLOv2的置信度评分排序的,然后与它附近的其他框进行比较。我们设置阈值,这样,如果一个框与另一个框重叠,其截面积大于边界框面积的75%,则删除置信度较低的框。我们使用IOA度量不同于许多标准方法要求Intersection-Over-Union(IoU),正如我们所发现,借据不执行一个适当的阈值以及IOA合并重复的边框,同时保留目标的边界框位于近,如卡车,尤其是当这些目标定位在一个角度。

四、结果

通过比较xView数据集中车辆的目标检测结果,可以看出平铺和缩放对于提高卫星图像上的模型性能有着重要的作用。如表1和图4所示,将NN插值因子提高2,与不进行缩放的平铺图像相比,AP提高了3.4%。使用我们提出的管道和4倍的升级,结合多级平铺,与本地图像GSD相比,性能提高了22.8%,达到0.683 AP。

                                     

有几乎没有任何区别MDSR和NN升级方法,在美联社NNx4优于MDSRx4 0.02%。事实上在观察Precition-Recall曲线在图4中,MDSRx4 NNx4曲线重叠,表明目标检测器不是从SR处理图像中提取特色并没有出现在NNx4图像。

                                           

鉴于YOLOv2模型使用重量pretrained ImageNet然后精制上xView中的目标数据集,我们怀疑的好处从升级目标MDSR和神经网络在很大程度上是由于更好的匹配目标ImageNet场景中目标关于大小。因此,使用了向上缩放来辅助从训练前学习的特征提取过程。由于这些特征在卫星场景中是有限的,网络很可能是根据这些小目标中有限的几何形状推断出这些特征,而不是通过先进的升级方法(如MDSR)带来的任何独特特征。

我们注意到,我们提出的目标检测管道在低目标密度场景中表现得非常好,如图4所示,这对于MDSRx4和NNx4放大场景都适用。在拥挤的场景中,例如道路、高速公路和停车场,我们的管线表现良好,但是由于车辆集群之间的边界变得难以感知,我们的管线的性能有所下降。考虑到密集的小目标集群对YOLO目标检测体系结构来说是一个文档化的挑战,我们的pipeline能够克服这个网络缺点,并保持高精度和快速的推理速度,这是将YOLO体系结构应用于实际应用的一个新的改进。

五、结论

在本文中,我们将现代最先进的SR网络与用于目标检测的图像预处理的普通朴素插值方法进行了新颖的比较。我们实现了因子为4的MDSR网络升级,以及神经网络插值方法,并利用这些升级后的图像训练和验证了YOLOv2目标检测体系结构的多个模型。此外,我们提出了一种新的pipeline,使用多级平铺和上采样与YOLOv2架构相结合,以准确识别大卫星场景中的车辆。在此过程中,我们增加了越来越多的关于高空图像和超分辨率目标检测的文献。

我们演示了多阶段平铺和升级可以显著改善大场景中非常小的目标,在xView数据集中找到的本地GSD中,按4倍的比例升级的图像比单阶段平铺图像的性能提高了22.8%。然而,我们的结论是,使用神经网络和SR方法训练的目标检测器的性能差异很小。尽管与其他插值算法相比,SR生成的放大图像更接近于光真实感,但在与机器视觉架构结合用于目标检测时,SR似乎没有产生任何显著的优势。考虑到SR的计算成本明显高于NN,这就对SR在实际应用和产品中的价值提出了质疑。

这篇关于A Comparison of Super-Resolution and Nearest Neighbors Interpolation Applied to Object Detection的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/258291

相关文章

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

问:Super与this在Java中有什么区别?

this: this 关键字用于引用当前对象。它通常用于区分成员变量和方法参数或局部变量。在实例方法中,this 指向调用该方法的对象。在构造函数中,this 指向正在被初始化的对象。 super: super 关键字用于引用父类(超类)的构造函数、方法或变量。在子类的构造函数中,super() 用于调用父类的构造函数。在子类的方法中,super.methodName() 用于调用父类的方法。

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光 一,前言二,资源包内容三,免费获取资源包 一,前言 在创意的世界里,每一个细节都能决定一个项目的独特魅力。今天,要向大家介绍一款令人惊艳的粒子效果包 ——Super Confetti FX。 二,资源包内容 💥充满活力与动态,是 Super Confetti FX 最显著的标签。它宛如一位

MTK Android P/Q system/vendor/super快速打包

一、Android 新版本默认开启了动态分区,把system vendor  product等分区打包成一个super分区。这对于我们使用替换分区的方法来排查问题不是很方便,直接替换一个super也不知道到底是哪个部分导致的。所以我们需要自己制作super.img来缩小范围。下面讲讲如何快速生成system、vendor、super,以及vbmeta(校验image,不匹配可能会导致不开机) 二

? extends T 和 ? super T分别是什么意思?有什么不同?

<? extends T>首先你很容易误解它为继承于T的所有类的集合,这是大错特错的,相信能看下去你一定见过或用过List<? extends T>吧?为什么我说理解成一个集合是错呢?如果理解成一个集合那为什么不用List<T>来表示?所以<? extends T>不是一个集合,而是T的某一种子类的意思,记住是一种,单一的一种,问题来了,由于连哪一种都不确定,带来了不确定性,所以是不可能通过add

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

java基础总结11-面向对象7(super关键字)

在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用。 1 super关键字测试 package cn.galc.test;/*** 父类* @autho

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法