本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

以下为译文:

Yann Lecun曾将无监督学习比作蛋糕,将监督学习比作蛋糕上的糖霜,声称我们仅懂得如何做糖霜却不知道怎样才能做出蛋糕。在本篇文章中,我们提供了一份训练无监督学习算法的“蛋糕”配方,用来增强卫星图像。

本研究起源于新兴商业航天行业中日益增多的低成本卫星图像。在这个新兴的行业中,传感质量、回访速率以及成本间存在着一种权衡。我们研究了高级图像处理的特性,以减少这种权衡,并在相同成本情况下改善低质量传感器返回的图像。

图1:使用飞机、商业卫星与空间站进行远程遥感。本图意在表示不同远程遥感活动间潜在的交叉,并不代表实际的交叉程度。航空遥感可用于增强精密商业卫星图像。而精密商业卫星图像又可用于增强低分辨率的卫星图像。

我们在深度神经网络(DNN)中嵌入高分辨率图像的图像细节,并在增强地理相似图像时抽取这些细节。作为本研究的一部分,我们引入了适合图像增强任务的扰动层,为深度神经网络开发了一种新型架构。

超分辨率技术

图像增强的方式有很多,如降噪和色彩调整。对于卫星图像而言,地面采样距离(GSD)是一种常见的衡量图像质量的方法,其表示图像中单个像素表示的实际物理距离。本文提到的图像增强是指降低(优化)卫星图像中的地面采用距离,即超分辨率技术。超分辨率技术通过合成图像中的子像素信息,提高图像分辨率。常见的合成方法包括:

  • 图像中相邻像素间插值
  • 影像中相邻帧间插值
  • 频域滤波,降低噪声

在本研究中,我们对上述方法进行了扩展,在处理地理相关图像时应用深度学习技术。

图2:超分辨率技术。为了将超分辨率技术从不适定优化问题转换为适定逆问题,我们必须从高分辨率图像出发,降低图像质量,然后优化超分辨率技术,从降质图像中复原出原始图像。我们使用峰值信噪比评估原始图像与复原图像间的差异。

为量化增强方法的效果,我们比较了图像增强前后的峰值信噪比(PSNR)。此外,针对后续的分析,我们还展示了图像中峰值信噪比的地域分布以及相关性。

PSNR是衡量超分辨率算法生成能力的必然选择。我们未来将发表一篇文章,使用生成对抗网络为超分辨率技术学习一种更好的代价函数。

含扰动层的完全卷积神经网络

在直接展示结果前,我们先讨论下为执行超分辨率处理流程而开发的框架。标准的深度神经网络,如AlexNet、 ResNet、 VGG与GoogLeNet,都是对低分辨率图像进行图像分类与目标检测的框架,在输出空间达到指数级大小的超分辨率图像场景下并不适用。

考虑到超分辨率技术本质上是低分辨率图像的一种扰动,我们受到ResNet的启发,决定设计一种新的、由恒等映射扰动序列构成的深度神经网络。这种网络通过优化前一层与当前层的凸组合来扩展自身结构,每次仅扩展一层,并产生可训练参数(旁路参数),衡量新层次对最终输出的贡献。

图3:本文提出的凸扰动层与ResNet层的比较。两种架构均包含卷积层与恒等函数的组合。凸扰动使得这种组合能够训练达到最优。随着β值减小,层次对增强效果的贡献也随之降低。

这种结构有以下好处:

  • 这种网络架构很适合包含跳跃连接和随机深度的极深神经网络的训练,符合现代训练策略
  • 旁路参数评估每一层的贡献,就网络应达到的深度给出反馈
  • 每一层均执行近似恒等变换,使用不同结构增强图像

每个扰动层至少包含两个卷积层,每个卷积层间还包含一个非线性ReLU层。扰动层中更多的卷积层提高了扰动层增强图像的能力,但训练收敛也变得更加困难。另外,额外的扰动层具有类似的图像增强潜力,且不存在收敛问题。

图4:含扰动层的深度神经网络

旁路参数就每个扰动层的影响提供了直接的反馈。这些反馈有助于解答神经网络的深度应达到多少的问题。

图5:模型训练时的旁路参数。本图绘制了训练过程中旁路参数的权值。对于这个特殊的训练算法,每一层包括两个训练阶段:首先,训练各层参数;其次,结合所有以前训练过的参数与新层次进行优化。旁路参数随着网络层数的增长而减小。最终,新层次不再改变增强图像中各像素的积分数值(不会与其它层聚合)——这正是子像素阈值的定义。

实验

