基于透视变换的合成孔径成像方法与流程

文档序号:16473394发布日期:2019-01-02 23:20阅读:172来源:国知局

本发明属于计算机图形学领域,特别是一种基于透视变换的合成孔径成像方法。



背景技术:

重建部分闭塞对象的形状和外观是当前3d重建算法的挑战,合成孔径成像的出现使得重建部分闭塞的对象具有可行性。合成孔径成像,是一种使用图像阵列穿件一个宽口径、浅景深的合成图像。相机阵列在一维方向上所覆盖的距离称为基线长度(宽口径),足够长的基线可以使我们捕获到足够多而且绕过前景并且入射到部分被遮挡的背景物体上的光线。较浅的景深使得相机可以捕获到位于景深内物体的光线,也使得不在景深内的前景遮挡物获取到的光场信息相对较少。从而可以重建出被遮挡物体的表面。因此研究合成孔径成像技术具有十分重要的意义。近些年来,许多研究者在光场成像领域做出了十分重要的贡献。

vaish提出了一中基于平面加上视差校准方法,用于校准密集的照相机阵列。从而使得合成孔径成像已成为可行的方法,可为用户选择的连续并行平面提供聚焦能力。该方法最重要的特点是可以"看穿"遮挡。相机阵列能够虚拟一个具有较大孔径相机的成像效果,使得景深非常浅,即当目标物位于聚焦平面,景深范围内时能够清晰成像,而在景深范围以外则成像变得模糊,通过相机阵列的标定获取同一像素在不同相机下之间的位置关系,从而对其进行线性融合,可获得合成孔径图像。由于其景深非常小,所以其前景遮挡物离焦而模糊。然而传统合成孔径成像需要相机阵列标定过得相机获取不同角度的光场信息,耗费大量硬件资源,且操作流程复杂。



技术实现要素:

本发明的目的在于提供一种基于透视变换的合成孔径成像方法,用于解决传统合成孔径成像方法耗费大量硬件资源且操作复杂的问题。

实现本发明目的的技术方案为:一种基于透视变换的合成孔径成像方法,包括以下步骤:

步骤1,使用单个相机沿着一维方向对目标场景进行光场采集;

步骤2,选取一维方向运动轨迹与部分闭塞对象和遮挡物的连线交点处采集的图像、交点处相邻采集点采集的图像作为参考图像,采用方框滤波近似代替二阶高斯滤波,使用积分图像加速卷积,构造hessian高斯金字塔矩阵;

步骤3,构造高斯金字塔尺度空间;

步骤4,利用非极大值抑制初步确定特征点;

步骤5,选取特征点方向,进而确定特征点主方向;

步骤6,构建surf特征点描述算子;

步骤7,匹配两幅图所有特征点的欧式距离;

步骤8,使用ransac算法去除误匹配点,计算单应性矩阵h;

步骤9,通过透视变换,校正图像;

步骤10,取剩余图像作为带匹配图像重复上述操作获得校正后的图像;

步骤11,对所有变换后的图像与参考图像进行线性融合,最终获得合成孔径图像。

本发明与现有技术相比,其显著优点为:(1)本发明采用单相机取代多相机阵列,使用单相机在一维方向上进行连续拍摄取代多相机阵列的基线长度,能够大量减少硬件资源的使用;(2)使用单相机可避免多相机阵列的标定过程,通过surf特征点匹配与ransac去误差的过程,可较为精确地计算出单应性矩阵h;(3)区别于传统合成孔径成像方法需要对相机阵列标定的步骤,本发明先进行特征点匹配,在进行去误差操作,进而求出图像和参考图像的之间透视变换关系,将图像校正到参考图像的坐标平面,从而对参考图像的像素进行重对焦,从而无须进行标定过程。

附图说明

图1是本发明基于透视变换的合成孔径成像方法的流程图。

图2是部分被遮挡的唱片盒示意图。

图3是相机阵列所组成的基线长度示意图。

图4是图像在高斯平滑后,在x和y方向上的二阶导数模板示意图。

图5是积分图的原理图。

图6是高斯金字塔的构造过程示意图。

图7是像素点的3×3×3的立体邻域示意图。

图8是选取特征点的主方向示意图。

图9构造surf特征点描述算子的过程图。

图10是使用本方法后的得到的结果图。

具体实施方式

