留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于有效区域约束的GPU-CPU协同影像快拼方法

李朋龙 邓非 李海亮 李勇 何江 王岚

李朋龙, 邓非, 李海亮, 李勇, 何江, 王岚. 基于有效区域约束的GPU-CPU协同影像快拼方法[J]. 武汉大学学报 ● 信息科学版, 2018, 43(2): 304-310. doi: 10.13203/j.whugis20150284
引用本文: 李朋龙, 邓非, 李海亮, 李勇, 何江, 王岚. 基于有效区域约束的GPU-CPU协同影像快拼方法[J]. 武汉大学学报 ● 信息科学版, 2018, 43(2): 304-310. doi: 10.13203/j.whugis20150284
LI Penglong, DENG Fei, LI Hailiang, LI Yong, HE Jiang, WANG Lan. A Method of GPU-CPU Co-processing Rapid Images Mosaicking Based on Valid Areas[J]. Geomatics and Information Science of Wuhan University, 2018, 43(2): 304-310. doi: 10.13203/j.whugis20150284
Citation: LI Penglong, DENG Fei, LI Hailiang, LI Yong, HE Jiang, WANG Lan. A Method of GPU-CPU Co-processing Rapid Images Mosaicking Based on Valid Areas[J]. Geomatics and Information Science of Wuhan University, 2018, 43(2): 304-310. doi: 10.13203/j.whugis20150284

基于有效区域约束的GPU-CPU协同影像快拼方法

doi: 10.13203/j.whugis20150284
基金项目: 

国家科技支撑计划 2012BAJ23B03

详细信息
    作者简介:

    李朋龙, 工程师, 主要从事摄影测量与遥感、GPU高性能计算方面的工作。penglongli@whu.edu.cn

    通讯作者: 邓非, 博士, 教授。fdeng@sgg.whu.edu.cn
  • 中图分类号: P231

A Method of GPU-CPU Co-processing Rapid Images Mosaicking Based on Valid Areas

Funds: 

The National Key Technology Research and Development Program of China 2012BAJ23B03

More Information
    Author Bio:

    LI Penglong, engineer, specializes in photogrammetry and remote sensing, and high performance computing with GPU. E-mail: penglongli@whu.edu.cn

    Corresponding author: DENG Fei, PhD, professor, E-mail:fdeng@sgg.whu.edu.cn
图(8) / 表(1)
计量
  • 文章访问数:  885
  • HTML全文浏览量:  70
  • PDF下载量:  309
  • 被引次数: 0
出版历程
  • 收稿日期:  2016-03-10
  • 刊出日期:  2018-02-05

基于有效区域约束的GPU-CPU协同影像快拼方法

doi: 10.13203/j.whugis20150284
    基金项目:

    国家科技支撑计划 2012BAJ23B03

    作者简介:

    李朋龙, 工程师, 主要从事摄影测量与遥感、GPU高性能计算方面的工作。penglongli@whu.edu.cn

    通讯作者: 邓非, 博士, 教授。fdeng@sgg.whu.edu.cn
  • 中图分类号: P231

摘要: 提出了一种以有效区域约束的Voronoi图为拼接线网络,利用GPU-CPU协同处理航空影像快速拼接方法。首先,基于成像有效区域生成有效区域约束的Voronoi图拼接线网络,解决了传统Voronoi图拼接线网络在低重叠度条件下拼接后影像局部区域不被覆盖的问题,然后利用GPU-CPU协同处理将正射纠正嵌入到影像拼接的过程中,并且只对每张影像的有效区域进行纠正,再通过选择配置优化和存储层次性优化进一步提高拼接效率。实验表明,对237张高分辨率航空影像进行快速正射纠正和拼接,本文算法较传统先纠正再拼接的方法效率提高近20倍,同时保证很高的拼接精度,可以满足应急测绘要求。

English Abstract

