本发明涉及一种图像拼接方法,特别涉及一种基于流形优化的图像拼接方法,属于图像处理以及图像拼接技术领域。
背景技术:
随着可视化媒体的逐渐发展,社会大众对于媒体信息也有了更高的需求。除了希望可以得到更高的分辨率和更清晰的图像之外,人们还希望图像中可以涵盖更大视角的场景信息。但是当前一般的拍摄设备因为摄像头硬件条件的限制,无法获取到更大视角的图像。虽然有可以拍摄出更大视角的广角相机或是超广角相机,但是这类相机的成本一般会比较高,而且操作起来会非常复杂,只有专业的人士才可以使用,在普通用户中很难推广。为了可以迎合大众在这方面的需求,利用图像拼接获取广视角图像的科研方向逐步发展起来。
之前的图像拼接方法都是在欧氏空间操作,得到的图像可能会有扭曲的产生,本发明的操作基本都是在流形空间中进行,可以有效避免在欧氏空间中可能会产生的问题,从而得到一幅平滑而自然的拼接图像。
技术实现要素:
本发明的目的就是要利用流形优化的优势来实现图像的拼接,并得到一幅平滑自然的广角图像,提出了一种基于流形优化的图像拼接方法。
本发明的核心思想是将图像拼接的中的变换矩阵映射到流形空间去,在流形空间中通过一系列的优化插值得到最后的图像变换矩阵,然后再将该矩阵映射到欧氏空间并作用到变换图像上,最后将参照图像和变换图像融合到一起得到最后的广角图像;之所以将矩阵的操作放到流形空间是因为从李群的角度俩看,变换矩阵在欧氏空间中的加减运算是不合理的,容易产生奇异的结果,而在流形空间则会避免这样的情况,所以将变换矩阵的操作放入流形空间。
本发明的具体实现步骤如下:
一种基于流形优化的图像拼接方法,该方法包括以下步骤:
步骤一、将待拼接的两幅图像的重叠部分进行对齐;
其中,使用i1和i2来表示待拼接的两幅图像;
步骤1.1、求取待拼接的两幅图像的对应特征点;具体为:
首先使用特征点提取的算法检测图像i1和图像i2的特征点;然后进行粗匹配;再利用ransac算法进一步筛选出准确的匹配特征点;
步骤1.2、利用流形优化的方法获取图像变换矩阵,具体为:
步骤1.2.1、将图像i2网格化,即将图像i2为w×h个网格;
其中,w为宽,h为高,共m=w×h个网格;
步骤1.2.2、在流形空间中获取步骤1.2.1中w×h个网格的变换矩阵;
在流形空间中获取w×h个网格中的每一个网格的变换矩阵,具体通过迭代优化能量函数(1)来得到:
其中,m=w×h表示所有的网格数;i表示w×h个网格按行排列后的第i个网格;ni表示第i个网格内的所有匹配特征点数;
hi(xi)表示第i个网格每次迭代要更新的值,而xi就是hi(xi)在流形空间中的表示形式,第i个网格在每一次迭代后都会得到xi,将其转换到欧氏空间后利用
为了求解能量函数,令:
其中,yi(x)表示与第i个网格优化所涉及的所有能量项组成的向量;ni表示在第i个网格内的特征点对数;
将公式(2)带入公式(1)推出
步骤1.2.2,又具体包括如下子步骤:
步骤1.2.2.a、将y(x)按照泰勒公式展开,得到了如下公式(3):
其中,j(x)为y(x)的雅各比矩阵,如公式(4);m(0,x),即m(x1=0,x2=x),它的计算过程如公式(5)所示:
再将公式(3)带入
j(x)=j(0)+m(0,x)+o(||x||2)(6)
将公式(6)带入公式(3)得到(7):
(7)公式的近似表示为(8):
至此,网格y(x)优化的目标是为了找一个x0使得y(x0)≈0;将y(x0)=0带入公式(8)后,可得x0=-2(j(0)+j(x0))+*y(0);
其中,(j(0)+j(x0))+表示(j(0)+j(x0))的伪逆矩阵;从x0=-2(j(0)+j(x0))+*y(0)看出,求出j(0)和j(x0),可得x0;
步骤1.2.2.b、求解j(0);
将公式(2)带入公式(5),并令x=0得得
步骤1.2.2.b.a、通过公式(11)求解ji;
其中,
步骤1.2.2.b.b、通过公式(12)求解jw:
令特征点pi=[uivi1]t那么jw就可以表示为(13):
步骤1.2.2.b.c、通过公式(14)求解jg:
通过利用流形映射的方式,将(14)表示为(15);
jg=[[a1]v[a2]v…[a8]v](15)
[ai]v是将ai按行变换为一个向量;其中
步骤1.2.2.b.d、通过公式(16)求解
其中,
步骤1.2.2.b.e、通过公式(17)求解
令特征点qk=[ekrk1]t那么
由
步骤1.2.2.c、通过公式(19)求解j(x0);
将公式(2)带入公式(5),并令x=x0得公式(19):
其中
假设
令
令
从公式(22)和(23)看出,yi(x)和vi(x)都是由三个函数复合而成的,所以
步骤1.2.2.c.a、通过公式(24)求解
其中,
步骤1.2.2.c.b、通过公式(25)求解
令
步骤1.2.2.c.c、通过公式(27)求解
其中,
步骤1.2.2.c.d、通过公式(28)求解
令
由
计算出j(x0)和j(0)后,结合x0=-2(j(0)+j(x0))+*y(0)得到x0,然后利用黎曼指数函数将x0转换到欧氏空间,即h(x0);之后利用h(x0)更新
步骤1.2.2是一个网格在一次迭代过程中的计算,每一次迭代会将所有的网格变换矩阵更新一遍,然后再次迭代计算,一直到所有网格的x0的模长都小于阈值后停止迭代,此时每个网格得到的
步骤二、在流形空间中矫正非重叠部分的扭曲,得到变换后的图像;
步骤二之前的变换矩阵可以将图像i1和i2的重叠部分对齐,但是会让图像i2的非重叠部分产生投影扭曲,所以需要矫正这部分扭曲;
首先要利用之前的匹配特征点求取图像i2到i1的全局相似变换矩阵s,具体的公式如(30)和(31):
di=hi*(s)-1(30)
hi表示图像i2中第i个网格插值前的矩阵,
其中,pi表示第i个网格的网格中心点,pmin和pmax的计算是通过下面的公式(33):
o是图像i2原始状态对应点的中心点,o′是图像i2目标状态对应点的中心
点,用
但是由于插值操作是针对整幅图像的,重叠部分也发生了变换,为了可以使插值后的图像i2依然可以与图像i1对齐,需要对图像i1也网格化为w×h个网格,并按照公式(34)求解图像i1w×h个网格的变换矩阵:
其中,
步骤三、图像融合,具体基于步骤二得到变换后的图像,再利用线性融合的方式将这两幅图像融合到一起,得到了一幅包含更大视角的图像;
至此,从步骤一到步骤三,完成了一种基于流形空间的图像拼接方法。
有益效果
本发明一种基于流形优化的图像拼接方法,对比现有技术,具有以下特点:
(1)本发明所述方法与传统欧氏空间的图像拼接方法相比,拼接的效果会更加自然平滑;之前的图像拼接方法都是在欧氏空间中操作图像的变换矩阵,例如变换矩阵的获取或是插值,但是从李群的角度来看,欧氏空间中的变换矩阵是不可以相加减的,那么诸如插值这样的操作如果放到欧氏空间中的话很容易就会产生奇异的结果,反映到图像上就是扭曲;而本发明将其放入流形空间中就避免了这种情况。
(2)本发明所述方法与传统欧氏空间的图像拼接方法相比,处理效率也会有所提升;从欧氏空间转换到流形空间,向量的维度会有所降低,这样就大大减小了优化过程中的计算量,计算的速度会更快。
附图说明
图1是本发明一种基于流形优化的图像拼接方法及实施例1中的流程示意图。
具体实施方式
下面结合附图和实施例对本发明所述方法的具体实施做详细说明。
实施例1
本实施例叙述了本发明一种基于流形优化的图像拼接方法的具体实现过程。图1本实施例的实现流程示意图。
从图1中可以看出,本发明及本实施例的具体实现步骤如下:
步骤a、将图像的重叠部分进行对齐;
在本次的步骤说明中使用i1和i2来表示待拼接的两幅图像;
步骤a.1、求取两幅图像的对应特征点;具体为:
首先使用sift(lowedg.objectrecognitionfromlocalscale-invariantfeatures[c]//computervision,1999.theproceedingsoftheseventhieeeinternationalconferenceon.ieee,1999,2:1150-1157.)算法检测图像i1和图像i2的特征点;然后进行粗匹配;再利用ransac算法进一步筛选出准确的匹配特征点;。
步骤a.2、利用流形优化的方法获取图像变换矩阵,具体为:
步骤a.2.1、将图像i2网格化,即将图像i2为w×h个网格;
其中,w=50为宽,h=50为高,共m=w×h=2500个网格;
步骤a.2.2、在流形空间中获取步骤a.2.1中w×h个网格的变换矩阵;
在流形空间中获取w×h个网格中的每一个网格的变换矩阵,具体通过迭代优化能量函数(35)来得到:
其中,m=50×50=2500表示所有的网格数;i表示50×50个网格按行排列后的第i个网格;ni表示第i个网格内的所有匹配特征点数;
hi(xi)表示第i个网格每次迭代要更新的值,而xi就是hi(xi)在流形空间中的表示形式,第i个网格在每一次迭代后都会得到xi,将其转换到欧氏空间后利用
为了求解能量函数,令:
其中,yi(x)表示与第i个网格优化所涉及的所有能量项组成的向量;ni表示在第i个网格内的特征点对数;
将公式(36)带入公式(35)推出
步骤a.2.2,又具体包括如下子步骤:
步骤a.2.2.a、将y(x)按照泰勒公式展开,得到了如下公式(37):
其中,j(x)为y(x)的雅各比矩阵,如公式(38);m(0,x),即m(x1=0,x2=x),它的计算过程如公式(39)所示:
再将公式(37)带入
j(x)=j(0)+m(0,x)+o(||x||2)(40)
将公式(40)带入公式(37)得到(41):
(41)公式的近似表示为(42):
至此,网格y(x)优化的目标是为了找一个x0使得y(x0)≈0;将y(x0)=0带入公式(42)后,可得x0=-2(j(0)+j(x0))+*y(0);
其中,(j(0)+j(x0))+表示(j(0)+j(x0))的伪逆矩阵;从x0=-2(j(0)+j(x0))+*y(0)看出,求出j(0)和j(x0),可得x0;
步骤a.2.2.b、求解j(0);
将公式(36)带入公式(39),并令x=0得
步骤a.2.2.b.a、通过公式(45)求解ji;
其中,
步骤a.2.2.b.b、通过公式(46)求解jw:
令特征点pi=[uivi1]t那么jw就可以表示为(47):
步骤a.2.2.b.c、通过公式(48)求解jg:
通过利用流形映射的方式,将(48)变换为(49);
jg=[[a1]v[a2]v…[a8]v](49)
[ai]v是将ai按行变换为一个向量;其中
步骤a.2.2.b.d、通过公式(50)求解
其中,
步骤a.2.2.b.e、通过公式(51)求解
令特征点qk=[ekrk1]t那么
由
步骤1.2.2.c、求解j(x0);
将公式(36)带入公式(39),并令x=x0得公式(53):
其中
假设
令
令
从公式(22)和(23)看出,yi(x)和vi(x)都是由三个函数复合而成的,所以
步骤a.2.2.c.a、通过公式(58)求解
其中,
步骤a.2.2.c.b、通过公式(59)求解
令
步骤a.2.2.c.c、通过公式(61)求解
其中,
步骤a.2.2.c.d、通过公式(62)求解
令
由
计算出j(x0)和j(0)后,结合x0=-2(j(0)+j(x0))+*y(0)得到x0,然后利用黎曼指数函数将x0转换到欧氏空间,即h(x0);之后利用h(x0)更新
步骤1.2.2是一个网格在一次迭代过程中的计算,每一次迭代会将所有的网格变换矩阵更新一遍,然后再次迭代计算,一直到所有网格的x0的模长都小于阈值后停止迭代,阈值设为0.1,此时每个网格得到的
步骤b、在流形空间中矫正非重叠部分的扭曲;
之前的变换矩阵可以将图像i1和i2的重叠部分对齐,但是会让图像i2的非重叠部分产生投影扭曲,所以需要矫正这部分扭曲;
首先要利用之前的匹配特征点求取图像i2到i1的全局相似变换矩阵s,具体的公式如(64)和(65):
di=hi*(s)-1(64)
hi表示图像i2中第i个网格插值前的矩阵,
其中,pi表示第i个网格的网格中心点,pmin和pmax的计算是通过下面的公式(67):
o是图像i2原始状态对应点的中心点,o′是图像i2目标状态对应点的中心点,用
但是由于插值操作是针对整幅图像的,重叠部分也发生了变换,为了可以使插值后的图像i2依然可以与图像i1对齐,需要对图像i1也网格化50×50个网格,并按照公式(68)求解图像i150×50个网格的变换矩阵:
其中,
步骤c、图像融合,具体基于步骤b得到变换后的图像i1和i2,再利用线性融合的方式将这两幅图像融合到一起,得到了一幅包含更大视角的图像;
按照步骤a到步骤c中方法,就可以将两幅不同视角拍摄的图像拼接成一幅广视角的图像。相比于之前的拼接方法,本发明将变换矩阵的一系列操作都放到流形空间中去执行,由此避免了欧氏空间中的很多限制,最后得到的拼接图像相比之前的方法也会更加平滑自然。
为了说明本发明的内容及实施方法,本说明书给出了一个具体实施例。在实施例中引入细节的目的不是限制权利要求书的范围,而是帮助理解本发明所述方法。本领域的技术人员应理解:不脱离本发明及其所附权利要求的精神和范围内,对最佳实施例步骤的各种修改、变化或替换都是可能的。因此,本发明不应局限于最佳实施例及附图所公开的内容。