一种基于透视变换的合成孔径成像方法,包括以下步骤:

步骤1,使用单个相机沿着一维方向对目标场景进行光场采集;

步骤2,选取一维方向运动轨迹与部分闭塞对象和遮挡物的连线交点处采集的图像、交点处相邻采集点采集的图像作为参考图像,采用方框滤波近似代替二阶高斯滤波,使用积分图像加速卷积,构造hessian高斯金字塔矩阵;

步骤3,构造高斯金字塔尺度空间;

步骤4,利用非极大值抑制初步确定特征点;

步骤5,选取特征点方向,进而确定特征点主方向;

步骤6,构建surf特征点描述算子;

步骤7,匹配两幅图所有特征点的欧式距离;

步骤8,使用ransac算法去除误匹配点,计算单应性矩阵h;

步骤9,通过透视变换,校正图像;

步骤10,取剩余图像作为带匹配图像重复上述操作获得校正后的图像;

步骤11,对所有变换后的图像与参考图像进行线性融合,最终获得合成孔径图像。

进一步的,步骤1中,相机沿一维方向运动轨迹与部分闭塞对象和遮挡物的连线垂直,相机与目标物体连线与一维方向的角度从左至右范围为30度到150度。

步骤5确定特征点主方向的具体方法为:

以特征点为中心,计算半径为6s的邻域内,统计60度扇形内所有点在x和y方向的haar小波响应总和,并给这些响应值赋高斯权重系数,使得靠近特征点的响应贡献大,而远离特征点的响应贡献小;然后60度范围内的响应相加以形成新的矢量,遍历整个圆形区域,选择最长矢量的方向为该特征点的主方向;通过特征点逐个进行计算,得到每一个特征点的主方向。

进一步的,匹配两幅图所有特征点的欧式距离得到一个距离集合,进而匹配特征点。

进一步的,用ransac算法来去除这部分的误匹配点,计算h。在上述特征点集中随机提取四组不共线的特征点,计算出变换矩阵h,再通过这种模型来测试匹配点集中所有匹配点,并分别计算出满足这种模型的匹配点的个数以及代价函数,代价函数最小的模型所对应的h即为所求h。

步骤9所指的透视变换原理,是图片投影到一个新的视平面,即将图像投影到参考图像的视平面内。在单应矩阵下,我们可以将三维世界中的点的转换从相机1到相机2写成:

x1=hx2

x1,x2是同一像素在不同图像坐标系下的点,h为单应性矩阵。

本发明采用了一种基于透视变换的合成孔径成像方法,该方法以减少相机等硬件资源为目的,通过对图像阵列采取特征点提取,去误差匹配操作,计算出每幅图像与参考图像之间单应性矩阵h,从而取代多相机阵列的标定流程,进而将每幅图像变换到参考图像的像素坐标系中,最终得到合成孔径图像结果。

下面结合附图及具体实施例对本发明做进一步详细说明。

实施例1

结合图1,本发明透视变换的合成孔径成像方法,包括以下步骤:

步骤1,使用相机从各个角度捕获到部分闭塞物体的光场信息,使用单个相机沿着基线对目标场景进行光场信息采集。

步骤2,选取一张图作为参考图像以及另一张图像,构造hessian矩阵,计算特征值α。它是一个多元函数的二阶偏导数构成的方阵。在构造hessian矩阵前需要对图像进行高斯滤波,使用方框滤波近似代替二阶高斯滤波,根据积分图像原理计算任意一点到原图左上角区域内的像素从而提高计算速度。

步骤3,构建高斯金字塔,经过步骤2处理后,得到了一张由近似hessian行列式值所构成的图像,对该图像进行高斯平滑和亚采用获得一系列下采样图像构成高斯金字塔,其中每一层叫作octave,每个octave层中会有不同尺度的图像,在surf中,图像大小保持不变,通过改变高斯模糊尺寸获得不同的octave。

步骤4,利用非极大值抑制初步确定特征点以及精确定位。初步定为特征点,将经过hessian矩阵处理过的每个像素点与其3维领域的26个点进行大小比较,如果它是这26个点中的最大值或者最小值,则保留下来,作为初步的特征点。然后,采用3维线性插值法得到亚像素级的特征点,同时也去掉那些值小于一定阈值的点,增加阈值使检测到的特征点数量减少,最终只有几个特征最强点会被检测出来。

