Orfeo ToolBox 影像处理技术体系和应用

2023-10-11 08:48牛坤龙木啸林王晋年蔡世荣杨现坤
地理空间信息 2023年9期
关键词:图像处理校正工具

牛坤龙,木啸林,王晋年,2,蔡世荣,杨现坤*

(1.广州大学 地理科学与遥感学院,广东 广州 510006;2.广州大学 遥感大数据智能应用创新中心,广东 广州 510006)

Orfeo ToolBox(OTB)是一个用于处理遥感卫星数据的工具包,具有基于开源社区、支持多语言开发、可扩展和算法集成、文档完善等特点,最早由法国航天局(CNES)于2006年发起,用于处理Orfeo计划中法国晶宿星(Pléiades)卫星和意大利“宇宙—地中海”高分雷达卫星的高分辨率图像,随后逐渐应用于其他卫星数据处理。OTB建立在开源地理空间社区的基础上,除CNES 外还有众多软件开发者参与开发并将其整合到应用项目中。OTB 可处理高达TB 级的高分辨率光学、多光谱、高光谱和雷达图像,并提供正射校正、全色锐化、监督或非监督分类、特征提取、SAR 数据处理等[1]多种处理工具;还具有很强的兼容性,在Windows、Linux 和Mac OS X 等各种平台以及从笔记本电脑到高性能计算机集群[2]等不同性能的计算机都支持其运行。目前,OTB是多个大型遥感图像处理项目的核心组成部分,也是研究遥感图像处理算法实验和编写遥感图像处理新算法、模型的首选工具。可扩展性、多功能性和开放性一直是OTB的关键特征,也是推动其不断扩展应用的主要动力。然而,限于其发展起步较晚,在国内应用极少,因此本文介绍了OTB的技术体系和主要特点,并通过典型案例说明OTB技术和工具的可行性与实用性,以期为国产卫星图像处理技术发展提供新的思路。

1 OTB的主要特点

OTB经过30多个版本的更新迭代,已从一个服务于Orfeo 计划、处理超高分辨率遥感数据的工具箱发展成为一个处理多传感器遥感数据的完整工具集。

1)算法高效。OTB 核心库是基于Insight Toolkit(ITK)包,采用C++语言编写的。ITK是用于医学成像的开源软件工具包,包括影像配准、分割等功能。OTB 深度集成了泛型编程思想,实现代码更加高效,可在代码编写时及时发现软件问题,还能处理从不同波段到不同尺寸再到不同像素类型的图像。OTB算法涵盖了从卫星图像预处理到高性能遥感图像深度学习[3]的大量功能,所有算法均可通过Monteverdi、QGIS、Python、控制台或C++集成开发和处理。OTB集成了Monteverdi 图像可视化工具,可采用硬件加速方式渲染显示高分辨率图像;用户可操作显示TB 级的卫星图像,并可通过工具箱中的工具集对图像进行处理分析。OTB的目标是为卫星影像信息提取(基于通用、高性能C++类库)提供一个免费的“端到端”软件解决方案(基于大数据管道计算模式)。在此基础上,OTB可以构建应用程序和链式处理流程来满足从遥感影像处理到用户桌面应用程序开发的不同需求。

2)接口复用。OTB 为遥感图像处理软件库提供了一个通用接口,使各种软件都可通过该接口调用其提供的软件处理和分析模块,从而提高其代码和模型的复用能力[4]。因此,OTB 采用地理空间数据抽象库(GDAL)读写栅格和矢量格式,采用开源安全信息管理系统对几何传感器建模,采用libSVM、OpenCV 和Shark 进行机器学习,采用MuParser 解算高性能数学表达式。此外,OTB开发一直坚持跟踪遥感图像处理技术的前沿进展,在新算法出现时及时跟进集成该算法。目前较流行的形态谱[5]、降维算法(PCA、NA-PCA、ICA 等)[6]、直 线 提 取 算法(LSD)[7-8]、Haralick 纹理和SURF 关键点匹配等算法都已集成在OTB软件包中。