我们初步进行的实验使用了巴拿马运河3波段的GeoTIFF降质图像,通过增强降质图像来评估深度神经网络的图像增强能力。我们在实验中使用了两张由DigitalGlobe提供的GeoTIFF图像(非常大的卫星图像):一张用于训练,另一张用于测试。在一次深度神经网络计算中,我们并没有选择增强整张图像,相反,我们每次增强一个27x27像素大小的图像区域。由于GeoTIFF图像非常大,抽取27x27像素区域的方法能够为我们的深度神经网络提供充足的训练数据。更多的训练图像或许可以提高实验效果。但在下面的实验中,我们使用这两张GeoTIFF图像训练深度神经网络:

  • 这两张GeoTIFF图像的大小进行了调整,已有效地降低了图像分辨率
  • 采用随机抽样的方法,从第一张GeoTIFF图像中获取样本,训练深度神经网络,每次训练仅训练模型中的一层。我们训练深度神经网络中的权值,最大化深度神经网络输出的PSNR值
  • 深度神经网络用于增强两张降质的GeoTIFF图像
  • 实验结果将与基于插值的图像增强算法进行比较

我们在一台2015年推出的装有4块Titan X显卡的NVIDIA Devbox机器上,使用TensorFlow来创建、训练、推断深度神经网络,但是在实际训练时,仅使用1块显卡用于训练。为训练神经网络,我们采用了最优化算法ADAM,ADAM关联了能够影响训练时间和收敛速度的参数。我们并未充分探索ADAM参数的最优选择,但仍然花费大约12个小时(使用一块Titan X显卡)的时间来训练每个扰动层。旁路参数的收敛速率(如图5所示)为我们选择ADAM参数乃至后续的训练时间上提供了帮助。

实验结果

在本次实验中,我们使用了两张关于巴拿马运河的GeoTIFF图像,一张用于训练,另一张用于测试。

图6:巴拿马运河卫星图像。这是深度神经网络中的原始训练图像。

首先是通过GeoTIFF降质图像来创建训练数据。通过调整GeoTIFF图像的大小,最终生成的降质图像在GSD与分辨率上实现了有效的降低。使用线性插值作为起点,我们可以绘制PSNR在整张降质图像上的分布。

图7:深度神经网络输入图像中的PSNR分布。深度神经网络的输入是一张重新调整大小(通过线性插值扩大2倍)的降质卫星图像,与原始GeoTIFF图像的大小相匹配。本图显示了在降质过程中引入的噪声位置。蓝色区域在降质时引入的噪声较多,红色区域引入的噪声较少些。蓝色区域通常表示含精细结构(如船只)的区域,而红色区域通常表示具有更粗糙特征(如开放水域)的区域。

图7表明,仅一个表示PSNR的数字并不足以描述卫星图像中的噪声。在降质图像中,具有更多结构的区域,例如船只,相比于自身结构较少的区域,如水域,具有更低的PSNR值。当我们训练超分辨率算法来增强降质图像时,我们想要增强我们关注的区域,而这通常是含有结构的区域。

图8:使用深度神经网络增强后,图像的PSNR收益。我们使用未用于深度神经网络训练的测试图像绘制PSNR收益的分布。图像中的大部分区域得到了增强。蓝色区域对应原始图像中噪声明显较少的一般区域。PSNR的增强效果通过与初始线性插值方法比较得到。

图9:与双三次插值相比的PSNR收益。在GeoTIFF测试图像上,我们与双三次差值方法进行比较,绘制了在PSNR上的差异。初始噪声较多的区域也同样能受益。

图10:与线性插值和双三次插值相比,基于深度神经网络的增强方法的PSNR变化。PSNR变化由整张GeoTIFF图像与GeoTIFF图像中含船只的子区域计算得到。包含精细结构的区域的增强效果明显高于水域区域。

图10中的结果表明,基于深度神经网络的增强方法能够明显改善含更多结构的区域。尽管测试图像与训练图像具有相同的GSD,但不同的大气条件与云层覆盖也影响着增强的效果,这在一定程度上解释了测试图像性能优化高于训练图像的原因。图像清晰度也会影响到含船只区域的标记,不准确的标记可能含有更多的水域,进而降低在该区域的收益。避免了这些干扰的实验超出了本篇文章的讨论范围。

图11:水域中船只的增强示例。本图展示了对降质船只图像的增强效果。由于此区域大部分为水域,其PSNR值小于仅含船只的区域。

其他研究方向

包括SRCNN在内的一些示例,将超分辨率技术应用于非卫星图像,并在ImageNet上训练时取得了类似的增强效果。这些方法用于卫星图像增强或许是可行的,但我们提出的方法具有一个根本优势:图像的位置信息。此外,基于以下几点,我们提出的方法是不同与现有方法的:

  • 卫星图像往往是许多基于深度神经网络的机器学习算法应用的极端情况
  • 过度训练并不一定不利于我们的算法,我们可以得到更具多样性的图像数据集
  • 扰动层提供了关于深度神经网络需达到的深度以及增加网络深度预期的边际性能改善的信息
  • 除了红色、绿色和蓝色,GeoTIFF图像能够包含更多的颜色通道,针对额外的颜色通道(例如8波段图像),我们的方法只需进行简单地修改就可使用

最后,我们对扰动层中卷积层的数量进行了实验,增加每个扰动层中卷积层的数量,并查看提高的性能。我们将在第二部分展示这些实验结果,这些实验基于8波段图像和SpaceNet数据集。

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!
文章原标题《Super-Resolution on Satellite Imagery using Deep Learning, Part 1》,作者:Patrick Hagerty

