CN101540046B - 基于图像特征的全景图拼接方法和装置 - Google Patents

基于图像特征的全景图拼接方法和装置 Download PDF

Info

Publication number
CN101540046B
CN101540046B CN2009101312584A CN200910131258A CN101540046B CN 101540046 B CN101540046 B CN 101540046B CN 2009101312584 A CN2009101312584 A CN 2009101312584A CN 200910131258 A CN200910131258 A CN 200910131258A CN 101540046 B CN101540046 B CN 101540046B
Authority
CN
China
Prior art keywords
mrow
mtd
segment
image
msup
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009101312584A
Other languages
English (en)
Other versions
CN101540046A (zh
Inventor
贾柳燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING SUNPLUS-EHUE TECHNOLOGY Co Ltd
Sunplus mMobile Inc
Original Assignee
BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd
Sunplus mMobile Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd, Sunplus mMobile Inc filed Critical BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd
Priority to CN2009101312584A priority Critical patent/CN101540046B/zh
Publication of CN101540046A publication Critical patent/CN101540046A/zh
Application granted granted Critical
Publication of CN101540046B publication Critical patent/CN101540046B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

本发明公开了一种基于图像特征的全景图拼接方法和装置。所述方法以相同的划分方式,将待拼接的两幅图像的重叠区划分为多个大小相同的分段,每次只对一个分段进行滤波处理,从而减少了滤波过程中所需暂存器的空间。进一步地,本发明在图像融合过程中多次计算仿射矩阵,采用误差最小的仿射矩阵进行图像融合处理,提高了仿射矩阵的准确性,从而进一步提高了拼接后的图像质量。

Description

基于图像特征的全景图拼接方法和装置
技术领域
本发明涉及图像处理技术,具体涉及基于图像特征的全景图拼接方法和装置。
背景技术
目前,数字相机、带有照相摄像功能的手机、掌上电脑等摄像产品已成为了市场上的主流产品,由于摄像镜头都具有视角限制的问题,无法摄取到视野宽广的全景照片,因此需要相片拍摄完毕后,在计算机上进行后期图像拼接处理,从而将多幅相片组合成一幅宽角度全景图。但是,这种后期处理方式不够实时,处理过程需要借助计算机,传输线等设备,用户体验不佳。因此,能够时实进行全景图拼接技术应运而生。
全景图拼接技术是指利用相机平移或旋转,拍摄得到一个相邻照片之间有部分重叠的图像序列,通过适当的方法组合这些序列图像生成一个全方位图像的场景绘制方法。
当前,全景成像方法通常分为三步骤:第一步图像采集,第二步图像匹配,第三步图像融合。
其中,图像采集步骤,是指拍摄有重叠区的图像序列。在图像采集过程中,先后拍摄两幅图像,提取这两幅图像的重叠区,对重叠区进行第二步的图像匹配和第三步的图像融合。
图像匹配步骤,就是在反映同一场景的一对图像间建立视觉相关性,从而将采用不同坐标系的两幅图像合成为同一坐标系下的一幅图像,进而再把这幅得到的新图像与另一幅合成一幅图像,最终把一个同一场景的序列图像合成为同一坐标系下的全维场景。图像匹配问题的核心是:寻找一个坐标变换,使相邻图像之间相重叠的部分对准并“缝合”成一个新的更大的视图。
图像匹配过程包括:
1、特征点的提取:通常采样harris角检测技术进行两幅图像重叠区的特征点提取,计算过程中计算重叠区每一个像素(x,y)在x和y方向各自一阶导数的平方以及x方向一阶导数和y方向一阶导数的乘积,分别定义为lx2、ly2及lxy,且用暂存器保存这三项数据,然后分别对这三项数据进行高斯滤波。然后,对于重叠区中的每一个像素,利用harris角检测的相关公式和滤波后的值计算每个像素的角点值R,根据角点值R计算结果提取特征点。
2、特征点的匹配:从两幅图像内的特征点中确定出匹配对,匹配对由两幅图像内的相似性较强的特征点构成。
3、图像间点变换矩阵的估算:从各匹配对中随机抽取若干个匹配对,采用抽取的匹配对估算出两幅图像的图像间点变换矩阵,这里称为仿射矩阵M,采用该仿射矩阵可以将一幅图像采用另一幅图像的坐标表示。
图像融合步骤,就是利用仿射矩阵M将一幅图像映射到另一幅图像上,令两幅图像采用相同的坐标系,从效果上讲是令两幅相邻图像之间存在重叠区的图像对齐。然后,采用融合算法消除重叠区图像光强或色彩突变,让两幅图像在拼接处的光强平滑过渡。
至此,完成了两幅图像的拼接。
但从以上方案可见,现有的全景图拼接存在以下问题:
首先,在特征点的提取步骤中,现有技术会一次性输入两幅图像的整个重叠区进行计算,因此需要较大容量的暂存器保存中间值lx2、ly2及lxy。例如重叠区域的高度H=480,宽度W=160,滤波后的值一个像素用4个byte存储,那么lx2所需暂存器为480×160×4=307200byte,即307.2k,同样ly2与lxy也分别要用307.2k的暂存器,那么共需暂存器空间307.2×3=921.6k。通常,暂存器由内存实现,而对于数字成像设备来说,内存空间有限,因此占用大量的暂存器会影响其它运行的速度。如果扩大内存一满足暂存器的需要,则增加了数字成像设备的成本。
此外,在计算仿射矩阵M的步骤中,现有技术会从多个匹配对中随机抽取若干对匹配对,用于估算仿射矩阵M,但是这种随机抽取的方式难免会多次重复的抽取同样的匹配对,造成仿射矩阵M的不准确,从而降低了拼接图像的质量,并且浪费估计的时间。即使抽取到若干个匹配对不重复,也不能保证当前抽取的若干个匹配对计算得到的仿射矩阵M为最佳。
发明内容
有鉴于此,本发明提供了一种基于图像特征的全景图拼接方法,能够减少所需暂存器的空间。
该方法包括图像采集步骤、图像匹配步骤和图像融合步骤;图像匹配步骤包括特征点提取、特征点匹配和图像间点变换的估计;
所述特征点提取步骤包括:
以相同的划分方式,将待拼接的图像F和图像G的重叠区划分为多个大小相同的分段;
从图像F的重叠区和图像G的重叠区获取一个未处理分段,针对获取的每个分段,计算该分段中每个像素在x方向一阶导数的平方lx2、每个像素在y方向一阶导数的平方ly2、以及每个像素在x方向一阶导数和y方向一阶导数的乘积lxy,将计算得到的lx2、ly2和lxy保存到暂存器中;所述暂存器中由lx2、ly2和lxy分别组成的集合称为当前处理分段的子分段;
对暂存器中保存的各子分段进行高斯滤波,得到滤波结果;滤波模板为m×m,m为奇数;对当前子分段滤波时,对于当前子分段中与相邻子分段邻接的
Figure G2009101312584D00031
行或列,借助相邻子分段的数据执行所述滤波;
根据所述滤波结果计算当前处理分段中每个像素的角点值,根据角点值计算结果提取图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′);
返回执行所述获取一个未处理分段的操作,直到处理完所有分段。
较佳地,所述重叠区高度为H,宽度为W;所述划分为多个大小相同的分段为:将重叠区划分为多个高度为N,宽度为W的分段,该分段中的一行称为一个序列,H为N的整数倍;或者将重叠区划分为多个高度为H,宽度为N的分段,该分段中的一列称为一个序列,W为N的整数倍;所述N为正整数;
所述对于当前子分段中与相邻子分段邻接的行或列像素,借助相邻子分段的像素执行所述滤波,包括:
处理图像中第一个分段中的每个子分段时,对当前子分段的前
Figure G2009101312584D00042
个序列置零输出;对当前子分段的第
Figure G2009101312584D00043
个序列到第
Figure G2009101312584D00044
个序列进行滤波,输出滤波结果;保存当前子分段的末m-1个序列的数据;
处理图像中非第一个也非最后一个分段中的每个子分段时,针对当前子分段,利用处理上一个相邻子分段时保存的m-1个序列数据和当前子分段,对所述上一个子分段中的末
Figure G2009101312584D00045
个序列和当前子分段中的前
Figure G2009101312584D00046
个序列进行滤波处理,输出滤波结果;保存当前子分段的末m-1个序列的数据;
处理图像中最后一个分段中的每个子分段时,针对当前子分段,利用处理上一个相邻子分段时保存的m-1个序列数据和当前子分段,对上一个相邻子分段中的末
Figure G2009101312584D00047
个序列和当前子分段中的前
Figure G2009101312584D00048
个序列进行滤波处理,输出滤波结果;对当前子分段的末个序列置零输出。
其中,所述对暂存器中保存的各子分段进行高斯滤波,得到滤波结果为:
逐一对暂存器中保存的三个子分段进行高斯滤波,将滤波结果保存到所述暂存器中;
或者,针对当前处理分段中的每一个像素点,同时对暂存器中保存的三个子分段中的该像素点执行高斯滤波,得到该像素点对应的滤波后lx2、滤波后ly2和滤波后lxy,以便后续角点值计算步骤根据这三个滤波后的值计算该像素点的角点值。
其中,所述特征点匹配步骤包括:
根据提取的特征点,采用相关性公式计算图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′)之间的相关系数,将相关系数大于预设匹配对提取门限的特征点对确定为匹配对;所述相关性公式为:
P [ ( x , y ) , ( x ′ , y ′ ) ] = Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 ( f x ± j , y ± k × g x ′ ± j , y ′ ± k ) - MN f ‾ × g ‾ Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k 2 - MN f ‾ 2 Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k 2 - MN g ‾ 2 ;
其中, f ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k , g ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k , P[(x,y),(x′,y′)]为相关系数,M×N表示相关系数计算时采用的模板大小;fx±j,y±k和gx′±j,y′±k分别表示图像F和图像G中的像素。
所述图像间点变换的估计为:
从特征点匹配步骤确定的匹配对中抽取3个不重复的匹配对;
将抽取的匹配对代入图像间点变换式,计算图像F和图像G之间的仿射矩阵M;所述图像间点变换式为:
x y 1 = M x ′ y ′ 1 = m 0 m 1 m 2 m 3 m 4 m 5 0 0 1 x ′ y ′ 1 .
较佳地,所述从所确定的匹配对中抽取3个不重复的匹配对为:
设定间隔步长为i;第一次从所确定的匹配对抽取第P0个匹配对;第二次抽取第P0+i个匹配对,并令i=i+A,A为整数且大于1;第三次抽取第P0+i个匹配对;在抽取过程中,如果P0+i大于或等于匹配对的总数,则重新设定另一个值作为A,继续执行所述抽取操作。
较佳地,所述将抽取的匹配对代入图像间点变换式,计算图像F和图像G之间的仿射矩阵M为:
设共有n个匹配对,采用抽取的3个匹配对代入图像间点变换式,计算出仿射矩阵,记为M1;将其余n-3个匹配对中的f(xm,ym)分别代入采用M1表示的图像间点变换式中,得到f(xm,ym)映射到图像G上的计算值g(x″m,y″m),获取计算值g(x″m,y″m)与实际值g(x′m,y′m)之间的误差;计算所述其余n-3个匹配对的误差累加和;
多次执行匹配对的抽取、计算仿射矩阵以及计算误差累加和的操作,将误差累加和最小者对应的仿射矩阵作为图像F和图像G之间的仿射矩阵。
本发明还提供了一种基于图像特征的全景图拼接装置,能够减少所需暂存器的空间。
该装置包括:用于采集图像并将图像提供给缓存单元的成像单元、用于缓存待拼接的图像F和图像G的缓存单元、用于根据所述缓存单元缓存的图像F和图像G获取图像间点变换矩阵的图像匹配单元、以及利用图像间点变换矩阵进行图像变换并融合的图像融合单元;
所述图像匹配单元包括特征点提取模块、特征点匹配模块和图像间点变换估计模块;
所述特征点提取模块包括分段获取子模块、滤波子模块、提取子模块和暂存器;其中,
所述分段获取子模块,用于以相同的划分方式,将待拼接的图像F和图像G的重叠区划分为多个大小相同的分段;从缓存单元保存的图像F和图像G中,获取重叠区中的一个未处理分段,针对获取的每个分段,计算该分段中每个像素在x方向一阶导数的平方lx2,每个像素在y方向一阶导数的平方ly2,以及每个像素在x方向一阶导数和y方向一阶导数的乘积lxy,将计算得到的lx2、ly2和lxy保存到所述暂存器中;所述暂存器中分别由lx2、ly2和lxy组成的集合称为当前处理分段的子分段;
所述滤波子模块,用于对暂存器中保存的各子分段进行高斯滤波,得到滤波结果;滤波模板为m×m,m为奇数;对当前子分段滤波时,对于当前子分段中与相邻子分段邻接的
Figure G2009101312584D00061
行或列,借助相邻子分段的数据执行所述滤波;
所述提取子模块,用于根据所述滤波子模块得到的滤波结果计算当前处理分段中每个像素的角点值,根据角点值计算结果提取图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′);通知所述分段获取子模块对下一个未处理分段进行处理,直到处理完所有分段;
所述特征点匹配模块,用于从所述提取子模块确定的特征点中选择出匹配对;
所述图像间点变换估计模块,用于采用所述特征点匹配模块选择的匹配对估计图像间点变换矩阵。
较佳地,所述重叠区高度为H,宽度为W;所述分段获取子模块将重叠区划分为多个高度为N,宽度为W的分段,分段中的一行称为一个序列,H为N的整数倍;或者将重叠区划分为多个高度为H,宽度为N的分段,分段中的一列称为一个序列,W为N的整数倍;所述N为正整数;
所述滤波子模块处理图像中第一个分段中的每个子分段时,针对当前子分段,对当前子分段的前
Figure G2009101312584D00071
个序列置零输出;对当前子分段的第
Figure G2009101312584D00072
个序列到第个序列进行滤波,输出滤波结果;将当前子分段的末m-1个序列的数据保存到所述暂存器中;
处理图像中非第一个也非最后一个分段中的每个子分段时,针对当前子分段,利用暂存器保存的上一个相邻子分段的末m-1个序列的数据和当前子分段,对上一个相邻子分段中的末
Figure G2009101312584D00074
个序列和当前子分段中的前
Figure G2009101312584D00075
个序列进行滤波处理,输出滤波结果;将当前子分段的末m-1个序列的数据保存到所述暂存器中;
处理图像中最后一个分段中的每个子分段时,针对当前子分段,利用暂存器保存的上一个相邻子分段的末m-1个序列的数据和当前子分段,对上一个相邻子分段中的末
Figure G2009101312584D00076
个序列和当前子分段中的前
Figure G2009101312584D00077
个序列进行滤波处理,输出滤波结果;对当前子分段的末
Figure G2009101312584D00078
个序列置零输出。
其中,所述滤波子模块对暂存器中保存的各子分段进行高斯滤波时,
逐一对所述暂存器中保存的三个子分段进行高斯滤波,将滤波结果保存到所述暂存器中,供所述提取子模块提取;
或者,针对当前处理分段中的每一个像素点,同时对所述暂存器中保存的三个子分段中的该像素点执行高斯滤波,得到该像素点对应的滤波后lx2、滤波后ly2和滤波后lxy,将这三个滤波后的值一并发送给所述提取子模块。
其中,所述特征点匹配模块用于根据所述提取子模块提取的特征点,采用相关性公式计算图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′)之间的相关系数,将相关系数大于预设匹配对提取门限的特征点对确定为匹配对;所述相关性公式为:
P [ ( x , y ) , ( x ′ , y ′ ) ] = Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 ( f x ± j , y ± k × g x ′ ± j , y ′ ± k ) - MN f ‾ × g ‾ Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k 2 - MN f ‾ 2 Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k 2 - MN g ‾ 2 ;
其中, f ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k , g ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k , P[(x,y),(x′,y′)]为相关系数,M×N表示相关系数计算时采用的模板大小;fx±j,y±k和gx′±j,y′±k分别表示图像F和图像G中的像素。
其中,所述图像间点变换估计模块包括抽取子模块和估计子模块;
所述抽取子模块,用于从所述特征点匹配模块确定的匹配对中抽取3个不重复的匹配对;
所述估计子模块,用于将所述抽取子模块抽取的匹配对代入图像间点变换式,计算图像F和图像G之间的仿射矩阵M;所述图像间点变换式为:
x y 1 = M x ′ y ′ 1 = m 0 m 1 m 2 m 3 m 4 m 5 0 0 1 x ′ y ′ 1 .
较佳地,所述图像间点变换估计模块进一步包括误差比较子模块;
设共有n个匹配对,所述误差比较子模块获取估计子模块计算得到仿射矩阵,记为M1,将其余n-3个匹配对中的f(xm,ym)分别代入采用M1表示的图像间点变换式中,得到f(xm,ym)映射到图像G上的计算值g(x″m,y″m),获取计算值g(x″m,y″m)与实际值g(x′m,y′m)之间的误差;计算所述其余n-3个匹配对的误差累加和并记录;
通知所述抽取子模块和所述估计子模块再次执行其自身操作,采用估计子模块计算得到的仿射矩阵执行计算并记录误差累加和的操作;继续循环执行所述通知以及计算并记录误差累加和的操作;直到误差比较子模块记录的误差累加和的个数达到设定数目时,将误差累加和最小者对应的仿射矩阵输出给所述图像融合单元。
较佳地,所述抽取子模块每次抽取3个不重复的匹配对时,第一次从各匹配对抽取中第P0个匹配对;第二次抽取第P0+i个匹配对,i为间隔步长,令i=i+A,A为整数且大于1;第三次抽取第P0+i个匹配对;在抽取过程中,如果P0+i大于或等于匹配对的总数,则重新设定另一个值作为A,继续执行所述抽取操作。
根据以上技术方案可见,本发明能够将待拼接图像的重叠区进行分段划分,每次只对一个分段进行滤波处理,从而减少了滤波过程中所需暂存器的空间。
进一步地,在图像融合过程中,多次计算仿射矩阵,采用误差最小的仿射矩阵进行图像融合处理,提高了仿射矩阵的准确性,从而进一步提高了拼接后的图像质量。
再进一步地,本发明还采用不重复采样的方法替换现有技术中的随机抽取的方法,采样若干个不重复的匹配对计算仿射矩阵,进一步提高仿射矩阵的准确性。
附图说明
图1为本发明实施例中分段滤波时考虑边界的处理效果示意图。
图2为本发明实施例中基于图像特征的全景图拼接装置的结构示意图。
图3为图2中图像匹配单元50的结构示意图。
图4为图3中图像间点变换估计模块56的结构示意图。
具体实施方式
本发明为一种基于图像特征的全景图拼接方案,其基本思想为:采用相同的划分方式,将待拼接的两幅图像的重叠区划分为多个大小相同的分段,每次只对一个分段进行滤波处理,从而减少了滤波过程中所需暂存器的空间。
进一步地,在图像融合过程中,多次计算仿射矩阵,采用误差最小的仿射矩阵进行图像融合处理,提高了仿射矩阵的准确性,从而进一步提高了拼接后的图像质量。
再进一步地,本发明还采用不重复采样的方法替换现有技术中的随机抽取的方法,采样若干个不重复的匹配对计算仿射矩阵,进一步提高仿射矩阵的准确性。
下面结合附图并举实施例,对本发明进行详细描述。本发明的全景图拼接方案仍然包括图像采集步骤,图像匹配步骤和图像融合步骤,其大致流程为:
在图像采集中使用缓冲器1和缓存器2实现图像存储。采集步骤为,先拍摄第一幅图像,存储在缓存器1中,且定义为前一幅图像;再拍摄第二幅图像,存储在缓存器2中,并定义为当前图像;然后在图像匹配和图像融合步骤中对缓冲器1和缓存器2中的两幅图像进行拼接,拼接结果存储在缓存器1中,并定义为前一幅图像;如果需要继续拍摄,则拍摄第三副图像,并作为当前图像存储在缓存器2中,然后在图像匹配和图像融合步骤中对缓冲器1和缓存器2中的两幅图像进行拼接。直到拍摄完毕,最终形成一幅全景图像。
这里定义前一幅图像为F,当前图像为G。图像F和图像G是在相机平移或旋转情况下拍摄的具有重叠区的两幅图像,图像F还可能是两幅或两幅以上图像的拼接结果图。图像F和图像G为待拼接图像。由于不同时刻拍摄的图像坐标不一致,因此图像F的像素表示为f(x,y),图像G的像素表示为g(x′,y′)。
下面对本发明的图像匹配步骤进行详细描述。本发明的图像匹配步骤仍然包括步骤1特征点的提取、步骤2特征点的匹配和步骤3图像间点变换矩阵的估计。
针对步骤1:本发明实施例采用Harris角点检测的方法,实现过程如下:
步骤10:将待拼接的前一幅图像F与当前图像G的重叠区沿同一轴向方向划分为多个大小相同的分段。
划分分段可以为沿X轴划分,也可以为沿Y轴划分。本实施例以沿Y轴划分为例,假设重叠区的大小为H×W,H为重叠区高度,W为重叠区宽度。将重叠区划分为多个高为N,宽为W的分段,高度H为N的整数倍,N为正整数。
该划分步骤并不是一个实际的处理步骤,设置分段行数N就是分段。
其中,重叠区的选定可以采用各种方式,例如分别选择图像F中距离右边缘的1/4部分图像和图像G中距离左边缘的1/4部分图像分别作为图像F和图像G的重叠区。
步骤11、从存储器1和存储器2中获取重叠区图像中一个未处理分段,每次仅获取一个分段,可以先处理存储器1中图像F重叠区的各分段,再处理存储器2中图像G重叠区的各分段。针对获取的每个分段,计算该分段中每个像素在x方向一阶导数的平方lx2、每个像素在y方向一阶导数的平方ly2、以及每个像素在x方向一阶导数(lx)和y方向一阶导数(ly)的乘积,记为lxy,将计算得到的lx2、ly2和lxy保存到暂存器中。暂存器中分别由lx2、ly2和lxy组成的集合称为当前处理分段的子分段,即一个分段经本步骤的操作后,形成由lx2组成的一个子分段、由ly2组成的一个子分段、以及由lxy组成的一个子分段。
步骤12:滤波环节。
对暂存器中保存的分别由lx2、ly2和lxy组成的三个子分段进行高斯滤波,得到滤波结果。其中,滤波模板为m×m,m为奇数。
对当前子分段滤波时,对于当前子分段中与相邻子分段邻接的
Figure G2009101312584D00121
行数据(如果沿X轴分段,则为当前子分段中与相邻子分段邻接的
Figure G2009101312584D00122
列数据),借助相邻子分段的数据执行所述滤波,并将滤波后的值保存到暂存器中,然后提供给下一个处理环节——角点值计算环节进行处理。
lx2、ly2、lxy以及滤波后的lx2、ly2、lxy需要分别保存在不同的暂存器或相同暂存器的不同位置中。数字成像设备通常至少有4个暂存器,针对每次处理的N行像素,这4个暂存器使用方式为:第1暂存器存储N行像素的lx2,第2暂存器存储N行像素的ly2,第3暂存器存储N行像素的lxy;调出第1暂存器存储的lx2,对其进行高斯滤波,滤波后的值存入第4暂存器;调出第2暂存器存储的ly2,对其进行高斯滤波,滤波后的值存入第1暂存器;调出第3暂存器的lxy,对其进行高斯滤波,滤波后的值存入第2暂存器;此时第3暂存器为空。然后将第1、2和4暂存器中的值送入角点值计算环节进行处理。当对下一个N行像素进行处理时,先将lx2存储第3暂存器,以此类推,使得4个暂存器依次循环使用,这样可以减少暂存器空间,提高暂存器的使用效率。
以上滤波过程是逐一对暂存器中保存的三个子分段进行高斯滤波,再将滤波结果保存到暂存器中,供后续角点值计算环节提取。或者,为了进一步节省暂存器空间,各个滤波后的值可以不再进行保存,直接送入角点值计算环节,例如在滤波阶段不是对一个子分段滤波完成,再处理另一个子分段,而是针对当前处理分段中的每一个像素点(x,y),同时对暂存器中保存的三个子分段中的该像素点(x,y)执行高斯滤波,得到三个滤波后的值,分别为该像素点(x,y)对应的滤波后lx2、滤波后ly2和滤波后lxy,将这三个滤波后的值送入角点值计算环节,由角点值计算环节根据这三个滤波后的值计算出该像素点(x,y)的角点值,采用该方式对每个点进行处理,这样,就无需在暂存器中保存滤波后的值,只需要3个暂存器就可以实现滤波过程的暂存处理,无需循环使用。
本步骤中的高斯滤波中滤波器(gaussfilter)可以采用5×5的模版,例如:
gaussfilter = 1 4 7 4 1 4 16 26 16 4 7 26 41 26 7 4 16 26 16 4 1 4 7 4 1
假设当前滤波点为q(x,y)(q(x,y)表示由lx2、ly2或lxy组成的子分段中的点)。由于本发明滤波采用的是m=5的5×5模版,那么对该点进行滤波时,需要用到q(x,y)附近的24个点,即q(x±1,y)、q(x,y±1)、q(x±2,y)、q(x,y±2)、q(x±2,y±1)、q(x±1,y±2)、q(x±1,y±1)和q(x±2,y±2)。也就是说对当前点q(x,y)进行滤波时,需要借助其上下2行和左右2列的数据。如果m为其它值,则需要借助上下
Figure G2009101312584D00132
行和左右
Figure G2009101312584D00133
列的数据。
由于该实施例采用沿Y轴划分为例,因此在进行分段处理的时候,借助左右2列的数据很容易处理,而借助上下2行时需要考虑边界的问题。而且本实施例采用m=5的5×5模版,根据
Figure G2009101312584D00134
的计算原则,对于某一子分段中与其它子分段邻接的2行数据,需要特殊处理,具体来说:
对于图像中的第一个分段中的各子分段,首两行可以按照现有技术处理,末两行借助下一相邻子分段的数据执行滤波;对于最后一个分段中的各子分段,首两行借助上一相邻子分段的数据执行滤波,末两行可以按照现有技术处理;而对于位于中间的分段(非第一个也非最后一个分段),其子分段的首两行和末两行都需借助相邻子分段的数据执行滤波。其中,所述相邻是指子分段在图像中的位置相邻。
下面给出了一种采用5×5模板进行分段滤波中考虑边界的处理方法,包括:
处理图像中的第一个分段中的每个子分段时,对当前子分段的首两行不作滤波处理,直接输出两行零;同时当前子分段的末两行也不做计算处理,将末两行的滤波处理需要用到的末4行(采用m-1计算,m=5)的数据保存,这几行数据可以保存在暂存器中,并且在输出时不输出末两行的滤波结果。对当前子分段的第3行(采用 m - 1 2 + 1 = m - 1 2 计算,m=5)到第(N-2)行(采用 N - m - 1 2 = 2 N - ( m - 1 ) 2 计算,m=5)进行滤波,输出滤波结果。可见,第一次计算处理总计输出(N-2)行的结果,且有两行为全零。
处理图像中非第一个也非最后一个分段中的每个子分段时,针对当前子分段,利用处理上一个相邻子分段时保存的4行数据和当前子分段,对上一个相邻子分段中的末两行和当前子分段中的前(N-2)行进行滤波处理,输出滤波结果;而对于末两行数据,将末两行的滤波处理需要用到的当前子分段末4行的数据保存,不输出末两行的滤波结果。可见,对于中间子分段,输出N行结果,但是其中有2行属于上一子分段。
处理图像中最后一个分段中的每个子分段时,针对当前子分段,利用处理上一个相邻子分段保存的4行数据和当前子分段,对上一个相邻子分段中的末两行和当前子分段中的前(N-2)行进行滤波处理,输出滤波结果;对当前子分段的末两行不做滤波处理,直接输出两行零,这两行零随其他行的计算结果作为本子分段的滤波结果一同输出。可见,最后一次计算处理总计输出(N+2)行的结果,其中有2行属于上一相邻子分段,且有两行为全零。
从本步骤可见,一张H×W的图像需要H/N次分别处理。这样,暂存器的保存空间由原来的H×W×4,转为N×W×4(一个像素用4个byte存储),大大节省了暂存器的空间。如果采用沿X轴的划分方法,将重叠区划分为多个高度为H,宽度为N的分段,则一张图需要W/N次分别处理,暂存器的保存空间转为H×N×4,同样大大节省了暂存器的空间。
为了便于理解,下面针对这种考虑边界的滤波方法,举一个实例:
图1为本发明实施例中分段滤波时考虑边界的处理效果示意图,如图1所示,设定H=24,W=160,N=8,沿Y轴划分分段,需要循环H/N=3次,采用5×5的滤波器;
第1次输入8行的像素数据,根据步骤11的计算过程,计算每个像素的lx2、ly2及lxy,进行滤波,第1、2行不进行计算,置零输出,第7、8行不进行计算和输出,保存第5-8行的数据。可见第一次输出6行数据,如图1中的虚线所示。
第2次输入N=8行的数据,首先处理上一分段的第7、8行,然后处理依次处理第二次输入的第9到第14行,第15、16行不进行计算和输出,保存13-16的数据。可见第二次输出8行数据,如图1中的实线所示。
第3次输入最后的8行,先处理上一分段的第15、16行,然后依次处理17-22行,第23、24行不进行计算,置零输出。可见第三次输出10行数据,如图1中的点画线所示。
如果不进行分段处理,而是一次输入整个图像,例如图像高度H=480,图像宽度W=160;那么计算过程中暂存lx2、ly2和lxy所需的暂存器空间为480×160×4×3=921600byte,即921.6k。而采用分段处理的方式,例如分段行数N=20,则按照上述过程,所需的暂存器空间为20×160×4×3+4×160×4×3=46080byte,即46.08k,那么暂存器所需空间是原来的5%。可见,通过分段处理可以大幅度地降低对暂存器的需要。
步骤13、角点值计算环节:根据步骤12输出的当前处理分段的滤波结果计算当前处理分段中每个像素的角点值。R值的计算方法如公式(2)所示:
R(x,y)=filterlx(x,y)×filterly(x,y)-filterlxy(x,y)2-α×(filterlx(x,y)+filterly(x,y))2    (2)
其中,filterlx(x,y)、filterly(x,y)和filterlxy(x,y)分别表示对lx2、ly2和lxy滤波后的数据,α为计算参数,通常范围值为0.04~0.06。
步骤14、特征点提取环节:根据角点值计算结果提取图像F中的特征点和图像G中的特征点。针对每个分段执行上述步骤11到步骤14的操作,从而得到重叠区中的所有特征点。
本步骤中,设定一个特征点提取门限(threshold1),将角点值R大于该特征点提取门限的像素作为特征点。本发明中采用的是动态设定threshold1的方法,即针对图像F和图像G中的像素,比较各像素的角点值R与threshold1,将角点值R大于threshold1的像素作为特征点,保存各特征点的位置。这些被保存的特征点包括图像F中重叠区内的特征点f(x,y),还包括图像G中重叠区内的特征点g(x′,y′)。
为了降低计算量,在寻找匹配的特征点时,可以减小搜索的区域或者利用其他计算相关的方法。
至此,完成了步骤1的特征提取。
针对步骤2:根据步骤1保存的特征点,采用相关性公式计算图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′)之间的相关系数P[(x,y),(x′,y′)],将相关系数P[(x,y),(x′,y′)]大于预设匹配对提取门限(threshold2)的特征点对确定为匹配对[(f(x,y),g(x′,y′)];相关性公式为:
P [ ( x , y ) , ( x ′ , y ′ ) ] = Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 ( f x ± j , y ± k - f ‾ ) ( g x ′ ± j , y ′ ± k - g ‾ ) Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 ( f x ± j , y ± k - f ‾ ) 2 Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 ( g x ′ ± j , y ′ ± k - g ‾ ) 2 - - ( 3 )
式(3)中, f ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k , g ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k , P[(x,y),(x′,y′)]为相关系数,M×N表示相关系数计算时采用的模板大小;fx±j,y±k和gx′±j,y′±k分别表示图像F和图像G中M×N模板内的像素,f和g表示M×N大小范围内各像素的平均值。
以上相关性公式的原理为:图像F与图像G各有一个特征点集合,这两个集合经步骤1的执行已经得到。在本步骤2中以图像F的特征点集合为基础,确定F中的每一个特征点,到G集合中每一个特征点的相关系数P。根据P值,确认F中的特征点f(xtz1,ytz1)在G中的匹配点,该匹配点为G中与f(xtz1,ytz1)相关性大于threshold2的特征点g(x′tzn,y′tzn),如果有多个匹配点,则选用相关性最佳的特征点。在采用公式(3)的计算中,F与G图像中以特征点为中心都要使用一个M×N(M和N均为奇数)的模板,也就是说计算两个特征点的相关性需要涉及到以特征点为中心的、M×N范围内的其他点。对于特征点的位置使模版超出重叠图像范围情况,忽略该特征点,对该特征点不进行相关系数P[(x,y),(x′,y′)]的计算。
但由于公式(3)计算量很大,因此对上述公式(3)进行了简化近似处理,即将括号中的系数乘开,并在保证不影响匹配结果的情况下,去除一些不必要的计算,简化后的公式如(4)所示:
P [ ( x , y ) , ( x ′ , y ′ ) ] = Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 ( f x ± j , y ± k × g x ′ ± j , y ′ ± k ) - MN f ‾ × g ‾ Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k 2 - MN f ‾ 2 Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k 2 - MN g ‾ 2 - - - ( 4 )
因此,本发明用公式(4)来计算相关系数P[(x,y),(x′,y′)],得到一组匹配对,在保证拼接效果的前提下,计算复杂度得到很大程度的降低,使得本发明具有更广泛的实际应用。
针对步骤3:使用模型估计得方法,计算上一幅图像F和当前图像G之间的仿射矩阵M,这两幅图之间的图像间点变换式可以用公式(5)表示:
x y 1 = M x ′ y ′ 1 = m 0 m 1 m 2 m 3 m 4 m 5 m 6 m 7 m 8 x ′ y ′ 1 - - - ( 5 )
式(5)中,m0到m8分别代表仿射矩阵M的8个系数,x和y为图像F的横、纵坐标,x′和y′为图像G的横、纵坐标。由于本发明采用的是仿射矩阵,m6、m7、m8的值是确定的,因此公式(5)简化为如公式(6):
x y 1 = M x ′ y ′ 1 = m 0 m 1 m 2 m 3 m 4 m 5 0 0 1 x ′ y ′ 1 - - - ( 6 )
在估计M的过程中,可以采用随机抽取的3对匹配对代入式(6)进行模型估计。但是,为了避免随机抽取可能会出现的重复抽取问题,本发明实施例采用隔点不重复采样的方法替换随机取点的方法,从多个匹配对中抽取3个不重复的匹配对,从而保证抽取的3对匹配对互不相同。
一种隔点不重复采样的实施方式为:设定间隔步长为i,每抽取依次,令i增大。假设共有n个匹配对,即第一个取第P0个匹配对,那么第二个就取第(P0+i)个匹配对,令i=i+A(A为整数,且大于1),第三个仍取第P0+i个匹配对,但是由于i变化,因此第二和第三个匹配对不相同。当(P0+i)大于或等于n时,重新设定另一个值作为A,继续执行抽取的操作。在实际中,i的增加方式可以为i×A,或者令i取随机值。
在估计矩阵M的过程中,所抽取的3对匹配对不一定是最佳匹配对,从而影响仿射矩阵的准确性。为此,本发明采用不同匹配对多次计算仿射矩阵,以寻求一个最佳仿射矩阵。
假设共有n个匹配对,用上面不重复取值的方法取3对匹配对,记为[f(x1,y1),g(x′1,y′1)]、[f(x2,y2),g(x′2,y′2)]及[f(x3,y3),g(x′3,y′3)],计算出一个仿射矩阵M1,然后把其余的(N-3)个匹配对中的f(xm,ym)分别代入矩阵M1表示公式6中,得到f(xm,ym)映射到图像G上的计算值g(x″m,y″m),获取计算值g(x″m,y″m)与实际值g(x′m,y′m)之间的误差ei,也就是匹配对[f(xm,ym),g(xm,ym)]与矩阵M1的欧几里德距离,对这(N-3)个匹配对的误差进行累加并保存此次误差累加和Ei
用上面所述隔点取值的方法,取与上一次完全不同或不完全相同的3对匹配对,用同样的方法计算,得到另一组误差累加和Ej,把Ei与Ej做比较,取比较小的误差和所对应的矩阵M执行后续融合操作。这样的算法更加精确了M的准确度。在实际中,可以三次、四次甚至更多次执行匹配对的抽取、计算仿射矩阵以及计算误差累加和的操作,将误差累加和最小的仿射矩阵执行后续融合操作。执行次数越多M的准确度越高,但计算负担也随之增加。
下面对本发明的图像融合进行详细描述。
图像融合可以采用取平均值法、渐入渐出方法及多分辨率样条法等等,鉴于平均值法效果不理想,而多分辨率样条法计算量大,本发明选择渐入渐出的方法,即加权平均的融合算法,目的是使被拼接的图像在拼接处能具有较好的过渡效果,具体为:
首先,利用公式(6)和矩阵M,将当前图像G映射到上一幅图像F的坐标系中,得到G’,其像素表示为g′(x,y),映射操作使得当前图像G与上一幅图像F存在的重叠区对齐。映射实际上是对整个图像G进行坐标变换处理。
然后,对上一幅图像F与映射后当前图像G’的重叠区进行像素融合,融合的方法如公式(7)所示:
fo(x,y)=βf(x,y)+(1-β)g′(x,y)    (7)
式中,β是动态加权系数,其求取方式为已知手段,例如β=T/W′,其中W′是实际重叠区域的宽度,T是当前处理点(x,y)到实际重叠位置左边边界之间的距离。本实施例是左右图像重叠,,如果上下图像重叠,就是前处理点(x,y)到实际重叠位置上边边界之间的距离,W′是实际重叠区域的高度。
之后,将两幅图像的融合图像存储在缓存器1中,再拍摄后续图像,然后采用上述过程将缓存器1中的融合图像与后续图像进行融合,从而达到全景图的拼接效果。
较佳地,在进行融合之前,把待融合的图像都投影到柱面坐标系,优点是提高拼接后图像的可视效果,并且减少图像之间由于变形引起的误差积累,但这种改进同时也会降低算法的性能。
为了实现上述基于图像特征的全景图拼接方法,本发明实施例还提供了一种全景图拼接装置。图2为本发明实施例中全景图拼接装置的结构示意图,该装置包括:用于采集图像的成像单元30、用于缓存待拼接的图像F和图像G的缓存单元40、用于根据存储单元40缓存的图像F和图像G获取图像间点变换矩阵即仿射矩阵M的图像匹配单元50、以及利用图像间点变换矩阵进行图像变换并进行融合处理的图像融合单元60。如图2所示,这些单元可以采用数据总线相连,本领域技术人员可以理解,这些单元的工作和之间的数据交互均是在控制部件的控制下完成,这里省略了对控制部件的描述。
全景图拼接装置中的成像单元30,用于拍摄景物且成像,将拍摄的图像存储到缓存单元40。
缓存单元40可以包括两个缓冲器,分别为缓冲器1和缓冲器2,分别用于缓存待拼接的图像F和图像G。成像单元30拍摄第一幅图像后,定义为图像F,存储在缓存器1中;拍摄第二幅图像后,定义为图像G,存储在缓存器2中。然后图像匹配单元50和图像融合单元60对缓冲器1和缓存器2中的两幅图像进行处理,待图像融合单元60将图像F和G拼接为一幅图像后,将其定义为图像F,并保存到缓存器1中。成像单元30拍摄下一幅图像,作为图像G保存到缓存器2中,然后图像匹配单元50和图像融合单元60对缓冲器1和缓存器2中的两幅图像进行拼接,以此类推,直到拍摄完毕,最终形成一幅全景图像。可见,缓冲器1有两个用途,第一是存储拍摄的第一张图像;第二是存储每次拼接后的图像;缓冲器2存储拍摄的当前图像。
图3为图2中图像匹配单元50的结构示意图。如图3所示,图像匹配单元50包括特征点提取模块、特征点匹配模块55和图像间点变换估计模块56;
特征点提取模块具体包括暂存器51、分段获取子模块52、滤波子模块53、以及提取子模块54。
其中,暂存器51可以有多个,每个暂存器存储不同类型的数据,或者采用一个暂存器的不同位置存储不同类型数据。采用本发明的分段方法可以节约暂存器51的使用空间。
分段获取子模块52,用于以相同的划分方式,将待拼接的图像F和图像G的重叠区划分为多个大小相同的分段;从缓存单元40保存的图像F和图像G中,获取重叠区中的一个未处理分段,针对获取的每个分段,计算该分段中每个像素在x方向的一阶导数的平方lx2,每个像素在y方向的一阶导数的平方ly2,以及每个像素在x方向一阶导数和y方向一阶导数的乘积lxy,将计算得到的lx2、ly2和lxy保存到暂存器51中。暂存器51中分别由lx2、ly2和lxy组成的集合称为当前处理分段的子分段。
滤波子模块53,用于对暂存器51中保存的各子分段进行高斯滤波,得到滤波结果;滤波模板为m×m,m为奇数;对当前子分段滤波时,对于当前子分段中与相邻子分段邻接的
Figure G2009101312584D00211
行或列,借助相邻子分段的数据执行所述滤波。在一个实施例中,滤波子模块53逐一对暂存器51中保存的当前处理分段对应的三个子分段进行高斯滤波,再将滤波结果保存到暂存器51中,供提取子模块54提取(如图3中的单箭头虚线所示),在这种情况下,暂存器51中的多个暂存空间可以循环使用,具体参见前面方法实施例的描述,从而进一步节省暂存器51的空间。在另一实施例中,滤波子模块53针对当前处理分段中的每个像素点(x,y),同时对暂存器51中保存的三个子分段中的该像素点(x,y)执行高斯滤波,得到该像素点(x,y)对应的滤波后lx2、滤波后ly2和滤波后lxy,将这三个滤波后的值一并发送给提取子模块54,使得提取子模块54能够根据这三个数据计算该像素点(x,y)的角点值。
提取子模块54,用于根据滤波子模块53得到的滤波结果计算当前处理分段中每个像素的角点值,根据角点值计算结果提取图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′)。
当重叠区高度为H,宽度为W,且划分分段沿Y轴方向划分时,该分段获取子模块52将重叠区划分为多个高度为N,宽度为W的分段,H为N的整数倍,N为正整数,分段中的一行称为一个序列。当划分分段沿X轴方向划分时,该分段获取子模块52将重叠区划分为多个高度为H,宽度为N的分段,W为N的整数倍,N为正整数,分段中的一列称为一个序列。
滤波子模块53处理图像中第一个分段中的每个子分段时,对当前子分段的前
Figure G2009101312584D00221
个序列置零输出;对当前子分段的第
Figure G2009101312584D00222
个序列到第个序列进行滤波,输出滤波结果;将当前子分段的末m-1个序列的数据保存到暂存器51中;
处理图像中非第一个也非最后一个分段中的每个子分段时,针对当前子分段,利用暂存器51保存的上一个相邻子分段的末m-1个序列数据和当前子分段,对上一个相邻子分段中的末
Figure G2009101312584D00224
个序列和当前子分段中的前
Figure G2009101312584D00225
个序列进行滤波处理,输出滤波结果;将当前子分段的末m-1个序列的数据保存到暂存器51中;
处理图像中最后一个分段中的每个子分段时,针对当前子分段,利用暂存器51保存的上一个相邻子分段的末m-1个序列数据和当前子分段,对上一个相邻子分段中的末
Figure G2009101312584D00226
个序列和当前子分段中的前
Figure G2009101312584D00227
个序列进行滤波处理,输出滤波结果;对当前子分段的末
Figure G2009101312584D00228
个序列置零输出。
特征点匹配模块55,用于从提取子模块54确定的特征点中选择出匹配对。
具体来说,特征点匹配模块55用于根据提取子模块54提取的特征点,采用相关性公式即公式(3)或公式(4),计算图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′)之间的相关系数,将相关系数大于预设匹配对提取门限的特征点对确定为匹配对。
图像间点变换估计模块56,用于采用特征点匹配模块55选择的匹配对估计图像间点变换矩阵。
图4为图3中图像间点变换估计模块56的结构示意图。如图4所示,该图像间点变换估计模块56包括抽取子模块561和估计子模块562。其中,
抽取子模块561,用于从所述特征点匹配模块确定的匹配对中抽取3个不重复的匹配对;具体抽取方法可以为:第一次从各匹配对抽取中第P0个匹配对;第二次抽取第(P0+i)个匹配对,i为间隔步长,令i=i+A,A为整数且大于1;第三次抽取第(P0+i)个匹配对;在抽取过程中,如果(P0+i)大于或等于匹配对的总数,则重新设定另一个值作为A,继续执行所述抽取操作。在实际中,i的增加方式可以为i×A,或者令i取随机值。
估计子模块562,用于将抽取子模块561抽取的匹配对代入图像间点变换式即公式(6),计算图像F和图像G之间的仿射矩阵M。
为了增加仿射矩阵M的计算准确性,图像间点变换估计模块56进一步包括可以选择的误差比较子模块563。设共有n个匹配对,误差比较子模块563获取估计子模块562计算得到仿射矩阵,记为M1,将其余(n-3)个匹配对中的f(xm,ym)分别代入采用M1表示的图像间点变换式(公式6)中,得到f(xm,ym)映射到图像G上的计算值g(x″m,y″m),获取计算值g(x″m,y″m)与实际值g(x′m,y′m)之间的误差;计算所述其余(n-3)个匹配对的误差累加和并记录;误差比较子模块563通知抽取子模块561和估计子模块562执行其自身操作,采用估计子模块562本次计算得到的仿射矩阵Mn执行计算并记录误差累加和的操作。继续循环执行所述通知以及计算并记录误差累加和的操作,直到误差比较子模块563记录的误差累加和的个数达到设定数目时,将记录的各误差累加和中最小者对应的仿射矩阵输出给图像融合单元60。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种基于图像特征的全景图拼接方法,包括图像采集步骤、图像匹配步骤和图像融合步骤;图像匹配步骤包括特征点提取、特征点匹配和图像间点变换的估计;其特征在于,所述特征点提取步骤包括:
以相同的划分方式,将待拼接的图像F和图像G的重叠区划分为多个大小相同的分段;
从图像F的重叠区和图像G的重叠区获取一个未处理分段,针对获取的每个分段,计算该分段中每个像素在x方向一阶导数的平方lx2、每个像素在y方向一阶导数的平方ly2、以及每个像素在x方向一阶导数和y方向一阶导数的乘积lxy,将计算得到的lx2、ly2和lxy保存到暂存器中;所述暂存器中由lx2、ly2和lxy分别组成的集合称为当前处理分段的子分段;
对暂存器中保存的各子分段进行高斯滤波,得到滤波结果;滤波模板为m×m,m为奇数;对当前子分段滤波时,对于当前子分段中与相邻子分段邻接的
Figure F2009101312584C00011
行或列,借助相邻子分段的数据执行所述滤波;
根据所述滤波结果计算当前处理分段中每个像素的角点值,根据角点值计算结果提取图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′);
返回执行所述获取一个未处理分段的操作,直到处理完所有分段。
2.如权利要求1所述的方法,其特征在于,所述重叠区高度为H,宽度为W;所述划分为多个大小相同的分段为:将重叠区划分为多个高度为N,宽度为W的分段,该分段中的一行称为一个序列,H为N的整数倍;或者将重叠区划分为多个高度为H,宽度为N的分段,该分段中的一列称为一个序列,W为N的整数倍;所述N为正整数;
所述对于当前子分段中与相邻子分段邻接的
Figure F2009101312584C00012
行或列像素,借助相邻子分段的像素执行所述滤波,包括:
处理图像中第一个分段中的每个子分段时,对当前子分段的前个序列置零输出;对当前子分段的第
Figure F2009101312584C00021
个序列到第
Figure F2009101312584C00022
个序列进行滤波,输出滤波结果;保存当前子分段的末m-1个序列的数据;
处理图像中非第一个也非最后一个分段中的每个子分段时,针对当前子分段,利用处理上一个相邻子分段时保存的m-1个序列数据和当前子分段,对上一个相邻子分段中的末
Figure F2009101312584C00023
个序列和当前子分段中的前
Figure F2009101312584C00024
个序列进行滤波处理,输出滤波结果;保存当前子分段的末m-1个序列的数据;
处理图像中最后一个分段中的每个子分段时,针对当前子分段,利用处理上一个相邻子分段时保存的m-1个序列数据和当前子分段,对上一个相邻子分段中的末
Figure F2009101312584C00025
个序列和当前子分段中的前个序列进行滤波处理,输出滤波结果;对当前子分段的末
Figure F2009101312584C00027
个序列置零输出。
3.如权利要求1所述的方法,其特征在于,所述对暂存器中保存的各子分段进行高斯滤波,为:
逐一对暂存器中保存的三个子分段进行高斯滤波,将滤波结果保存到所述暂存器中;
或者,针对当前处理分段中的每一个像素点,同时对暂存器中保存的三个子分段中的该像素点执行高斯滤波,得到该像素点对应的滤波后lx2、滤波后ly2和滤波后lxy,以便后续角点值计算步骤根据这三个滤波后的值计算该像素点的角点值。
4.如权利要求1所述的方法,其特征在于,所述特征点匹配步骤包括:
根据提取的特征点,采用相关性公式计算图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′)之间的相关系数,将相关系数大于预设匹配对提取门限的特征点对确定为匹配对;所述相关性公式为:
P [ ( x , y ) , ( x ′ , y ′ ) ] = Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 ( g x ± j , y ± k × g x ′ ± j , y ′ ± k ) - MN f ‾ × g ‾ Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k 2 - MN f ‾ 2 Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k 2 - MN g ‾ 2 ;
其中, f ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k , g ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k , P[(x,y),(x′,y′)]为相关系数,M×N表示相关系数计算时采用的模板大小;fx±j,y±k和gx′±j,y′±k分别表示图像F和图像G中的像素。
5.如权利要求1所述的方法,其特征在于,所述图像间点变换的估计为:
从特征点匹配步骤确定的匹配对中抽取3个不重复的匹配对;
将抽取的匹配对代入图像间点变换式,计算图像F和图像G之间的仿射矩阵M;所述图像间点变换式为:
x y 1 = M x ′ y ′ 1 = m 0 m 1 m 2 m 3 m 4 m 5 0 0 1 x ′ y ′ 1 .
6.如权利要求5所述的方法,其特征在于,所述从所确定的匹配对中抽取3个不重复的匹配对为:
设定间隔步长为i;第一次从所确定的匹配对抽取第P0个匹配对;第二次抽取第P0+i个匹配对,并令i=i+A,A为整数且大于1;第三次抽取第P0+i个匹配对;在抽取过程中,如果P0+i大于或等于匹配对的总数,则重新设定另一个值作为A,继续执行所述抽取操作。
7.如权利要求5或6所述的方法,其特征在于,所述将抽取的匹配对代入图像间点变换式,计算图像F和图像G之间的仿射矩阵M为:
设共有n个匹配对,采用抽取的3个匹配对代入图像间点变换式,计算出仿射矩阵,记为M1;将其余n-3个匹配对中的f(xm,ym)分别代入采用M1表示的图像间点变换式中,得到f(xm,ym)映射到图像G上的计算值g(x″m,y″m),获取计算值g(x″m,y″m)与实际值g(x′m,y′m)之间的误差;计算所述其余n-3个匹配对的误差累加和;
多次执行匹配对的抽取、计算仿射矩阵以及计算误差累加和的操作,将误差累加和最小者对应的仿射矩阵作为图像F和图像G之间的仿射矩阵。
8.一种基于图像特征的全景图拼接装置,包括:用于采集图像并将图像提供给缓存单元的成像单元、用于缓存待拼接的图像F和图像G的缓存单元、用于根据所述缓存单元缓存的图像F和图像G获取图像间点变换矩阵的图像匹配单元、以及利用图像间点变换矩阵进行图像变换并融合的图像融合单元;
所述图像匹配单元包括特征点提取模块、特征点匹配模块和图像间点变换估计模块;其特征在于,
所述特征点提取模块包括分段获取子模块、滤波子模块、提取子模块和暂存器;其中,
所述分段获取子模块,用于以相同的划分方式,将待拼接的图像F和图像G的重叠区划分为多个大小相同的分段;从缓存单元保存的图像F和图像G中,获取重叠区中的一个未处理分段,针对获取的每个分段,计算该分段中每个像素在x方向一阶导数的平方lx2,每个像素在y方向一阶导数的平方ly2,以及每个像素在x方向一阶导数和y方向一阶导数的乘积lxy,将计算得到的lx2、ly2和lxy保存到所述暂存器中;所述暂存器中由lx2、ly2和lxy分别组成的集合称为当前处理分段的子分段;
所述滤波子模块,用于对暂存器中保存的各子分段进行高斯滤波,得到滤波结果;滤波模板为m×m,m为奇数;对当前子分段滤波时,对于当前子分段中与相邻子分段邻接的行或列,借助相邻子分段的数据执行所述滤波;
所述提取子模块,用于根据所述滤波子模块得到的滤波结果计算当前处理分段中每个像素的角点值,根据角点值计算结果提取图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′);通知所述分段获取子模块对下一个未处理分段进行处理,直到处理完所有分段;
所述特征点匹配模块,用于从所述提取子模块确定的特征点中选择出匹配对;
所述图像间点变换估计模块,用于采用所述特征点匹配模块选择的匹配对估计图像间点变换矩阵。
9.如权利要求8所述的装置,其特征在于,所述重叠区高度为H,宽度为W;所述分段获取子模块将重叠区划分为多个高度为N,宽度为W的分段,分段中的一行称为一个序列,H为N的整数倍;或者将重叠区划分为多个高度为H,宽度为N的分段,分段中的一列称为一个序列,W为N的整数倍;所述N为正整数;
所述滤波子模块处理图像中第一个分段中的每个子分段时,对当前子分段的前
Figure F2009101312584C00051
个序列置零输出;对当前子分段的第
Figure F2009101312584C00052
个序列到第个序列进行滤波,输出滤波结果;将当前子分段的末m-1个序列的数据保存到所述暂存器中;
处理图像中非第一个也非最后一个分段中的每个子分段时,针对当前子分段,利用暂存器保存的上一个相邻子分段的末m-1个序列的数据和当前子分段,对上一个相邻子分段中的末
Figure F2009101312584C00054
个序列和当前子分段中的前
Figure F2009101312584C00055
个序列进行滤波处理,输出滤波结果;将当前子分段的末m-1个序列的数据保存到所述暂存器中;
处理图像中最后一个分段中的每个子分段时,针对当前子分段,利用暂存器保存的上一个相邻子分段的末m-1个序列的数据和当前子分段,对上一个相邻子分段中的末个序列和当前子分段中的前
Figure F2009101312584C00057
个序列进行滤波处理,输出滤波结果;对当前子分段的末
Figure F2009101312584C00058
个序列置零输出。
10.如权利要求8所述的装置,其特征在于,所述滤波子模块对暂存器中保存的各子分段进行高斯滤波时,
逐一对所述暂存器中保存的三个子分段进行高斯滤波,将滤波结果保存到所述暂存器中,供所述提取子模块提取;
或者,针对当前处理分段中的每一个像素点,同时对暂存器中保存的三个子分段中的该像素点执行高斯滤波,得到该像素点对应的滤波后lx2、滤波后ly2和滤波后lxy,将这三个滤波后的值一并发送给所述提取子模块。
11.如权利要求8所述的装置,其特征在于,所述特征点匹配模块用于根据所述提取子模块提取的特征点,采用相关性公式计算图像F中的特征点f(x,y)和图像G中的特征点g(x′,y′)之间的相关系数,将相关系数大于预设匹配对提取门限的特征点对确定为匹配对;所述相关性公式为:
P [ ( x , y ) , ( x ′ , y ′ ) ] = Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 ( g x ± j , y ± k × g x ′ ± j , y ′ ± k ) - MN f ‾ × g ‾ Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k 2 - MN f ‾ 2 Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k 2 - MN g ‾ 2 ;
其中, f ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 f x ± j , y ± k , g ‾ = 1 MN Σ j = 0 ( M - 1 ) / 2 Σ k = 0 ( N - 1 ) / 2 g x ′ ± j , y ′ ± k , P[(x,y),(x′,y′)]为相关系数,M×N表示相关系数计算时采用的模板大小;fx±j,y±k和gx′±j,y′±k分别表示图像F和图像G中的像素。
12.如权利要求8所述的装置,其特征在于,所述图像间点变换估计模块包括抽取子模块和估计子模块;
所述抽取子模块,用于从所述特征点匹配模块确定的匹配对中抽取3个不重复的匹配对;
所述估计子模块,用于将所述抽取子模块抽取的匹配对代入图像间点变换式,计算图像F和图像G之间的仿射矩阵M;所述图像间点变换式为:
x y 1 = M x ′ y ′ 1 = m 0 m 1 m 2 m 3 m 4 m 5 0 0 1 x ′ y ′ 1 .
13.如权利要求12所述的装置,其特征在于,所述图像间点变换估计模块进一步包括误差比较子模块;
设共有n个匹配对,所述误差比较子模块获取估计子模块计算得到仿射矩阵,记为M1,将其余n-3个匹配对中的f(xm,ym)分别代入采用M1表示的图像间点变换式中,得到f(xm,ym)映射到图像G上的计算值g(x″m,y″m),获取计算值g(x″m,y″m)与实际值g(x′m,y′m)之间的误差;计算所述其余n-3个匹配对的误差累加和并记录;
通知所述抽取子模块和所述估计子模块再次执行其自身操作,采用估计子模块计算得到的仿射矩阵执行计算并记录误差累加和的操作;继续循环执行所述通知以及计算并记录误差累加和的操作;直到误差比较子模块记录的误差累加和的个数达到设定数目时,将误差累加和最小者对应的仿射矩阵输出给所述图像融合单元。
14.如权利要求12或13所述的装置,其特征在于,所述抽取子模块每次抽取3个不重复的匹配对时,第一次从各匹配对抽取中第P0个匹配对;第二次抽取第P0+i个匹配对,i为间隔步长,令i=i+A,A为整数且大于1;第三次抽取第P0+i个匹配对;在抽取过程中,如果P0+i大于或等于匹配对的总数,则重新设定另一个值作为A,继续执行所述抽取操作。
CN2009101312584A 2009-04-10 2009-04-10 基于图像特征的全景图拼接方法和装置 Expired - Fee Related CN101540046B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101312584A CN101540046B (zh) 2009-04-10 2009-04-10 基于图像特征的全景图拼接方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101312584A CN101540046B (zh) 2009-04-10 2009-04-10 基于图像特征的全景图拼接方法和装置