3)开发社区。与许多开源项目一样,很多没有编程能力的用户也参与了OTB软件的开发,极大地促进了其发展。例如,他们可以协助文档更新、BUG上报、功能反馈等,不断完善OTB不同类别的文档是OTB开发中的一环。目前国内很少有开发者参加该开发社区,造成当前OTB对应的中文开发材料太少,使用和应用案例也极少见,进而导致国内对OTB 的应用较少。2015年初,OTB成立了官方项目指导委员会(PSC),该思想来源于其他GIS软件项目(GRASS GIS[9]和QGIS)。PSC是OTB项目发展的协调中心,决定重大事件;也是OTB项目的长期运行机构和资源中心,以吸引更多的开发人员参与,并保证OTB开源和独立发展。

2 OTB的技术架构

OTB是适应用户桌面上交互式计算和多核架构TB级遥感影像处理的软件包,通过模块化的3 层软件架构来实现(图1)。其核心是C++API,用于实现大数据管道计算模式,支持多线程、流和消息传递。因此,所有模块均可根据内存和CPU资源自动调整达到最优处理。此外,借助内存应用程序链(最小化磁盘I/O访问)的辅助功能,可非常容易地从开发机器移植代码并扩展到高性能计算集群。由于采用模块化架构,OTB允许用户快速设计从预处理到高级特征提取方法和机器学习算法的遥感图像处理模块,完成用户从原始数据到标准专题产品的一系列处理。

图1 OTB软件架构

2.1 Monteverdi影像浏览工具

OTB集成了Monteverdi影像显示工具。Monteverdi是基于Qt 和OpenGL 开发的轻量级图像渲染和操作工具,利用飞冰图形渲染引擎使图像显示和浏览更快速、高效,并能以传感器几何结构显示图像。Monteverdi的主要功能包括:①利用GDAL流畅显示和浏览地理大数据;②高级OpenGL 功能,如采用浮雕纹理和OpenGL 着色语言实现局部和全局渲染;③多源影像显示,可实时简单配准各影像坐标参考系统,集成显示多源影像。

2.2 OTB工具集

OTB工具集具有跨平台、即用型的特点,提供了90多个遥感图像处理工具。每个处理工具均可获取底层C++类库中影像处理函数或将它们组合成高级的管道计算模式[10],为许多复杂的遥感算法提供简单的接口,使基于OTB 的各类工具集研发更加便捷。例如,正射校正工具采用管道计算模式,集成一系列复杂的图像处理算法,用户只需设置一些简单的参数(如输出数据的投影坐标系、数字高程模型数据、插值模式等)即可开始数据处理工作。OTB工具集大多采用了类似的设计思想,使各工具可与用户更好地交互并协同工作。OTB 工具集的代码与用户界面是相互独立的,这是通过应用程序框架实现的。基于该框架,OTB无需重写代码即可为每个应用工具提供不同的交互接口,以满足在不同场景的调用需要。

OTB 工具可通过以下接口获得:①控制台/命令行;②基于Qt的GUI界面;③Python用于高级编程和与NumPy数组模块结合分析;④Monteverdi用于交互式查看卫星影像;⑤QGIS 通过其处理工具箱访问;⑥Zoo-Project[11]通过Web 处理服务访问。此外,OTB工具还可通过Python 插件在QGIS 软件中使用,OTB所有工具集集成在QGIS 处理工具箱内,借助QGIS 软件使空间分析更加容易实现[12]。OTB 还支持协同工作,使基于OTB的不同界面交互更加便捷,如OTB可把每个工具的配置参数保存到XML文件,也可将GUI参数自动转换为Bash脚本以便于在Linux平台运行。

2.3 无缝扩展

OTB 处理遥感影像对计算机内存几乎没有要求,因此OTB工具可无缝扩展到服务器平台甚至服务器集群去处理更大的遥感影像数据集。OTB中实现的算法都是分块执行处理,所需内存不变,这意味着数据量越大、所需处理时间越长。采用分块处理方式是因为OTB依赖于ITK管道计算模式(分块处理在ITK中也称为流处理)。即使在管道计算模式中集成多种算法,分块运算也会一直有效[13]。当某些算法没有明显的分块计算方法时,OTB 还提供了这些工具的自开发编译版本,以保障分段或分块计算处理的结果稳定,如Mean-Shift分割算法[14]和大规模区域增长分割算法[15]等。

