OTB概述

经过10多年的开发和28个主要版本的发布,Orfeo工具箱已经从由法国国家空间研究中心昴宿星团任务驱动的高分辨率专用工具箱演变为多传感器、多用途遥感工具箱。

由于其模块化结构,OTB允许快速原型制作,并涵盖了遥感图像处理的全谱算法,从预处理到高级特征提取方法,允许从原始数据到增值产品。

以下是OTB功能的不完整列表:

  • 读取、写入、转换、提取部分遥感数据,

  • 预处理,如正射校正、辐射定标和泛锐化,

  • 常见的图像处理任务(阈值化、傅里叶或小波变换等),

  • 提取特征(辐射指数、纹理、形状等),

  • 形态学算子,

  • 分割图像并将分割结果矢量化(以图像比例),

  • 以有监督或无监督的方式对图像进行分类,

  • 基于对象的图像分析,

  • 在地理信息系统中导出结果并打印精美以供发布。

主要特点

核心OTB库是用C类++并基于Insight Toolkit(ITK)[4].ITK是一个开源的医学成像软件工具包,包括注册和分割。

作为ITK,OTB实现风格被称为泛型编程(C类++模板)。这意味着代码效率很高,许多软件问题是在编译时发现的,而不是在程序执行期间的运行时。它还可以处理不同类型的图像(不同数量的波段、尺寸、像素类型等)。

OTB算法涵盖了处理遥感图像从基本预处理到高性能分析所需的大量特征。OTB的使命是为基于通用、高性能C++库的地球观测图像信息提取管道提供一个免费的软件端到端解决方案。除此之外,还可以构建应用程序和处理链,以满足从地面段处理链到单用户桌面应用程序的用户需求。

代码重用

遥感图像处理常常导致在专用软件中结合可用的专门方法。OTB的想法是为这些软件库提供一个通用接口。

因此,OTB依赖于地理空间数据抽象库(GDAL)[5]支持光栅和矢量格式;用于几何传感器建模的OSSIM;libSVM(库支持向量机)[6],OpenCV[7]和鲨鱼[8]用于机器学习;和MuParser[9]例如,用于高性能数学表达式解析。

此外,OTB还试图跟踪有关最新发展的最新研究,并在算法发布后集成算法的参考实现。例如形态学轮廓、降维方法(PCA、NA-PCA、ICA等)、线段检测器(LSD)[10]快速实现Haralick纹理和SURF关键点匹配。图中显示了昴星团图像上LSD算法的结果。1.

图1
图1

昂宿星团泛锐化图像上的线段检测器(LSD)结果

为了最大限度地扩大用户范围,并确保OTB易于使用和安装,OTB背后的团队为所有主要平台(Windows、Linux和Mac OS X)维护和分发独立的二进制软件包。

社区

OTB从一开始就作为一种协作的社区努力而创建。与许多开源项目一样,参与的方式有很多,但并不都需要编程能力:文档、错误报告和功能请求都非常有价值。

例如,文档一直是项目收集社区对开源软件支持的重要方式。此外,获取文档只是问题的一部分,同样重要的是文档的类型。OTB根据用户需求提供不同类型的文档:

  • 软件指南[11]是一本包含约800页的综合指南,详细介绍了安装OTB的步骤,并描述了该库的许多功能。大多数可用类别都用实际遥感处理的结果进行了大量说明,

  • OTB食谱[12]:专为非开发人员设计的OTB-Applications和Monteverdi指南。它包括对OTB-Applications和Monteverdi的简要介绍,以及使用这两种工具执行遥感任务的一组方法,

  • 教程:OTB网站还收集了社区共享的免费培训材料[13].

2015年初,OTB成立了一个正式的项目指导委员会(PSC),提供高层指导和协调[14].PSC为项目提供了一个中心联络点,并仲裁争议。它也是项目机构知识的一个稳定基础,并尽最大努力让更多的开发人员参与进来,确保OTB保持开放和公司中立。

OTB PSC受到其他地理空间软件项目(如GRASS GIS)中存在的类似结构的启发[15]或QGIS。

最后,OTB目前正处于OSGeo基金会的孵化阶段[16].在Orfeo ToolBox社区中,我们根据OSGeo行为准则尊重他人[17]我们希望能够在2017年完成孵化过程。

从桌面到高性能计算