Publications (2)

Publication Number Publication Date
CN101540046A CN101540046A (zh) 2009-09-23
CN101540046B true CN101540046B (zh) 2011-07-27

Family

ID=41123222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101312584A Expired - Fee Related CN101540046B (zh) 2009-04-10 2009-04-10 基于图像特征的全景图拼接方法和装置

Country Status (1)

Country Link
CN (1) CN101540046B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751659B (zh) * 2009-12-24 2012-07-25 北京优纳科技有限公司 大容量快速图像拼接方法
CN103348666B (zh) * 2010-10-01 2016-01-27 康泰克斯有限公司 光扫描仪内的图像传感器调准的二维校准
CN102005033B (zh) * 2010-11-16 2012-07-04 中国科学院遥感应用研究所 一种图像平滑抑制噪声方法
CN102651138B (zh) * 2012-04-10 2014-11-26 西安理工大学 基于jpeg图片拼接的超大图片合成方法
CN103813089A (zh) * 2012-11-13 2014-05-21 联想(北京)有限公司 一种获得图像的方法、电子设备以及辅助旋转装置
CN103093485B (zh) * 2013-01-28 2015-09-02 广东威创视讯科技股份有限公司 全景视频柱面图像存储方法及系统
CN103235949B (zh) * 2013-04-12 2016-02-10 北京大学 图像兴趣点检测方法和装置
CN103714524B (zh) * 2013-12-20 2016-05-11 鞍钢股份有限公司 一种冷轧带钢表面图像自动融合方法
CN104077764A (zh) * 2014-07-11 2014-10-01 金陵科技学院 一种基于图像拼接的全景图合成方法
US10368067B2 (en) * 2016-06-15 2019-07-30 Mediatek Inc. Method and apparatus for selective filtering of cubic-face frames
WO2019000357A1 (zh) * 2017-06-30 2019-01-03 深圳市大疆创新科技有限公司 处理图像的方法和装置
CN107845066B (zh) * 2017-10-09 2021-03-30 中国电子科技集团公司第二十八研究所 基于分段仿射变换模型的城市遥感图像拼接方法及装置
CN108389170A (zh) * 2018-03-07 2018-08-10 鞍钢集团矿业有限公司 多广角摄像机重叠区域的图像增强及去噪方法和装置
CN110261923B (zh) * 2018-08-02 2024-04-26 浙江大华技术股份有限公司 一种违禁品检测方法及装置
CN109697705B (zh) * 2018-12-24 2019-09-03 北京天睿空间科技股份有限公司 适于视频拼接的色差矫正方法
CN111489288B (zh) * 2019-01-28 2023-04-07 北京魔门塔科技有限公司 一种图像的拼接方法和装置
TWI705011B (zh) * 2019-03-12 2020-09-21 緯創資通股份有限公司 車載鏡頭偏移檢測方法與車載鏡頭偏移檢測系統
CN110059719B (zh) * 2019-03-18 2022-08-09 西北工业大学 一种基于沃尔什变换的图像矩的目标识别方法
CN110276722B (zh) * 2019-06-20 2021-03-30 深圳市洛丁光电有限公司 一种视频图像拼接方法
CN110864644A (zh) * 2019-11-13 2020-03-06 北京农业信息技术研究中心 植物茎秆表型信息获取装置与方法
CN111126164A (zh) * 2019-11-29 2020-05-08 浙江大学宁波理工学院 成品轮毂识别方法及系统
CN112529016A (zh) * 2020-12-21 2021-03-19 浙江欣奕华智能科技有限公司 一种图像中特征点的提取方法及提取装置
CN114298885A (zh) * 2021-12-28 2022-04-08 北京博汇数据科技有限公司 一种图像处理方法、装置、设备及存储介质
CN115567586B (zh) * 2022-12-06 2023-05-02 成都智元汇信息技术股份有限公司 智能识图结果与原图片分离的中心化智能推送方法及装置
CN118279139B (zh) * 2024-05-31 2024-08-16 科峰航智电气科技(天津)有限公司 一种基于fpga的视频实时拼接显示方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079151A (zh) * 2006-10-13 2007-11-28 浙江师范大学 一种基于序列静态图像的360°环视全景生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079151A (zh) * 2006-10-13 2007-11-28 浙江师范大学 一种基于序列静态图像的360°环视全景生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张华 等.大图像分块法在InSAR处理中的应用探讨.《测绘通报》.2005,(第9期),摘要,1. 点操作的处理,第18-19页. *
赵万金.图像自动拼接技术研究与应用.《中国优秀硕士学位论文全文数据库》.2008,(第11期),第1.3节,第二,四,五,六章、第4-5,10-14,21-50页. *