内存不同的机器都可以处理不同量级的遥感卫星影像是OTB的一大优势。实际上,OTB还可充分利用现代CPU架构和高性能计算基础设施(HPC)提高运算效率[16],即OTB算法处理尽可能做到线程化,充分利用CPU 的多核性能提高运算效率,主要通过Open-Threads[17]和OpenMP[18](用于小部分代码)命令来实现。随着数据量级的不断增大,应优先在HPC架构上处理遥感大数据的卫星影像,以充分利用共享的高带宽存储的相似节点。OTB也可实现该功能,采用信息传递接口并行处理,整个管道计算模式跨节点复制运行,每个节点产生一部分结果图像[19],最后汇总合并,如OTB对整个Pleiades 卫星图像(16 亿像素)进行全色锐化,分布在560 个单线程节点上执行,处理时间仅需4.3 min。从多个OTB工具集构建一个处理链非常简单且容易扩展,但每个工具产生的中间数据必须写入磁盘,再由下一个工具读取,若不想保留中间结果,反复存储将浪费不必要的磁盘读写时间,OTB可在不同应用工具之间建立内部管道,并在整个处理链中启用分块处理,以减少磁盘读写时间,提高数据分析效率。

3 OTB的主要功能

OTB 工具包提供的主要功能包括遥感图像读取、写入、转换和提取,遥感图像正射校正、辐射校准和全色锐化等预处理,常见图像处理任务(阈值分割、傅里叶或小波变换等),特征提取(辐射指数、纹理、形状等),形态算子分析,图像分割并矢量化分割结果,监督或非监督分类,基于面向对象的图像分析和机器学习以及专题遥感图制作和发布。

3.1 遥感图像读写

OTB 提供支持各类文件的I/O 结构,不强制特定的文件格式,当有新格式文件时,用户可以很容易地扩展新格式的访问。OTB图像读写结构类图见图2。

图2 OTB图像读写结构类图

3.2 遥感图像配准

在OTB中,图像配准是在可插入组件的框架中执行的,可以很容易地更换组件,这就意味着用户可创建多种组合的配准方法,进而选择合适的工具在程序中应用。在OTB/ITK中采用图像配准框架建立图像配置的管道结构见图3。

图3 图像配准样例管道结构图

3.3 正射校正

正射校正是将传感器几何图像转换为地理或地图投影的过程,具体流程为:①传感器建模,通过几何传感器模型将图像坐标(行、列)转换为地理坐标(纬度、经度),严格的建模需数字高程模型来参考地形情况[20];②光束法平差,在图像具有序列结构的情况下,可利用图像间的同名点来细化几何模型和参数(这是一个可选步骤,目前未在OTB中实现);③地图投影,允许地理坐标投影到一些特定的地图投影,如兰伯特投影、墨卡托投影或UTM投影。

3.4 图像融合

遥感图像融合大多采用全色锐化方法[21],将卫星的全色波段(高空间分辨率数据)与多光谱(XS)波段(几个光谱波段的较低分辨率)结合起来,生成具有多个光谱波段的高分辨率图像;再利用低通滤波器使全色波段的频谱内容(在傅里叶域中)等同于XS数据;最后利用低通滤波处理的全色波段对XS 数据进行归一化,并将结果与原始全色波段相乘。

3.5 图像分割

图像分割是面向对象遥感数字图像处理中的一个重要步骤。OTB 工具包中集成了ITK 中相应的算法,最典型的是区域增长算法。区域增长算法是将成组的像素或区域发展成更大区域的过程,从种子点的集合开始,逐个把与每个种子点具有相似属性强度、灰度级、纹理颜色等的相邻像素合并到该区域。ITK 中包括连通阈值算法[22]、大津法分割算法[23]和邻域连接算法[24]等区域增长算法。

3.6 图像分类