步骤5,选取特征点方向,紧接着确定特征点主方向,为了保证旋转不变性,需要统计特征点领域内的harr小波特征。即以特征点为中心,计算半径为6s(s为特征点所在的尺度值)的邻域内,统计60度扇形内所有点在x(水平)和y(垂直)方向的haar小波响应总和(haar小波边长取4s),并给这些响应值赋高斯权重系数,使得靠近特征点的响应贡献大,而远离特征点的响应贡献小,然后60度范围内的响应相加以形成新的矢量,遍历整个圆形区域,选择最长矢量的方向为该特征点的主方向。这样,通过特征点逐个进行计算,得到每一个特征点的主方向。

步骤6,生成特征点描述算子。在特征点周围取一个4*4*4的沿着特征点的主方向矩形区域块。选取每个子区域统计25个像素的与步骤5选取的主方向相同的方向、与主方向呈90度角方向、与主方向呈180度角方向以及与主方向呈270度方向这4个方向的haar小波特征,作为每个子块区域的特征向量,作为特征点的描述子;

步骤7,计算待匹配两幅图所有特征点的欧式距离;

步骤8,用ransac算法来去除这部分的误匹配点,提高匹配的精确度,从而计算出单应性矩阵h。单应性是一个平面到另外一个平面的投影映射,将空间中的点变换到另一个空间中,其原理如下:

其中(x,y)是基准图像中角点的所在位置,(x',y')是待匹配图像中角点的所在位置,s为尺度参数。.ransac算法从匹配点集中随机获取不共线的四对匹配点,求出单应性矩阵h。再通过这种模型来测试匹配点集中所有匹配点,并分别计算出满足这种模型的匹配点的个数以及代价函数,代价函数公式如下:

通过多次模型更新从而去除误匹配点,能够提高匹配的精确度。最优解所对应的h即为所求h。

步骤9,通过透视变换,校正图像,运用x2=hx1,将图像的像素变换到参考图像的像素坐标中,保存该变换后的图像。

步骤10,取剩余图像作为待匹配图像重复上述操作获得相应校正后的图像。

步骤11,对所有变换后的图像和参考图像进行融合,获得最后的合成孔径图像。

实施例2

图2表示的是部分被遮挡的唱片盒,是需要“看穿”获取到的结果图。通过相机在一维方向上捕获到恰好位于焦平面内的被遮挡物体的光场,最终则其合成图像的强度正比于光场的方向采样数,即相机在一维方向上的不同角度。本实施例通过特征点匹配,去误差,计算单应性矩阵从而将不同角度的光场校正到参考光场上,若两个光场中的像素都被捕捉,且位于焦平面内,那么该像素线性融合时会得增强,反之,离焦物体(遮挡物)会虚化,因此能够从遮栏物的离焦背景中突出显示山来。

结合原理说明,具体的步骤如下:

第一步,使用相机从各个角度捕获到部分闭塞物体的光场信息,如图3所示,使用单个相机沿着基线对目标场景进行光场采集。

第二步,选取一张图作为参考图像和另一张图像,构造hessian矩阵,计算特征值α。hessian矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。对一个像素f(x,y),其hessian矩阵如下:

在构造hessian矩阵前需要对图像进行高斯滤波,经过滤波后的hessian矩阵表述为:

lxx(x,σ),lxy(x,σ),lyy(x,σ)是像素f(x,y)二阶标准高斯函数作为滤波器在特定核间的卷积计算的二阶偏导数,在离散数字图像中,一阶导数是相邻像素的灰度差:

dx=f(x+1,y)-f(x,y)

二阶导数是对一阶导数的再次求导:

dxx=[f(x+1,y)+-f(x,y)]-[f(x,y)-f(x-1,y)]

=f(x+1,y)+f(x-1,y)-2*f(x,y)

接着利用图像像素的hessian矩阵行列式进行变换,公式为:

求hessian矩阵需要先高斯平滑,再求二阶导数,这些离散的像素点使用模板卷积形成的,过程可用模板代替。如图4所示,左上角先高斯平滑接着在y方向上且二阶导数的模板,右上角为x和y方向上的先高斯滤波然后二阶混合偏导。如图5使用方框滤波近似代替二阶高斯滤波,根据积分图像原理计算任意一点到原图左上角区域内的像素从而提高计算速。公式为:

