论文部分内容阅读
随着遥感技术的快速发展,成像光谱技术已逐渐成为众多领域内的热门课题之一。成像光谱仪实现了目标空间图像与光谱信息的同时获取,在军事、环境检测、地质勘测等各个领域得到了广泛的应用,其中干涉型成像光谱仪由于具有高通量、多通道和高分辨率等优点,各个国家投入大量人力物力对其进行研究和发展。干涉型成像光谱仪获得的数据立方体中包含了场景图像的空间信息和干涉条纹,而如何将干涉条纹高精度地复原成光谱图像是近年来干涉数据处理的主要研究内容。在多数情况下,人们更加关心光谱中谱峰的位置,这些谱的表现形式为在整个光谱中存在一个或多个尖峰,其他位置处的值很小或为零。在物质的吸收波谱中,这种现象也极为常见,具体表现为在整个吸收波谱中存在一个或多个谷底,其他值均为较大值,此类光谱也可认为具有稀疏性。而具有稀疏谱特性的信号广泛应用于激光干涉、波谱物质分析、光谱定标和实验室测量等。目前针对具有稀疏特性的干涉光谱复原依然采用传统傅里叶变换的方法,如果能充分利用稀疏的特性,复原算法的效率会得到进一步的提升。另一方面,光谱复原领域还存在大数据处理的难题,实际中干涉光谱仪获得的干涉数据量巨大,仅一幅场景就包含十万级或百万级数量的干涉序列,对于如此庞大的干涉数据,传统的串行复原算法远远达不到实时处理的要求。此外,在高分辨率谱估计领域,虽然复原的光谱分辨率得到进一步提升,但当前的谱估计模型求解算法异常耗时,需要一种模型快速求解方式。基于以上分析,本文提出一种基于稀疏傅里叶变换的光谱复原算法,实现对干涉信号的光谱稀疏复原;提出一种高性能光谱复原并行处理算法,对去除趋势项中QR分解、矩阵求逆和乘积法相位校正进行并行优化,并在GPU上实现大量干涉数据的实时处理;提出一种基于分组迭代的自回归模型优化求解算法,实现高分辨率谱复原中模型参数的快速估计。另外,本文完成了光谱复原并行算法的嵌入式系统移植,使得光谱复原更加便捷和灵活。论文的研究内容如下:1、针对频谱具有稀疏特性的干涉信号,本文提出一种基于稀疏傅里叶变换的光谱复原算法,进一步提升了复原速度。该算法充分利用信号频域的稀疏特性,按照相应的映射规则将信号的大值频点映射到一组桶中,并将每个大值频点分离出来,信号由长序列变成短序列,然后进行傅里叶变换,通过设计相应的恢复规则,重建信号的原始频谱。实验表明,基于稀疏傅里叶变换实现光谱稀疏复原的算法运行时间为0.524ms,几乎是傅里叶变换所需时间的一半。2、为了更快地实现对大批量干涉数据的处理,满足实时性处理的要求,本文提出一种高性能并行处理的光谱复原算法,基于GPU技术实现对海量干涉数据的处理。光谱复原并行算法主要包括:(1)去除干涉条纹的趋势项部分,基于最小二乘法,提出一种QR分解和矩阵求逆的并行迭代求解算法;(2)切趾部分,实现了在GPU上利用多线程进行干涉序列的并行切趾;(3)相位校正部分,提出一种并行乘积法用于相位校正;(4)傅里叶变换部分,采用并行计算库CUFFT中的并行快速傅里叶变换实现干涉光谱复原。针对递推的迭代算法,本文提出一种基于多核和单核的光谱复原处理模式。通过对任务在GPU上进行合理划分,打破数据间的依赖关系,复原算法的性能得到进一步提高。在批量数据处理中,本文进一步简化光谱复原的数据处理过程。仿真实验中,并行处理算法的运行时间约为0.332ms,相比串行处理算法,性能提高了近70%,且并行算法在批量数据处理方面的性能远高于传统串行复原算法。对实际采集到的一帧图像中约26万个干涉向量,在GPU上复原速度相比CPU提高了1000多倍。3、在高分辨率光谱复原算法中,针对模型的求解复杂性问题,本文提出一种基于分组迭代的自回归模型并行优化求解算法,并利用GPU技术实现对自回归模型参数的并行迭代快速求解。并行求解算法既保留了现代谱估计技术中复原光谱具有高分辨率的特点,又提升了模型参数的估计效率。同时本文将提出的并行求解方案用于批量处理中,并针对GPU具有重叠结构的特点,设计一种干涉数据异步并行处理方式。实验结果显示,模型并行求解算法的运行时间比传统串行算法缩短了约70%,高分辨率光谱复原中批量处理的性能提高近10倍,异步并行方式使并行算法的运行效率进一步提升15%到20%。4、为了对光谱复原并行算法进一步扩展,本文实现干涉光谱复原并行算法的嵌入式系统移植,使得光谱复原处理过程更加便捷和灵活。嵌入式系统基于NVIDIA Jetson TX2开发板,通过设定开发板的工作模式,确定并行算法运行的工作频率。合理分配线程和内存等资源,对任务进一步划分和优化,在开发板上并行算法的运行速率得到进一步提高。实验分别测试了在五种工作频率下并行算法的运行时间,并将其与串行算法在开发板CPU集群上的运行时间进行了对比。结果表明在工作模式0下并行算法的性能最高,在嵌入式GPU上并行算法的运算时间也远低于在开发板CPU集群上串行算法的运行时间。对于1000组同样的数据,优化的并行处理算法在PC机上的运行时间为2.925ms,而在嵌入式上运行时间为3.331ms。嵌入式系统的优化处理性能接近PC机。