图像分类是对遥感图像上的信息进行属性识别并分类,从而达到识别图像信息对应的实际地物类别、提取所有地物信息的目的。除人工目视解译外,监督分类和非监督分类[25]是遥感图像分类的常用方法。OTB提供了监督和非监督分类算法,包括K均值、自组织映射(SOM)、贝叶斯分类和支持向量机等。SOM 算法是由Kohonen 提出的一种非监督神经学习算法[26],在学习过程中相邻像素通过相互作用、相互竞争、相互适应来匹配样例的特征模式,实现了从高维特征空间到低维空间(通常是二维空间)的非线性投影,能在保持特征空间拓扑关系的同时,找到结构化数据集与低维网络之间的对应关系。由于这种拓扑结构,最终得到的分类结果呈现了集群关系。SOM分类结果见图4。

图4 SOM分类结果

在OTB的贝叶斯分类中,OTB首先将一个矢量训练样本分为两个子样本,每个子样本只存储一类矢量;然后分别利用参数估计算法和高斯密度函数处理得到各自的概率密度;最后由概率密度与由子样本得到的先验概率组成样本分类器。

4 应用案例

除在OSGeo4W、QGIS和Zoo等第三方工具中集成了OTB工具集之外,OTB类库和工具集也逐步延伸到不同的遥感图像处理生产环境中,承担大量对地观测专题产品生产任务。

4.1 哨兵2号(Sentinel-2)影像分割

Sentinel-2 的主要任务是提供连续覆盖全球的卫星影像,具有高空间分辨率、高时间分辨率和从可见光到短波红外的多个波段数据;每天产生约1.2 TB原始数据,因此需要设计具有高效图像处理能力的有效载荷数据地面站(PDGS)来生产近乎实时的1C 级数据产品(大气层顶部正射校正数据产品)。为开发PDGS的图像处理模块,欧洲航天局(ESA)选取OTB类库作为仪器处理设备模块的主要部分。准确来说,自2016年7月以来,OTB滤波器已用于所有Sentinel-2影像的辐射校正(去噪、缺陷像素检测和校正、掩膜和卫星大气顶层转换)和重采样操作等。OTB在Sentinel数据处理框架中的集成,数据质量和处理性能都取得了非常好的效果。此外,OTB类库也在ESA的任务效率评价中心用于一些校准和验证处理工作。

4.2 多时相大气校正和云检测

遥感是研究地表状态和变化的有力工具,但太阳光进入大气层会受到严重干扰(云、气体分子与气溶胶会散射和吸收太阳光或地球表面反射的光,导致传感器接收的光谱信息不准确),因此遥感图像需通过预处理获得准确的光谱反射数据,如云检测和大气校正等。这些过程对处理陆表卫星影像来说比较困难,主要问题为无云像元的识别和大气影像的消除。云检测问题现在可采用多个云检测模型[27]解决;而大气校正必须考虑两个影响:①大气气体(特别是水蒸气、臭氧、氧气和二氧化碳)的吸收,吸收在特定吸收波段起主要作用,但地表观测的光谱通常会回避这些强吸收带,在这些波段中,可采用大气校正简化模型[28]或6S辐射传输模型[29]等准确校正气体吸收;②空气分子和气溶胶的散射,大气中的散射可以非常精确地建模,但需准确知道大气成分,对于空气分子来说,建模已没有问题,主要困难在于气溶胶的影响,因为气溶胶在不同位置和时间的吸收特征差异很大。

根据气溶胶光学厚度和气溶胶模型的经验积累,利用辐射传输模型可以校正气溶胶影响并将卫星大气顶层反射率转换为地表反射率[30]。OTB的多时相大气校正和云检测(MACSS)工具是一连串处理工具的集成[31],由CNES设计,完全基于OTB类库开发,最早应用于法国THEIA陆地数据中心,以近乎实时的方式生成和分发在500万km2区域获取的Sentinel-2数据,并在2016年底和2017年初逐步推广到其他数据中心使用。

4.3 地表覆盖数据产品