det(h)=dxx*dyy-(0.9dxy)2

其中0.9是经验值,用于平衡因使用盒式滤波器近似所带来的误差。根据判别式的正负,来判断改点是不是极值点。dxx,dyy是像素f(x,y)在x,y方向上的二阶导数,dxy是像素f(x,y)在x方向的一阶导数再沿着y方向求一次导数。

第三步,如图6所示,构建图像的高斯金字塔,经过步骤2处理后,得到了一张近似hessian的行列式图。金字塔的每一层作为一个octave,每个octave层中,大小不变,不同的octave的图片是通过改变高斯模糊尺寸得到的,只是改变滤波器的大小。

第四步,利用非极大值抑制初步确定特征点以及精确定位。步定为特征点,如图7,将经过hessian矩阵处理过的每个像素点与其3维邻域的26个点进行大小比较,如果它是这26个点中的最大值或者最小值,则保留下来,当做初步的特征点。采用3维线性插值法得到亚像素级的特征点,同时也去掉那些值小于一定阈值的点,增加极值使检测到的特征点数量减少,最终只有几个特征最强点会被检测出来。

第五步,选取特征点方向,紧接着确定特征点主方向,为了保证旋转不变性,需要统计特征点领域内的harr小波特征。如图8所示,即以特征点为中心,计算半径为6s(s为特征点所在的尺度值)的邻域内,统计60度扇形内所有点在x(水平)和y(垂直)方向的haar小波响应总和(haar小波边长取4s),并给这些响应值赋高斯权重系数,使得靠近特征点的响应贡献大,而远离特征点的响应贡献小,然后60度范围内的响应相加以形成新的矢量,遍历整个圆形区域,选择最长矢量的方向为该特征点的主方向。这样,通过特征点逐个进行计算,得到每一个特征点的主方向。

第六步,生成特征点描述子。在特征点周围取一个4*4*4的矩形区域块,但是所取得矩形区域方向是沿着特征点的主方向。如图9所示每个子区域统计25个像素的水平方向和垂直方向的haar小波特征。选取第六步主方向相同的方向、与主方向呈90度角方向、与主方向呈180度角方向以及与主方向呈270度方向这4个方向的harr小波特征。把这4个值作为每个子块区域的特征向量,所以一共有4*4*4=64维向量作为surf特征的描述子。

第七步,匹配两幅图所有特征点的欧式距离。计算带匹配图像特征点到参考图像所有特征点的欧式距离,两个n维向量的欧式距离d12如下:

其中k为匹配的特征点数量,x1k,x2k为两组特征点的64维向量中的某向量,从而得到一个距离集合。通过对比距离集合比较得到最小欧式距离和次小欧式距离。设定阈值当特征点之间的欧式距离位于阈值内,则认定匹配;

第八步,用ransac算法来去除这部分的误匹配点,提高匹配的精确度,从而计算出单应性矩阵h。从匹配点集中随机获取四对匹配点,但要求这四对匹配点不能够共线,通过公式计算出单应性矩阵h,记为数据模型s。计算匹配点集中所有的点与数据模型s的代价函数。若代价参数的误差在阈值的允许范围内,则把这个点加到内点集i中。令最优内点集记为best-i,其集合中的元素数目是小于当前内点集i的数目,则令best-i=i,同时将迭代次数也更新为k。如果迭代次数大于k的最大值,则退出。如果是小于等于的情况,那么迭代次数就加1,并且重复以上的步骤。其中k=log(1-p)/log(1-wm),式中p为置信度,本实施例取值为0.995;w为内点的比例,是指最优内点集best-i在所有匹配点中所占的比例;m是在计算该种模型s时需获取的最少样本值,是每次进行迭代计算单应性矩阵h时所选取的匹配点数,本实施例取值为4。当k小于或等于最大迭代次数时,k的值是不断变化的。若能确定计算模型和最大迭代次数的值,则ransac算法一定能获得最优解。由此计算可以出单应性矩阵h。

第九步,通过透视变换,校正图像,运用x1=hx2,将图像的像素变换到参考图像的像素坐标中,保存该变换后的图像。

第十步,取剩余图像作为带匹配图像重复上述操作获得相应的校正后的图像。

最后,对所有变换后的图像和参考图像进行融合,获得最后的合成孔径图像,如图10所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1