文章为简译,更为详细的内容,请查看原文:The official blog of CosmiQ Works in Medium

实践:基于深度学习的卫星图像超分辨率处理技术(一)相关推荐

  1. 毕业设计-基于深度学习的单幅图像超分辨率重建算法

    目录 前言 课题背景和意义 实现技术思路 一.超分辨率图像数据集 二.单幅图像超分辨率重建的研究 三.图像质量评估 实现效果图样例 最后 前言

  2. 超分辨率 | 综述!使用深度学习来实现图像超分辨率

    关注公众号"AI算法修炼营",选择"星标"公众号 精选作品,第一时间送达 今天给大家介绍一篇图像超分辨率邻域的综述,这篇综述总结了图像超分辨率领域的几方面:pr ...

  3. 使用深度学习的单一图像超分辨率

    本示例演示如何训练甚深超分辨率(vdsr)神经网络,然后使用vdsr网络从单个低分辨率图像估计高分辨率图像. 该示例演示了如何训练vdsr网络,并提供了预先培训的vdsr网络.如果您选择培训vdsr网 ...

  4. 经典论文复现 | 基于深度卷积网络的图像超分辨率算法

    过去几年发表于各大 AI 顶会论文提出的 400 多种算法中,公开算法代码的仅占 6%,其中三分之一的论文作者分享了测试数据,约 54% 的分享包含"伪代码".这是今年 AAAI ...

  5. PCL-SISR:基于对比学习的单幅图像超分辨率重建方法

    ©作者 | 高帆 学校 | 北京邮电大学 研究方向 | 计算机视觉 随着 Transformer 的提出以及在底层任务上应用的进一步探索,相信在很多底层任务数据集上可以取得新的 SOTA 成绩.但是不 ...

  6. 2020-10-18 从SRCNN到EDSR,总结深度学习端到端超分辨率方法发展历程

    本文转自:https://blog.csdn.net/aBlueMouse/article/details/78710553 超分辨率技术(Super-Resolution, SR)是指从观测到的低分 ...

  7. 从SRCNN到EDSR,总结深度学习端到端超分辨率方法发展历程(转)

    超分辨率技术(Super-Resolution, SR)是指从观测到的低分辨率图像重建出相应的高分辨率图像,在监控设备.卫星图像和医学影像等领域都有重要的应用价值. 本文针对端到端的基于深度学习的单张 ...

  8. 【超分辨率】从SRCNN到EDSR,总结深度学习端到端超分辨率方法发展历程

    此文转自 知乎专栏 棉花糖的工坊 作者 棉花糖 (侵删) 一直在学习图像超分辨率和深度学习,看到此文写得很好,故此转载分享.如有侵权,私信联系我,我将作删除. 超分辨率技术(Super-Resolut ...

  9. 从SRCNN到EDSR,总结深度学习端到端超分辨率方法发展历程 2018.11 写的还可以

    超分辨率技术(Super-Resolution, SR)是指从观测到的低分辨率图像重建出相应的高分辨率图像,在监控设备.卫星图像和医学影像等领域都有重要的应用价值. 本文针对端到端的基于深度学习的单张 ...

最新文章

  1. Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
  2. 转-完成端口高效的三个原因
  3. java 函数内部类_java 内部类详解 转
  4. net start mysql启动mysql,提示发生系统错误 5 拒绝访问 解决方法
  5. android开发环境搭建(for 驱动开发人员)
  6. 叮!快收好这份Android网络性能监控方案
  7. redis结合springboot 无法注入redisTemplate问题
  8. constraintlayout_androidApi:ConstraintLayout
  9. 栈的应用实例——平衡符号
  10. Python 第六章 面向对象编程(MD模式)
  11. mikrotikROS路由配置L2TP
  12. 证书错误 导航已阻止 无法跳转 最终解决
  13. 虚拟机配置NAT网络后ping不通
  14. 关闭 c4244_秀刻开放注册锁粉;天天有鱼推基金认筹;智慧云开放交易;五子登科开放交易;火艺短视频开放交易;购视界改制;等会儿短视频关闭交易;...
  15. SQLite 使用(针对Android)
  16. Incapsula CDN到底好在哪
  17. 你必须要看的IT培训机构选择意见
  18. AngularJS进阶(四十)创建模块、服务
  19. 指令集 x 数澜科技丨加速政企数字化转型,打造DT领域独角兽企业联盟
  20. halcon基于相关性的模式匹配

热门文章

  1. Python __subclasses__() 函数获取类的所有子类
  2. 你所不知道的mybatis居然也有拦截器
  3. java数据类型和运算优先级
  4. erlang---启动参数学习/研究
  5. Python-Learn
  6. [转] Asp.net Session常见问题集锦
  7. Linux调试时常见问题,C程序在linux下调试时经常出现的问题
  8. 如果去掉数学前后的空格_数学家们是怎么玩趣味拼图游戏的?
  9. 电信业务分类目录_第五大运营商!中信网络获基础电信业务牌照
  10. bigdecimal判断等于0_shell 脚本中if判断的条件总结