Orfeo ToolBox设计用于在用户桌面上进行交互式计算,并在许多核心架构上进行TB级处理。这是通过模块化软件架构实现的:图中所示的所谓OTB三明治。2.

图2
图2

Orfeo工具箱中不同的软件层:依赖项、C++API、应用程序和GUI。也就是“OTB三明治”

OTB的核心是C类++API,它实现了管道。此核心处理模型支持多线程、流和消息传递。因此,所有应用程序和过滤器都可以处理图像并扩展到可用的内存和CPU资源。使用内存中应用程序链接(以最小化磁盘I/O)等附加功能,从开发机器移植代码并扩展到高性能集群通常是很简单的。

蒙特威尔第

Orfeo ToolBox附带Monteverdi,这是一个用Qt和OpenGL编写的轻量级图像渲染和处理工具。Monteverdi使用Ice渲染引擎[18],也可在Orfeo工具箱中获得,该工具箱提供:

  • 使用GDAL概述功能在超大数据集中平滑导航,

  • 基于高级OpenGL功能(如浮点纹理和OpenGL着色语言)的反应式局部和全局渲染工具,如局部对比度增强或颜色映射(这项工作受到pvflip作者的启发[19]),

  • Orfeo ToolBox可以理解其坐标参考系的任何图像的多个图像显示,其中包括地面投影图像和传感器几何图像。

Monteverdi是用于快速可视化处理结果的日常工具,可以以传感器几何图形显示图像。Monteverdi还方便了使用应用程序进行处理,这将是下一节的重点。它不打算取代更适合编辑、显示和关联不同地理信息源(光栅或矢量)的地理信息系统软件,如QGIS。

显示了使用Monteverdi可以获得的渲染类型的示例。

图3
图3

Monteverdi软件可视化面板显示具有局部半透明的正射图像和具有喷射颜色映射的底层数字表面模型

OTB应用程序

跨平台、现成可用的OTB包提供了90多个应用程序。应用程序从底层公开现有的处理函数C类++库,或将它们组合成高级管道。这为许多复杂的遥感算法提供了简单的接口。

例如正射校正应用程序包括一组复杂的管线,用户可以轻松配置许多校正功能和参数:输出地图投影、外部数字高程模型文件、插值模式等。其他旗舰OTB应用程序也遵循类似的方法,旨在协同工作。

例如,最近增加了一个基于像素的分类的新框架。这组新的应用程序澄清了训练和适应分类模型所需的不同步骤。简而言之,它们是:在参考图像中选择用于学习的样本(以及如何选择它们),从图像中提取像素值,并训练监督分类器(支持向量机、随机森林等)。这样,用户就可以控制分类管道设计和调整中的每个关键步骤。这是在不过度增加复杂性的情况下实现的,以保持快速原型制作能力和高性能。

应用程序的另一个重要设计特征在于其代码和用户界面的独立性。这是通过所谓的应用程序框架。该框架允许为每个应用程序提供多个接口,而无需重复代码。

如今,OTB应用程序可通过以下界面使用:

  • 命令行,

  • 基于Qt的GUI界面,

  • Python用于高级编程和与NumPy数组的连接,

  • Monteverdi用于交互式处理观看的图像,

  • QGIS通过处理插件,

  • Zoo项目[20]通过Web处理服务(WPS)。

下面是一个如何使用Python运行平滑应用程序的示例,在每次迭代时更改算法:

此外,通过构建在QGIS处理框架之上的Python插件,可以在QGIS中使用OTB应用程序[21]使空间分析任务更高效、更容易完成。

两个额外的功能协同工作,以减少多个接口之间的摩擦:将应用程序参数保存到XML文件,以及将GUI参数自动转换为Bash,以便于进行复制。

扩大规模

可用于桌面遥感的Orfeo ToolBox应用程序将无缝扩展以处理更大的数据集。只要有可能,Orfeo ToolBox中实现的算法都会执行分段处理,这意味着如果数据较大,则需要更长的时间来处理,并且内存预算不变。这种分段处理是Orfeo ToolBox强烈依赖的ITK处理管道的一个关键方面(分段处理有时在ITK世界中称为流)。即使在流水线中组合多个算法时,也会保留此功能。当没有明显的分段计算某些算法的方法时,Orfeo ToolBox还提供了这些方法的改编版本,例如MeanShift分段[22]或大规模区域生长分割[23]它通过图中所示的分段或分片计算处理确保了稳定的结果。4.

