基于GPU技术的三线阵立体航测相机并行谱段配准方法技术

技术编号:13589528 阅读:67 留言:0更新日期:2016-08-25 16:48
本发明专利技术是一种基于GPU技术的航测相机并行谱段配准方法,包括步骤:1】在GPU端对原始影像I(x,y)进行卷积,建立高斯金字塔L(x,y,σ)并行化,建立高斯差分金字塔D(x,y,σ)并行化;2】对灰度化的影像在GPU端先进行行卷积,再进行列卷积,将算法复杂度从O(N2)降为O(N);3】在存储空间连续的条件下,进行极值点个数累加存储,在同一时刻只有一个线程操作累加地址;4】绑定纹理寄存器,为每个关键点设置一个CUDA线程;5】生成多维描述子,使用一个线程块处理一个特征点的多维向量;6】在CPU上进行KD‑tree的构建;经实际测试,处理分辨率可达或高于16378x8192;该方法基于GPU技术解决了对超大分辨率图像进行实时图像配准的速度难点,且配准时间在毫秒级别,易于集成在航测相机图像处理系统中。

【技术实现步骤摘要】

本专利技术属于三线阵航测相机图像处理中并行计算图像处理
,尤其涉及一种基于GPU技术的航测相机超高分辨率并行谱段配准方法。
技术介绍
随着航测相机技术的不断发展、影像尺寸的增大和空间分辨率的提升,高分辨率影像中可以提取出更多有用的图像信息。目前关于影像配准的方法,绝大多数较好的方法都主要应用在中小尺寸影像的配准中,并且忽略时间性能,缺少对超大尺寸影像数据的处理应用,而这正是三线阵立体航测相机超大分辨率影像处理,尤其是在有限处理时间内进行应急影像处理所面临的瓶颈。目前,特征检测和配准算法主要分为基于灰度、基于变化域和基于特征点三类方法。基于灰度的方法直接利用图像灰度信息,基于优化准则寻找相似度最大的匹配参数,不需要进行复杂的图像预处理,但该种方法需要计算全部图像像素,运算量大,无法满足航测相机超高分辨率的技术特点。基于变化域的方法应用快速算法来提高速度,例如傅里叶快速算法,然而其应用只局限于较为简单的缩放、平移类变换形式,对于仿射变换或投影变换这类复杂的变换方式,应用效果不佳,无法适应航测相机图像变换丰富的特点。然而基于特征点的两类检测匹配方法在计算速度上均存在瓶颈,当影像像幅较大,或采用较大的高斯平滑窗口时,运算速度明显降低,繁琐的算法加重了计算机硬件负担,基于CPU的处理方式已无法满足该类方法的应用,匹配的大量特征数据消耗了大量存储空间和时间。此外,算法复杂度高的特点严重限制了该类型匹配方法在实时图像处理领域的应用。虽然研究表明基于GPU实现的基于特征点的算法可以加速影像的配准过程,但是目前并没有关于超大分辨率航测相机的配准结果。因此在特征算法及其复杂度改进的基础上,利用先进的GPU并行图像处理技术,对超大分辨率图像进行特征检测、特征匹配、坐标映射、谱段配准全流程,对于提高航测相机谱段配准精度,实现超高分辨率实时图像处理,具有重要的应用价值。
技术实现思路
本专利技术针对三线阵航测相机超高分辨率的特殊技术指标,提出一种基于GPU技术的航测相机并行谱段配准方法,经实际测试,处理分辨率可达或高于16378x8192。该方法基于GPU技术解决了对超大分辨率图像进行实时图像配准的速度难点,且配准时间在毫秒级别,易于集成在航测相机图像处理系统中。基于GPU技术的航测相机并行谱段配准方法实施过程如下:步骤1,高斯函数为利用高斯函数对原始影像I(x,y)进行卷积,由于高斯函数具有各向同性的特点,将一次二维高斯卷积分解为两次一维高斯卷积。对灰度化的影像先进行行卷积,再进行列卷积,从而将算法复杂度从O(N2)降为O(N)。绑定图像到纹理内存,将两个方向的滤波参数存储在常量内存中,为待处理图像的每一个像素建立一个CUDA线程,分别在两个方向完成滤波卷积运算,得到高斯尺度空间L(x,y,σ)。L(x,y,σ)=G(x,y,σ)⊗I(x,y)]]>步骤2:将图像金字塔分为O组,每组有S层,下一组图像由上一组图像隔点降采样得到,当直接在原始图像上计算高斯尺度函数,Omin=0,当原始图像先扩大一倍,Omin=-1。其中,σ(o,s)=σ02o+s/S,o∈omin+[0,…,o-1],s∈[0,…,S-1]。下一层卷积的σi+1值与当前卷积的σi值关系总结为σi+1=kσi,每一次高斯卷积是在上一次基础上再作一次卷积来实现,将σ值以查表方式直接得出每次卷积的尺度参数。为两幅待相减的高斯图像绑定纹理寄存器,为每个像素开辟CUDA线程,并行计算相减得到对应的高斯差分金字塔D(x,y,σ)。D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))⊗I(x,y)]]>步骤3:在3x3的立方体内进行中间检测点和同尺度8个相邻点以及上下相邻尺度18个点的比较,在存储空间连续的条件下,利用CUDA原子操作进行极值点个数的累加存储,使得显存占用率小,保障在同一时刻只有一个线程操作累加地址,确保在尺度空间和二维图像位置空间都检测到极值点,利用子像元插值将离散空间点转化为连续空间点,极值点的极值为D(x~)=D+0.5(∂DT/∂x)x~]]>步骤4:当相对于插值中心点的偏移量大于特定阈值,意味着插值中心点已经偏移到其邻近点,则删除这样的点。当小于特定阈值,说明该点易受噪声干扰变得不稳定,则删除这样的点。步骤5:主曲率表示为H(x,y)=Dxx(x,y)Dxy(x,y)Dxy(x,y)Dyy(x,y),]]>最大特征值α,最小特征值β。设定阈值γ,当(α+β)2/αβ<(γ+1)2/γ,则删除边缘效应点。步骤6:对以特征点为中心,以特定半径区域内所有点进行梯度方向统计,统计幅角m(x,y)和幅值θ(x,y),绑定纹理寄存器,为每个关键点设置一个CUDA线程,启动单独kernel函数计算在特征点附近的像素梯度大小和方向,利用全局存储器中的高斯权重函数,对每个加入梯度直方图的采样点梯度幅值均进行权重处理,将直方图中最高方向作为主方向。m(x,y)=(L(x+1,y)-L(x-1,y))2+(L(x,y+1)-L(x,y-1))2]]>θ(x,y)=arctan((L(x,y+1)-L(x,y-1))/(L(x+1,y)-L(x-1,y)))步骤7:以特征点附近领域划分为BP×BP个子区域,每个区域尺寸为mσ个像元,σ为特征点的尺度值,以特征点为中心,将特征点附近领域内图像梯度的位置和方向旋转角度θ,重新取mσBP×mσBP大小图像区域,在每个区域内计算8个方向的梯度方向直方图,生成多维描述子h(x,y,θ)。使用一个线程块处理一个特征点的多维向量,每个thread对应一个采样点,将每个线程得到的结果累加到各个方向上。步骤8:由于KD-tree的构建需要大量逻辑条件判断,所以在CPU上进行KD-tree的构建,在GPU端查找最近邻,将KD-tree绑定到纹理存储器,从而提供高效的内存带宽,使内存访问适应大量空间局部性模式,设置一个线程块包含256个线程,每个线程负责一个特征点的搜索,当特征点数目超过256,则利用多个线程块进行并行计算。步骤9:最近邻查找时,在多维树结构上进行搜索匹配,使用欧式距离作为相似度度量标准,利用GPU并行处理,并发执行搜索过程。KD-tree算法负责优化两幅图像间特征点搜索,欧式距离负责判断是否匹配。将两特征点之间的距离映射为一个线程块,每一个维度之间的差平方运算映射为一个线程,利用并行求解实现基于欧式距离的特征点匹配。例如两个特征点向量分别表示为x=(x1,x2,…,x128)和y=(y1,y2,…,y128),线程块内第i个线程计算结果(xi-yi)2,(i=1,…,128)将存入线程块内的共享存储器shared memory进行后续并行归约累加求平方根操作。步骤10:根据特征点匹配后的位置信息,直接在GPU端,利用RANSAC算法在GPU上执行从而实现精匹配,避免主机端和设备端的数据交互,RANSAC随机选择最小抽样集作为内点,得到模型参数的初始估计,然后继续寻找数据集中的其它内点,可高效地实现精匹配。随后进行后续坐标映射、谱段合成全流程。本专利技术首先利用行卷积和列卷积在G本文档来自技高网
...