Also Published As

Publication number Publication date
CN101540046A (zh) 2009-09-23

Similar Documents

Publication Publication Date Title
CN101540046B (zh) 基于图像特征的全景图拼接方法和装置
Bhat et al. Deep burst super-resolution
Chen et al. Camera lens super-resolution
Su et al. Deep video deblurring for hand-held cameras
Yu et al. Towards efficient and scale-robust ultra-high-definition image demoiréing
Jeon et al. Accurate depth map estimation from a lenslet light field camera
CN110827200A (zh) 一种图像超分重建方法、图像超分重建装置及移动终端
CN110263699B (zh) 视频图像处理方法、装置、设备及存储介质
Chi et al. Single image reflection removal using deep encoder-decoder network
WO2020215644A1 (zh) 视频图像处理方法及装置
JP7264310B2 (ja) 画像処理方法、機器、非一時的コンピュータ可読媒体
CN110490271B (zh) 图像匹配及拼接方法、装置、系统、可读介质
CN111553841B (zh) 一种基于最佳缝合线更新的实时视频拼接方法
CN112801870B (zh) 一种基于网格优化的图像拼接方法,拼接系统及可读存储介质
CN108401104B (zh) 基于频带修复和超分辨的双焦相机数字变焦方法
Zhang et al. Deep motion blur removal using noisy/blurry image pairs
Mehta et al. Adaptive feature consolidation network for burst super-resolution
Rota et al. Video restoration based on deep learning: a comprehensive survey
Fan et al. An empirical investigation of efficient spatio-temporal modeling in video restoration
CN113628134B (zh) 图像降噪方法及装置、电子设备及存储介质
KR102697687B1 (ko) 이미지 병합 방법 및 이를 수행하는 데이터 처리 장치
CN110852947A (zh) 一种基于边缘锐化的红外图像超分辨方法
Oh et al. Fpanet: Frequency-based video demoireing using frame-level post alignment
US9100573B2 (en) Low-cost roto-translational video stabilization
KR102236473B1 (ko) 영상 처리 방법 및 그 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING SUNPLUS EHUI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING BEIYANG ELECTRONIC TECHNOLOGY CO., LTD.

Effective date: 20140227

TR01 Transfer of patent right

Effective date of registration: 20140227

Address after: Science and Industry Park, Taiwan, Hsinchu, China, No. 19-1

Patentee after: Sunplus mMobile and Sunplus mMedia Inc.

Patentee after: BEIJING SUNPLUS-EHUE TECHNOLOGY CO., LTD.

Address before: Science and Industry Park, Taiwan, Hsinchu, China, No. 19-1

Patentee before: Sunplus mMobile and Sunplus mMedia Inc.

Patentee before: Beijing Beiyang Electronic Technology Co., Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110727

Termination date: 20180410

CF01 Termination of patent right due to non-payment of annual fee