图4
图4

大规模区域合并分割的结果在高分辨率光学图像上以全分辨率执行

然而,无论数据大小如何,都能容纳内存预算只是问题的一部分。用户通常还希望利用现代CPU体系结构和高性能计算基础设施(HPC),Orfeo ToolBox也会为他们做到这一点。只要可能,算法实现都是线程化的,主要使用OpenThreads[24],即使代码的特定部分也将使用OpenMP[25]指令。Orfeo ToolBox将无缝使用CPU的所有内核。但随着数据集变得越来越大,应用程序通常会迁移到HPC体系结构,该体系结构共享许多具有共享高带宽存储的类似节点,Orfeo ToolBox也可以做到这一点。它允许MPI[]并行处理,这意味着整个管道将在节点之间复制,从而生成一部分生成的图像[26].使用此功能的一个示例是整个昴宿星团图像的平移增强(1.6千兆像素)。分布在560个单线程节点上,处理时间减少到4.3分钟。

最后一个对扩展到数据非常有用的功能是应用程序之间的内部管道连接。从多个应用程序构建处理链非常方便,并且可以很好地扩展。但中间数据必须写入磁盘,然后由下一个应用程序再次读取。如果不打算保留这些中间结果,这将导致不必要的I/O时间开销。在这种情况下,Orfeo ToolBox允许连接应用程序之间的内部管道,以便在整个应用程序链中启用分段处理。

成功案例

除了将OTB集成到第三方工具(如OSGeo4W、QGIS和Zoo)中之外,图书馆和应用程序还成功地从研究活动转移到操作环境中,以大规模生产地球观测衍生产品。

ESA Sentinel-2地面段

哨兵2号任务提供了系统的全球覆盖,具有高空间分辨率、高重访率和从可见光到短波红外的广泛光谱带。因此,要处理的数据流非常庞大(每天1.2 TB的压缩原始数据),需要设计一个具有高效图像处理能力的可操作有效载荷数据地面段(PDGS),以近乎实时地生产终端用户1C级产品(大气顶层的正射数据)。为了开发PDGS的图像处理模块,欧洲航天局(ESA)选择OTB库作为仪器处理设施(IPF)模块的主要组件。更准确地说,OTB滤波器已用于所有辐射校正(去噪、缺陷像素检测和校正、质量掩模和TOA转换)和重采样操作。OTB在此操作框架中的集成在质量和性能方面都取得了成功。自2016年7月以来,所有可用的Sentinel 2数据都经过OTB过滤器处理。此外,任务执行中心(MPC)使用OTB库进行一些校准和验证活动。

MACCS公司

光学域反射范围内的空间光学遥感是研究陆地表面状态和演变的有力工具。然而,来自太空的光学观测受到大气的严重干扰:云层、气体分子和气溶胶散射并吸收太阳发出的或地球表面反射的光。因此,遥感图像时间序列的业务处理需要初步的校正步骤,如云的检测和大气影响的校正。这些任务在陆地表面上尤其困难,因为有两个主要问题:识别无云像素,然后分离表面和大气影响。云检测问题已经在其他地方得到解决[27]并且不在本文的范围内。

关于大气校正,必须考虑两个影响:

  • 大气气体(尤其是水蒸气、臭氧、氧气和二氧化碳)的吸收:吸收在特定吸收带内具有显著影响,但陆面观测的光谱带通常设计为避免强吸收线。在这些波段,可以使用气象分析和简单的分析模型,如大气校正简化模型(SMAC),精确校正气体吸收[28]或6S辐射传输模型[29],

  • 空气分子和气溶胶的散射:大气中的散射是非常准确的模型,只要大气的成分足够众所周知,就可以充分解释。这是空气分子的情况,但困难在于对气溶胶特性的了解,气溶胶特性在位置和时间上都非常可变。

通过对气溶胶光学厚度(AOT)和气溶胶模型的良好了解,并使用辐射传输代码,可以校正气溶胶效应,并将卫星大气顶(TOA)反射率转换为表面反射率[30].

多时间大气校正和云屏蔽(MACCS)是一个处理链[31]它实现了所有这些步骤。它是在法国国家科学院设计的,操作系统完全基于OTB开发。