【技术保护点】
基于GPU技术的三线阵立体航测相机并行谱段配准方法,其特征在于:所述方法包括以下步骤:1】在GPU端对原始影像I(x,y)进行卷积,建立高斯金字塔L(x,y,σ)并行化,建立高斯差分金字塔D(x,y,σ)并行化;在尺度和空间两方面寻找极值点,删除边缘效应点,统计幅角m(x,y)和幅值θ(x,y),定位主方向,生成特征描述子并进行匹配、坐标映射和谱段合成,生成彩色影像;2】对灰度化的影像在GPU端先进行行卷积,再进行列卷积,将算法复杂度从O(N2)降为O(N);为两幅待相减的高斯图像绑定纹理寄存器,为每个像素开辟CUDA线程,并行计算相减得到对应的高斯差分金字塔,尺度参数计算通过查表法代替连续卷积;3】在存储空间连续的条件下,利用CUDA原子操作进行极值点个数累加存储,在同一时刻只有一个线程操作累加地址,使在尺度和二维图像位置空间都检测到极值点,利用子像元插值将离散空间点转化为连续空间点;4】绑定纹理寄存器,为每个关键点设置一个CUDA线程,启动单独kernel函数计算在特征点附近的像素梯度大小和方向,利用全局存储器中的高斯权重函数,对每个加入梯度直方图的采样点梯度幅值均进行权重处理,将直方图中最高方向作为主方向;5】生成多维描述子,使用一个线程块处理一个特征点的多维向量,每个thread对应一个采样点,将每个线程得到的结果累加到各个方向上;6】在CPU上进行KD‑tree的构建,在GPU端查找最近邻,将KD‑tree绑定到纹理存储器;7】欧式距离负责判断是否匹配,将两个特征点之间的距离映射为一个线程块,每一个维度之间的差平方运算映射为一个线程,利用并行求解实现基于欧式距离的特征点匹配,运用线程块内的共享存储器shared memory进行后续并行归约累加求平方根操作。...