李朋龙, 邓非, 李海亮, 李勇, 何江, 王岚. 基于有效区域约束的GPU-CPU协同影像快拼方法[J]. 武汉大学学报 ● 信息科学版, 2018, 43(2): 304-310. doi: 10.13203/j.whugis20150284
引用本文: 李朋龙, 邓非, 李海亮, 李勇, 何江, 王岚. 基于有效区域约束的GPU-CPU协同影像快拼方法[J]. 武汉大学学报 ● 信息科学版, 2018, 43(2): 304-310. doi: 10.13203/j.whugis20150284
LI Penglong, DENG Fei, LI Hailiang, LI Yong, HE Jiang, WANG Lan. A Method of GPU-CPU Co-processing Rapid Images Mosaicking Based on Valid Areas[J]. Geomatics and Information Science of Wuhan University, 2018, 43(2): 304-310. doi: 10.13203/j.whugis20150284
Citation: LI Penglong, DENG Fei, LI Hailiang, LI Yong, HE Jiang, WANG Lan. A Method of GPU-CPU Co-processing Rapid Images Mosaicking Based on Valid Areas[J]. Geomatics and Information Science of Wuhan University, 2018, 43(2): 304-310. doi: 10.13203/j.whugis20150284
  • 无人机等低空遥感系统由于其具有运行成本低、快速机动、影像分辨率高、风险低等优势,已成为遥感数据获取的重要工具[1]。由于低空遥感影像具有框幅小、重叠度高的特点,大序列正射影像进行拼接必然会造成巨大的数据冗余与效率低下。国内外学者在正射影像拼接上做了大量的研究[2-6],这些研究都注重影像两两之间的镶嵌,解决了拼接线自动绕过具有一定高度地物的问题,但是并没有考虑到地物的投影差,同时随着影像数目的增加会导致误差的累积,无法保证拼接之后DOM的精度。文献[7-8]提出了以正射影像重叠区域的角平分线构成拼接线网络,避免了镶嵌边不在重叠区域内,镶嵌结果不完全覆盖的问题,但是以重叠区域角平分线构成的有效多边形,无法保证投影变形最小化。文献[9]提出了基于常规Voronio图生成拼接线网络,并对拼接线网络进行优化,拼接效率有了一定的提高。但是先正射纠正再拼接的传统方法已经无法满足快速应急测绘的需求。

    随着图形处理单元(graphics processing unit, GPU)的计算性能不断的提高,以CPU和GPU协同处理为代表的高性能并行算法已广泛应用于遥感数据的快速处理[10-12]。为了将CPU-GPU协同处理运用于航空影像的快速拼接中提高测绘效率,满足应急测绘的需求,本文提出了一种从原始影像出发,生成有效区域约束Voronoi图拼接线网络,将正射纠正嵌入拼接过程中并利用GPU-CPU协同处理航空影像快速拼接方法。

    • 中心投影的成像方式和地形的起伏使航空影像存在投影变形,且越往影像边缘投影变形越大。低空遥感影像有很高的重叠度,在重叠区域合理的选择像素来源能有效地减小拼接结果的投影变形,保证DOM精度。Voronoi图[13]是计算几何中基于散点最邻近原则的空间划分方法。如果以每张影像摄影中心对应的地面点组成散点集生成Voronoi图对平面进行划分,那么,理论上拼接后DOM中每一点的投影变形最小。

    • 以测区影像像主点组成散点集生成的传统Voronoi图有两个不足:①无法生成测区边缘影像像主点所对应的闭合Voronoi多边形;②在重叠度很低的情况下,不能保证相邻影像拼接线在重叠区域内,无法保证无缝拼接。为解决上述问题,本文提出基于有效区域约束的Voronoi图,影像的有效区域即为该影像拍摄的地面范围。该方法在生成拼接线网络时增加以下约束条件:①每张影像像主点所对应的Voronoi多边形必须在该影像的有效区域内;②Voronoi多边形的每个端点必须在3个包含该端点的Voronoi多边形所对应影像有效重叠区域内。

    • 传统DOM的拼接中,单张正射影像的有效区域是通过边缘提取、简化获得。而本文是以原始影像4个角点通过共线方程投影到地面,得到该影像的有效区域。如图 1所示,O是摄影中心,O'是像主点,O"是像主点对应的地面点,abcd是原始影像4个角点,ABCD为影像4个角点对应的地面点,则可以将四边形ABCD看作该影像的成像有效区域。

      图  1  影像的成像有效区域

      Figure 1.  Valid Area of the Image

    • 以测区所有影像像主点对应的地面点为散点集P={p1, p2, …, pn}(n≥3),所有以pi为一个顶点的Delaunay三角形构成的凸壳多边形为di, 那么所有像主点所对应的凸壳多边形的集合D={d1, d2, …, dn}(n≥3)即为Delaunay三角网。为了正确生成测区边缘影像对应的Voronoi多边形,在生成以pi为中心点的凸壳多边形时,加入pi关于该影像成像有效区域四边的对称点,以下称为镜像点。

      图 2所示,P1P2P3为3张影像像主点对应的地面点,P4P5P6P7为点P1关于该影像有效区域a1a2a3a4四边形的镜像点。生成影像P1的Voronoi多边形的步骤如下:

      图  2  加入镜像点的Voronoi多边形

      Figure 2.  Voronoi Ploywith Mirror Points

      1) 搜索距离P1最近的点P0;

      2) 以P1P0为边寻找一点Pi,使得∠P1PiP0最大,判断向量$ \overrightarrow {{P_0}{P_i}} $的方向(逆时针或是顺时针);

      3) 在边P1Pi的同一方向找到下一点Pj使得∠P1PjPi最大;

      4) 重复步骤3)直至找到起点P0结束;

      5) 分别作P1Pi的中垂线,依次交于点vi,依次连接vi, 即得影像P1的Voronoi多边形v1v2v3v4v5

      以同样的方法获得P2P3的Voronoi多边形即可得到该3张影像的拼接线网络,如图 2中加粗多边形所示。

    • 加入镜像点只解决了边缘影像Voronoi多边形的生成,并不能保证影像重叠度极低情况下相邻影像的拼接线在两者的重叠区域内,无法保证两者之间无缝拼接,如图 2P2P3影像的拼接线v2v'2并不在两者的重叠区域内。只要保证Voronoi多边形的每一个端点(如v2)都在构成其对应Delaunay三角形的3张影像(如P1P2P3)的重叠区域内(图 2中灰色区域),就能保证相邻影像之间的无缝拼接。根据Voronoi多边形端点与影像的对应关系,检测出该端点是否在对应3张影像的重叠区域,如果不在,用该3张影像的重叠区的几何中心替代该端点即可,结果如图 3所示。如果对应Delaunay三角形的3个顶点中有镜像点,则该端点不需优先。

      图  3  有效区域约束的Voronoi图

      Figure 3.  Voronoi Image based on Valid Areas

    • 光学遥感影像成像时光照不同、时间不同等因素造成了影像间色彩的不一致[14],进而造成拼接线两边色彩的突变。本文采用拼接线垂直方向距离加权的方法[9],消除拼接线两边的色彩差异,实现平滑过渡。

    • GPU具有强大的并行处理能力,被广泛应用于图像处理算法中。2007年,NVIDIA推出的统一计算设备结构(compute unified device architecture,CUDA)采用与C语言兼容的开发环境,将GPU作为CPU的设备,促进了GPU通用计算的发展。CUDA将GPU看作由若干个线程块(Block)组成的线程网格(Grid),而每个线程块都有一定的线程(Thread)组成。执行并行计算的核函数(Kernel)以线程块为单位进行调度。同时,在CUDA架构中,GPU的存储器分为全局存储器、共享存储器、常数存储器等,各类存储器的大小和访问速度各不相同[11]

      GPU-CPU协同处理,就是CPU作为控制中心负责数据的传输、GPU的调用和并行程度低的计算等串行程序的执行;而GPU负责并行程度高耗时长的大规模计算,并将计算结果输出给CPU。

    • 航空影像正射纠正是利用影像定向数据和测区DEM通过反解法数字微分纠正消除原始影像中的投影变形得到正射影像(DOM)的过程[15]。为避免巨大的数据冗余,本文方法从原始影像出发,只纠正该影像对应的有效Voronoi多边形内的像素,直接赋值给最终结果。GPU-CUP协同处理纠正过程如图 4所示。

      图  4  GPU-CPU协同正射纠正流程

      Figure 4.  GPU-CPU Cooperation Orthographic Rectifica-tion Flow

      1) 由§1.2.2得到的优化后的Voronoi图网络及该影像在最终拼接结果中的有效区域,即该影像对应的有效Voronoi多边形,以下称作有效多边形。

      2) 根据包含该有效多边形的最小矩形计算出覆盖该矩形的DEM范围,再根据该影像的外参数,根据式(1)计算最小矩形对应的原始影像范围。将局部DEM和局部原始影像和外参数拷贝到GPU的存储器。

      $$ \left\{ \begin{array}{l} x = - f\frac{{{a_1}\left( {X - {X_S}} \right) + {b_1}\left( {Y - {Y_S}} \right) + {c_1}\left( {Z - {Z_S}} \right)}}{{{a_3}\left( {X - {X_S}} \right) + {b_3}\left( {Y - {Y_S}} \right) + {c_3}\left( {Z - {Z_S}} \right)}}\\ y = - f\frac{{{a_2}\left( {X - {X_S}} \right) + {b_2}\left( {Y - {Y_S}} \right) + {c_2}\left( {Z - {Z_S}} \right)}}{{{a_3}\left( {X - {X_S}} \right) + {b_3}\left( {Y - {Y_S}} \right) + {c_3}\left( {Z - {Z_S}} \right)}} \end{array} \right. $$ (1)

      式中, (X, Y, Z)是地面点的物方坐标; (x, y, z)是对应地面点在像方坐标系中的坐标; (Xs, Ys, Zs)是影像外方位元素中的线元素; f是相机的焦距; a1a2a3b1b2b3c1c2c3是根据影像外方位元素中3个角元素计算得到的旋转矩阵中的9个参数。

      3) 根据最小矩形的长度、宽度和DOM影像地面分辨率的关系,设置线程块的大小和个数,每一个线程对应一个像素。

      4) 根据线程索引,计算该像素的地面坐标(X, Y),判断该像素是否在有效多边形内,如果在则双线性内插得到高程H,投影到原始影像,内插灰度,并将灰度赋值;如果不在则该像素不做处理。

      5) 将纠正的结果拷贝到主机内存,并写入硬盘。

    • 从§2.2.1可知,重采样过程是GPU主要执行的部分,如果只是将CPU的算法移植到GPU执行,并不能完全发挥GPU强大的计算能力。因此,要对GPU执行程序进行配置选择优化和层次存储优化。

      在开普勒构架系列的GPU中,线程块是由流多处理器进行调度的,当满足以下4个条件时,流多处理器的性能最优:①一个线程块中的线程数不大于1 024;②一个流多处理器最多同时调用16个线程块;③一个流多处理器中最多有2 048个线程;④一个流多处理器上最多有49 152 Byte的共享存储空间和65 536个寄存器。综合以上条件,当线程块大小为1 024时,流多处理器的调度性能最佳。

      多层次存储是GPU的一大特点,每个线程都有本地存储器;每个线程块都有一个供该线程块内所有线程访问共享存储器;全局存储器、常数存储和纹理存储器可供所有的线程访问。全局存储器的访问周期高达几百个时钟周期,而常数存储器的访问周期为几个时钟周期。每一张影像的外参数相同,因此可以将其放入高速的常数存储器中,供每个线程快速访问;用来获取灰度的原始影像和DEM,则利用纹理存储器存储优化。相对于效率低下的全局存储器,纹理存储器能够通过缓存利用数据的局部性提高效率。

    • 本文算法从原始影像出发,以影像像主点对应地面点为散点集,以影像有效区域约束的Voronoi图为拼接线网络,然后利用GPU-CPU协同处理对每张影像有效多边形内的像素进行正射纠正直接赋值给拼接后的DOM。GPU-CPU协同影像快速纠正和拼接流程如图 5所示。

      图  5  GPU-CPU协同正射影像快速拼接流程

      Figure 5.  GPU-CPU Cooperation Auto Rapidly Mosaicking Flow of Orthoimages

      1) 测区影像外参数、测区DEM和相机参数的读入。

      2) 获取每张影像成像有效区域,像主点对应地面点坐标。

      3) 加入像主点对应地面点关于成像有效区域的镜像点,计算每张影像的初始Voronoi多边形,构成测区初始Voronoi图。

      4) 顾及影像成像有效区域对初始Voronoi图进行优化,得到优化后的Voronoi图网络。

      5) 根据优化后的Voronoi图,计算每张影像有效Voronoi多边形最小外接矩形对应的DEM和原始影像的范围,并创建拼接结果的存储指针。

      6) 利用GPU对每张影像有效Voronoi多边形进行正射纠正并写入最终结果中。

      7) 通过对拼接线两侧影像同名像素灰度加权平均,消除拼接线两侧色彩突变。

    • 为验证本文方法的有效性,以甘肃酒泉城区237张分辨率为0.1 m、航向重叠度约70%、旁向重叠度约80%、框幅为8 230×6 168像素的航空影像进行实验,总数据量为33.5 GB。实验环境:CPU为英特尔i5-3470;GPU为开普勒架构下的NvidiaGeforce GTX650,拥有384个流多处理器,单精度浮点计算峰值为494 Gflops,全局存储器为1 GB;主机内存为8 GB。

    • 图 6为用本文方法快速拼接的结果,其中图 6(a)为整个测区的拼接线网络,每一个Voronoi多边形对应一张影像的有效区域;图 6(b)为带拼接线网络的测区DOM全景图,图 6(c)为不带拼接线网络的DOM全景图,可以看出全景图没有拼接漏洞,实现了无缝拼接。

      图  6  整个测区的拼接结果

      Figure 6.  Mosaicking Result of the Whole Area

      图 7展示了本文方法在地面和房顶处拼接的效果图,其中7(a)、7(d)分别为带拼接线的地面和房顶拼接效果,7(b)、7(e)分别为不带拼接线地面和房顶的拼接效果,7(c)、7(f)分别为消除拼接线两侧色彩突变后地面和房顶的拼接效果。由于优化后的Voronoi图拼接线网络获取了每一张影像上投影变形最小的区域,因此不仅能实现地面的无缝拼接,在具有一定高度建筑物处拼接效果也很好。分别比较7(b)、7(c)和7(e)、7(f)可以看出, 本文的拼接线垂直方向加权平均法很好地消除拼接线两侧色彩的突变,实现平滑过渡。

      图  7  地面和房顶的拼接精度

      Figure 7.  Mosaicking Precision of the Ground and the Building

      为了验证本文方法拼接后DOM的准确性,利用测区15个像控点的DOM量测坐标和GPS测量坐标进行比较,dx、dy和点位误差ds均在精度要求以内。

    • 以下将从有效多边形GPU加速正射纠正和整个测区GPU-CPU协同拼接对本文方法效率进行分析。

      表 1给出了在相同条件下分别用CPU和GPU对同一航带相邻10张影像对应的有效多边形进行正射纠正所需要的时间,单位为ms(包括数据传输时间和处理时间,不包含硬盘的读写时间)。可以看出:①线程块大小为1 024时,GPU处理的时间远远小于CPU处理的时间;②对GPU进行存储器优化后,包括纹理存储器优化和常数存储器优化,处理时间进一步减少,较CPU单独处理时间的平均加速比为60.9倍,最高加速比达到72.5倍。

      表 1  CPU和GPU对单张影像有效多边形进行正射纠正效率对比/s

      Table 1.  Comparison Between CPU and GPU Efficiency on a Single Image Valid Polygon Correction/s

      序号 CPU GPU配置优化 GPU存储优化 加速比
      1 6 739 144 93 72.5
      2 5 506 122 78 70.6
      3 7 379 184 125 59.0
      4 7 285 175 125 58.3
      5 8 689 230 156 55.7
      6 5 772 139 94 61.4
      7 5 740 127 94 61.1
      8 6 973 167 110 63.4
      9 9 016 234 171 52.7
      10 5 959 151 109 54.7
      AVE 6 906 167.3 115.5 60.9

      图 8给出了本文算法与其他文献算法的效率对比,文献[8]和文献[9]都是先生成单张正射影像,再选择拼接线网络进行拼接,该测区237张影像进行正射纠正共耗时9 267.2 s,文献[9]的算法仅拼接需耗时1 746.2 s。而本文算法若只用CPU计算仅耗时2 123.7 s,用GPU-CPU协同处理只需要567.093 s。本文算法较先正射纠正再拼接的传统算法有近20倍的效率提升。

      图  8  几种算法的效率比较

      Figure 8.  Compared with Other Method's Efficiency

    • 本文算法生成的拼接线网络解决了传统Voronoi图拼接线网络在低重叠度无法保证相邻影像无缝拼接的问题,同时准确生成了测区边缘影像Voronoi多边形;本文算法将正射纠正的过程嵌入影像拼接过程中,并利用GPU-CPU协同处理,避免了数据冗余和多余计算。完成237张分辨率为0.1 m航空影像的拼接只需耗时567 s,较先正射纠正再拼接的传统方法效率提高将近20倍。

      由于Voronoi图只是几何上的空间划分,对于高层建筑物依旧无法达到无缝拼接,下一步研究包括:根据建筑物信息进一步优化拼接线网络自动绕过建筑物;GPU的大规模并行计算,提高拼接的效率。

参考文献 (15)

目录

    /

    返回文章
    返回