及时准确的土地覆盖数据对于许多地表分析应用至关重要,学术界已把地表覆盖数据作为一个关键的气候变量[32],在各种地表变化过程分析和气候变化模拟中应用。因此,土地覆盖数据需要及时不断地更新,以反映地球表面的现势性。法国THEIA土地数据中心成立了一个科学专业知识中心,其主要目的是利用Sentinel-2 时间序列影像对全球进行全自动土地覆盖制图。该产品每年更新一次,包含20 个10 m 分辨率的专题图。法国生物圈研究中心开发的基于OTB的开源系统可统一生成类似于法国THEIA土地数据中心生产的土地覆盖制图,且不断更新。该系统可通过大批量地表覆盖数据评估新的遥感影像分类算法的性能,以更好地服务于全球遥感地表土地覆盖数据生产。此外,该系统设计目的之一是使其可移植到全球任何国家和地区,并允许用户修改影像命名规则和更新频率,以适应不同的应用场景,因此系统内每个步骤都是独立的,与不同地区的地图编码规则或地类类别配置没有关系;同时还可通过输入数据(其他对地观测数据、参考数据等)把所有特征考虑在内,无需修改工作流程的其他任何部分即可执行数据生产任务。2020年法国土地覆盖图见图5。

图5 2020年法国上空的THEIA土地覆盖产品原型

4.4 地理信息服务于可持续发展(GEOSUD)

生态系统、农业系统和国土空间信息对于环境可持续发展、农业评估和国家公共政策实施至关重要。GEOSUD旨在调整国家环境和国土管理策略,方便学术界和公众获取空间信息。目前,该部分数据由提供超高分辨率遥感产品的地理空间数据基础设施提供(如RapidEye、Pléiades、SPOT6/7 等)。GEOSUD 可由OGC的网络服务进行数据访问、数据可视化和目录请求等实现。实现OGC Web处理服务标准的基础设施可支持远程交互式地理空间数据处理[33]。当前OTB已集成在该集群计算架构中,以加快密集数据的处理流程。OTB提供了大量应用工具集以满足不同层次用户的应用需求。

4.5 Sentinel-2数据服务于精准农业

对于农业管理和粮食安全来说,基于对地观测遥感数据研发高效的农业遥感监测网络至关重要。Sentinel-2 任务具有区域到全球农业监测能力,在此背景下,ESA 于2014 年启动了“Sentinel-2 农业”项目,旨在通过开发相关产品的开源处理工具,利用Sentinel-2 数据进行农业遥感监测。这些处理工具是基于OTB 应用程序框架和类库开发的,可通过Sentinel-2(Landsat8)在区域或国家范围内(图6)快速生成2A级数据产品,包括无云的地面反射数据集、植被状况指标(LAI、NDVI 和物候指标)、动态农田掩膜和作物种类制图。作为OTB 应用工具,“Sentinel-2 农业”处理工具集可与其他标准开源处理框架深度对接,如可与Sentinel应用程序平台完美集成。

图6 作物种类制图和LAI制图

5 结语

在过去十几年中,OTB 已从基于C++类库服务于Pléiades 卫星影像处理的工具包发展为满足大多数遥感图像处理需求的多功能软件工具包,目前已是多个大型遥感图像处理项目的核心组成部分,是遥感图像处理算法实验和编写新算法、模型的首选工具。可扩展性、多功能性和开放性一直是OTB 的关键特点,也是推动其不断扩展应用的主要驱动力。OTB发展始终以用户为导向,其项目指导委员会充分吸收开发社区不同参与者的建议,促进软件可持续发展。随着OTB 开发社区参与者的不断增加,软件不断发展,拥有更多先进的算法,并使其深度集成,具有较强的交互性,最终更好地服务于遥感图像处理。

猜你喜欢
图像处理校正工具
波比的工具
波比的工具
劉光第《南旋記》校正
基于图像处理的机器人精确抓取的设计与实现
准备工具:步骤:
机器学习在图像处理中的应用
一类具有校正隔离率随机SIQS模型的绝灭性与分布
“巧用”工具
机内校正
基于图像处理的定位器坡度计算