【技术特征摘要】
1.基于GPU技术的三线阵立体航测相机并行谱段配准方法,其特征在于:所述方法包括以下步骤:1】在GPU端对原始影像I(x,y)进行卷积,建立高斯金字塔L(x,y,σ)并行化,建立高斯差分金字塔D(x,y,σ)并行化;在尺度和空间两方面寻找极值点,删除边缘效应点,统计幅角m(x,y)和幅值θ(x,y),定位主方向,生成特征描述子并进行匹配、坐标映射和谱段合成,生成彩色影像;2】对灰度化的影像在GPU端先进行行卷积,再进行列卷积,将算法复杂度从O(N2)降为O(N);为两幅待相减的高斯图像绑定纹理寄存器,为每个像素开辟CUDA线程,并行计算相减得到对应的高斯差分金字塔,尺度参数计算通过查表法代替连续卷积;3】在存储空间连续的条件下,利用CUDA原子操作进行极值点个数累加存储,在同一时刻只有一个线程操作累加地址,使在尺度和二维图像位置空间都检测到极值点,利用子像元插值将离散空间点转化为连续空间点;4】绑定纹理寄存器,为每个关键点设置一个CUDA线程,启动单独kernel函数计算在特征点附近的像素梯度大小和方向,利用全局存储器中的高斯权重函数,对每个加入梯度直方图的采样点梯度幅值均进行权重处理,将直方图中最高方向作为主方向;5】生成多维描述子,使用一个线程块处理一个特征点的多维向量,每个thread对应一个采样点,将每个线程得到的结果累加到各个方向上;6】在CPU上进行KD-tree的构建,在GPU端查找最近邻,将KD-tree绑定到纹理存储器;7】欧式距离负责判断是否匹配,将两个特征点之间的距离映射为一个线程块,每一个维度之间的差平方运算映射为一个线程,利用并行求解实现基于欧式距离的特征点匹配,运用线程块内的共享存储器shared memory进行后续并行归约累加求平方根操作。2.根据权利要求1所述的基于GPU技术的三线阵立体航测相机并行谱段配准方法,其特征在于:所述步骤1】中对原始影像I(x,y)进行卷积是利用高斯函数进行;高斯函数为G(x,y,σ)=(1/2πσ2)e-(x2+y2)/2σ2;]]>高斯金字塔L(x,y,σ)=G(x,y,σ)⊗I(x,y).]]>3.根据权利要求2所述的基于GPU技术的三线阵立体航测相机并行谱段配准方法,其特征在于:所述步骤2】具体实现方式是:将图像金字塔分为O组,每组有S层,下一组图像由上一组图像隔点降采样得到,当直接在原始图像上计算高斯尺度函数,Omin=0,当原始图像先扩大一倍,Omin=-1;其中,σ(o,s)=σ02o+s/S,o∈omin+[0,…,o-1],s∈[0,…,S-1];下一层卷积的σi+1值与当前卷积的σi值关系总结为σi+1=kσi,每一次高斯卷积是在上一次基础上再作一次卷积来实现,将σ值以查表方式直接得出每次卷积的尺度参数;为两幅待相减的高斯图像绑定纹理寄存器,为每个像素开辟CUDA线程,并行计算相减得到...

【专利技术属性】
技术研发人员:赵晓冬曹剑中周祚峰杨洪涛黄继江郭惠楠张辉方尧
申请(专利权)人:中国科学院西安光学精密机械研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1