MACCS用于法国Theia土地数据中心(Theia)[32]近实时生成并分发在5个区域采集的Sentinel-2数据M(M) k 2处理从法国开始,并在2016年底和2017年初逐步扩展到其他选定地区。

Theia OSO土地覆盖产品

详细准确地了解土地覆盖对于许多科学和操作应用至关重要,因此,它被确定为一个重要的气候变量[33].这种准确的知识需要经常更新信息。

除了分发地表反射率产品外,法国蒂亚土地数据中心还设立了一个科学专家中心,其目的是实施一个操作性的全自动土地覆盖图制作系统,主要使用Sentinel-2图像时间序列。该产品将每年更新一次,将包含20个主题类,以10米的分辨率绘制。

开源系统[34]基于生物圈空间研究中心(CESBIO)开发的OTB,可以以一致和可复制的方式制作这些类型的地图。实验分类和操作分类是大面积土地覆盖测绘和监测的两种不同方法[35,36].前者侧重于新算法和模型的开发和性能测试,后者侧重于在预定义的时间表内开发和交付可靠的数据产品[37].该系统旨在通过评估操作地图制作系统中新策略的性能来填补这两种方法之间的差距。

法国2014年的土地覆盖图如图所示。5.

图5
图5

2014年法国THEIA土地覆盖产品原型

该程序旨在便于全球其他地区使用,并允许在命名和更新频率方面进行演变。为了实现这些目标,该方法的所有步骤都独立于制图术语或景观特征。然而,通过输入数据(地球观测、参考数据等),该方法可以考虑所有这些特征,但不需要修改工作流。

可持续发展地理信息(GEOSUD)

生态系统、农业系统和领地的空间信息对于环境和农业研究以及公共政策至关重要。GEOSUD旨在转让环境和领土管理方法,并简化科学界和公共行动者对空间信息的访问[38].目前,提供高分辨率遥感产品(RapidEye、Pléiades、Spot 6和7)的地理空间数据基础设施保证了这种访问。它是通过使用开放地理空间联盟(OGC)Web服务进行数据访问、可视化和编目来实现的。实现OGC Web处理服务(WPS)标准的基础设施的传入扩展支持交互式按需远程处理地理空间数据。为此,Orfeo工具箱已部署在集群计算体系结构上,允许加速数据密集型进程。无论用户的专业知识如何,大量可用的OTB应用程序都能满足广泛的需求。

农业哨兵-2

在地球观测数据的基础上发展更好的农业监测能力,对于加强粮食生产信息和市场透明度至关重要。如前所述,哨兵2号任务具有从区域到全球农业监测的最佳能力。在这种情况下,欧洲航天局于2014年发射了“农业哨兵2号”[39]该项目旨在通过开发相关产品的开源处理链,为利用Sentinel-2数据进行农业监测做好准备。这些处理器基于OTB应用程序框架和库,可从Sentinel-2(和LandSat 8)高效生成2A级数据:

  • 无云反射复合材料,

  • 植被状态指标(LAI、NDVI和物候指标),

  • 动态农田口罩,

  • 作物类型图。

在区域或国家范围内(参见图。6).

图6
图6

2016年3月,Sentinel-2为捷克共和国农业项目制作的作物类型图和LAI图摘录(年橙色冬季油菜籽黄色的冬季谷物和灰色饲料作物)。完整的地图可以在[39]

作为OTB应用程序,Sentinel-2 for Agriculture处理器可以与其他标准开源处理框架(如Sentinel application Platform(SNAP))接口[40].

结论

在其生命的十年中,Orfeo工具箱从一个C类++只有特定于VHR的库才能成为一个通用的工具包,以满足大多数遥感图像的需要。Orfeo ToolBox现在是几个大型操作项目的一部分,同时还是实验室日常图像处理的首选工具,也是编写新算法和方法的良好环境。可扩展性、多功能性和开放性是Orfeo工具箱的关键资产。

该软件不断发展,以提高性能,提供更先进的算法,并提供它们之间的最佳互操作性。Orfeo工具箱路线图是由用户驱动的,其年轻的开放项目指导委员会确保每个愿意参与的人都能得到同等的关注。在中短期内,下一个OTB版本将包括在应用程序框架中更好地集成非监督分类算法,以及改进Quantum GIS中应用程序的集成。最后,该项目将继续努力培养更多的贡献者。由于已经贡献了大约十个活动远程模块,该项目正在取得进展。