本发明涉及计算机处理图像的方法,特别是涉及一种基于层次聚类的多平面图像拼接方法。
背景技术:
图像拼接是将一系列在同一场景下不同角度拍摄的相互之间带有重叠区域的窄视角图像合成为一幅高分辨率的宽视角图像。日常生活中拍摄相机的光心并不固定在一个位置,存在移动,旋转等空间变化,因此,捕获的图像存在视差,就会产生明显的伪影和对不齐。
目前比较主流的针对具有视差的图像拼接方法的基本模型都是基于网格的变换模型,该方法将图像划分为密集网格用全局单应性矩阵代替基本单应性矩阵,对每一个特征点用一个局部单应性矩阵来映射,使用移动直接线性变换进行配准,强调全局投影特性,同时允许局部非投影偏差,在一定程度上缓解了视差造成的拼接误差。但是该算法的配准精度依赖于特征点的均匀度和匹配精度。在拼接过程中,采用传统随机抽样一致性方法用全局单应变换筛选特征点,由于多平面场景,一个平面对应着一个单应变换,因此导致部分正确匹配的特征点会被筛选。一些方法通过增大阈值缓解漏检特征点,但该方法同时会引入错误的匹配点,增加虚警率。
技术实现要素:
发明目的:为了解决上述技术问题,本发明公开了一种基于层次聚类的多平面图像拼接方法,能够提高特征点筛选的精确度,并对重叠区域的不同平面采用不同的单应变换,从而提高了配准的精度。
本发明的基于层次聚类的多平面图像拼接方法,包括以下步骤:
步骤1,提取待拼接图像a和b的sift(尺度不变特征变换,scale-invariantfeaturetransform,sift)特征点,完成特征点的初始匹配,并利用层次聚类方法将图像a的特征点划分为不同平面,筛选误匹配点,得到正确特征匹配点的集合;
步骤2,对待拼接图像a和b分块,根据每个图像块中心像素周围的特征点平面信息计算图像块所属平面;利用带权重的线性变换方法计算图像a和b中每个对应分块的变换矩阵;最后将图像b映射到图像a的坐标系下;
步骤3,构造待拼接图像a和b的拉普拉斯金字塔,对每一层采取不同的融合权重进行融合,再将融合后的各层拉普拉斯金字塔恢复得到最终的拼接结果。
本发明中,步骤1包括以下步骤:
步骤1-1,提取待拼接图像a和b的sift特征点(参见davidg.lowe,"distinctiveimagefeaturesfromscale-invariantkeypoints,"internationaljournalofcomputervision,60,2(2004),pp.91-110);
步骤1-2,对于图像a中每个sift特征点,分别计算与图像b中所有sift特征点特征描述子的欧式距离,选择距离最小的点组成匹配对;
步骤1-3,按照sift特征点间坐标的欧式距离小于规定阈值的规则对图像a中的特征点进行采样,构建两个以上的最小采样集;
步骤1-4,利用最小二乘法分别计算每个采样集的单应性矩阵;
步骤1-5,定义每对匹配点在不同单应变换下的残差,计算每两个匹配点残差较小的值所对应的单应性矩阵交集的个数,构建相似度矩阵;
步骤1-6,根据相似度矩阵计算每两个特征匹配点的距离,作为聚类的相似度度量,采用凝聚层次聚类,利用平均值合并簇,建立层次聚类树;
步骤1-7,根据聚类后每个类别中包含的特征点与每个单应矩阵的残差均值筛选特征点,得到正确特征匹配点的集合;
本发明中,步骤1-2包括:对于图像a中的sift特征点,分别计算每个sift特征点与图像b中所有sift特征点的特征描述子的欧式距离,并选择最近距离d1与次近距离d2,当d1/d2小于阈值时,则与距离为d1的特征点匹配,匹配对记为x={xa,xb},其中,xa和xb是分别来自于图像a的特征点和来自于图像b的特征点;构建特征点对集为φ={x1,x2,…,xn},其中n为两幅图像特征点匹配的总对数,
本发明中,步骤1-3包括:从
步骤1-4包括:利用最小二乘法计算每个最小采样集所对应的单应性矩阵,第j个最小采样集所对应的单应性矩阵记为hj,j=1,2,…,k。
本发明中,步骤1-5包括:
步骤1-5-1,对于图像b中特征点
步骤1-5-2,定义第i对特征匹配点在第j个单应性矩阵的变换下的残差为disi,j,如式(1)所示:
disi,j=dis1+dis2(1)
其中,
计算特征点对集φ中所有特征匹配点对在所有单应性矩阵的变换下的残差集合为d={disi,1,disi,2,…,disi,k};
步骤1-5-3,对集合d中得到的每个匹配点的残差向量的分量按照升序排列,排序后得到残差向量集合
步骤1-5-4,根据排序后的残差向量集合d',得到特征匹配点每个分量所对应的单应矩阵向量
步骤1-5-5,对于特征点对集中第p个特征匹配对对应的单应矩阵向量hp和第q个特征匹配对对应的单应矩阵向量hq,计算hp和hq前t个值交集的个数
本发明中,步骤1-6包括:
步骤1-6-1,定义xp和xq的距离作为层次聚类的相似度度量
其中,
步骤1-6-2,利用层次聚类筛选特征点:根据两对特征匹配点间的相似度,利用现有的凝聚层次聚类算法(参考文献morsierfd,tuiad,borgeaudm,etal.clustervaliditymeasureandmergingsystemforhierarchicalclusteringconsideringoutliers[j].patternrecognition,2015,48(4):1478-1489)。首先将每一个特征点都作为一个独立的簇,再计算两个簇中的点两两的距离和的均值,找到距离较小的两个簇合并,建立层次聚类树,将特征点分为不同的类别;
步骤1-7包括:计算步骤1-6-2划分的第m个类别cm中所有特征点对的前t个残差的均值ηm,如式(3)所示:
当ηm的值大于阈值ε,则类中所有特征点为错误的匹配点;否则,将其类中包含的特征点xi加入到正确特征匹配点的集合
本发明中,步骤2包括以下步骤:
步骤2-1,分别将待拼接图像a和b划分为大小相同的网格,根据每个网格中心周围的特征点所在平面计算网格所属的平面;
步骤2-2,将图像b映射到图像a的坐标系下。
本发明中,步骤2-1包括:分别将图像a和b划分成大小为x*x的网格,根据步骤1划分的类别结果,统计图像a中距离每个网格中心点坐标为d的范围内集合
步骤2-2包括:
步骤2-2-1,利用带权重的线性变换算法计算每个网格的单应性矩阵,引入权重因子ωi,求取代价函数并取所有结果值的最小值为h*,如式(4)所示:
其中,h是9维矢量,即单应性矩阵;ai是集合
步骤2-2-2,计算权重因子ωi,如式(5)所示:
其中,
步骤2-2-3,将待拼接图像b的每个网格的像素点坐标乘以对应的单应性矩阵,将其映射到图像a的坐标系下,形成新的图像b*。
本发明中,步骤3包括以下步骤:
步骤3-1,分别构造待拼接图像a和b的拉普拉斯金字塔;
步骤3-2,新建图像i,大小为两幅图像a和b拼接后的大小;将图像i位于图像a和图像b*的重叠区的坐标点全部标记为1,其他位置标记为0,作为权重图像;
步骤3-3,建立权重图像i的高斯金字塔,利用权重图像的金字塔层,在待融合图像的各个金字塔层分别进行融合,将融合后的各层拉普拉斯金字塔恢复得到最终的拼接结果。
本发明中,步骤3-3包括:
利用权重图像的金字塔层,在待融合图像的各个金字塔层分别按照式(6)进行融合,融合得到的拉普拉斯金字塔图像为l:
其中,lk表示融合图像l金字塔的第k层,gwk(i,j)表示权重图像i的第k层金字塔,
有益效果:本发明是一种针对具有视差的图像拼接方法,提出了基于层次聚类的多平面特征点筛选方法,利用所得的平面信息定义每个特征点对每个局部单应变换贡献的权重。从而降低了特征点筛选的漏检率,提高了图像配准的精度。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1是本发明流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本发明提供了一种基于层次聚类的多平面图像拼接方法,包括以下步骤:
步骤1,提取待拼接图像a和b的sift(尺度不变特征变换,scale-invariantfeaturetransform,sift)特征点,完成特征点的初始匹配,并利用层次聚类方法将图像a的特征点划分为不同平面,筛选误匹配点;
步骤2,对待拼接图像a和b分块,根据每个图像块中心像素周围的特征点平面信息计算图像块所属平面;利用带权重的线性变换方法计算图像a和b中每个对应分块的变换矩阵;最后将图像b映射到图像a的坐标系下;
步骤3,构造待拼接图像a和b的拉普拉斯金字塔,对每一层采取不同的融合权重进行融合,再将融合后的各层拉普拉斯金字塔恢复得到最终的拼接结果。
本发明中,步骤1包括以下步骤:
步骤1-1,提取待拼接图像a和b的sift特征点(参考文献:davidg.lowe,"distinctiveimagefeaturesfromscale-invariantkeypoints,"internationaljournalofcomputervision,60,2(2004),pp.91-110)。
步骤1-2,对于图像a中每个sift特征点,分别计算与图像b中所有sift特征点特征描述子的欧式距离,选择距离最小的点组成匹配对;
步骤1-3,按照sift特征点间坐标的欧式距离小于规定阈值的规则对图像a中的特征点进行采样,构建两个以上的最小采样集;
步骤1-4,利用最小二乘法分别计算每个采样集的单应性矩阵;
步骤1-5,定义每对匹配点在不同单应变换下的残差,计算每两个匹配点残差较小的值所对应的单应性矩阵交集的个数,构建相似度矩阵;
步骤1-6,根据相似度矩阵计算每两个特征匹配点的距离,作为聚类的相似度度量,采用凝聚层次聚类,利用平均值合并簇,建立层次聚类树;
步骤1-7,根据聚类后每个类别中包含的特征点与每个单应矩阵的残差均值筛选特征点。
本发明中,步骤1-2包括:对于图像a中的sift特征点,分别计算每个sift特征点与图像b中所有sift特征点的特征描述子的欧式距离,并选择最近距离d1与次近距离d2,当d1/d2小于阈值时,则与距离为d1的特征点匹配,匹配对记为x={xa,xb},其中,xa和xb是分别来自于图像a的特征点和来自于图像b的特征点;构建特征点对集为φ={x1,x2,…,xn},其中n为两幅图像特征点匹配的总对数,
本发明中,步骤1-3包括:从
步骤1-4包括:利用最小二乘法计算每个最小采样集所对应的单应性矩阵,第j个最小采样集所对应的单应性矩阵记为hj,j=1,2,…,k,具体步骤参考文献zhouc,tandl,zhuf,etal.aplanarhomographyestimationmethodbasedonmulti-viewtotalleastsquares[c]robotics,intelligentsystemsandsignalprocessing,2003.proceedings.2003ieeeinternationalconferenceon.ieee,2003。
本发明中,步骤1-5包括:
步骤1-5-1,对于图像b中特征点
步骤1-5-2,定义第i对特征匹配点在第j个单应性矩阵的变换下的残差为disi,j,如式(1)所示:
disi,j=dis1+dis2(1)
其中,
计算特征点对集φ中所有特征匹配点对在所有单应性矩阵的变换下的残差集合为d={disi,1,disi,2,…,disi,k};
步骤1-5-3,对集合d中得到的每个匹配点的残差向量的分量按照升序排列,排序后得到残差向量集合
步骤1-5-4,根据排序后的残差向量集合d',得到特征匹配点每个分量所对应的单应矩阵向量
步骤1-5-5,对于特征点对集中第p个特征匹配对对应的单应矩阵向量hp和第q个特征匹配对对应的单应矩阵向量hq,计算hp和hq前t个值交集的个数
本发明中,步骤1-6包括:
步骤1-6-1,定义xp和xq的距离作为层次聚类的相似度度量
步骤1-6-2,利用层次聚类筛选特征点:根据两对特征匹配点间的相似度,利用凝聚层次聚类算法,首先将每一个特征点都作为一个独立的类簇,再计算两个簇中的点两两的距离和的均值,找到距离较小的两个簇合并,建立层次聚类树,将特征点分为不同的类别(参考文献morsierfd,tuiad,borgeaudm,etal.clustervaliditymeasureandmergingsystemforhierarchicalclusteringconsideringoutliers[j].patternrecognition,2015,48(4):1478-1489.);
步骤1-7包括:计算步骤1-6-2划分的第m个类别cm中所有特征点对的前t个残差的均值ηm,如式(3)所示:
当ηm的值大于阈值ε(本发明取值0.02),则类中所有特征点为错误的匹配点;否则(ηm小于等于0.02),将其类中包含的特征点xi加入到正确特征匹配点的集合
本发明中,步骤2包括以下步骤:
步骤2-1,分别将待拼接图像a和b划分为大小相同的网格,根据每个网格中心周围的特征点所在平面计算网格所属的平面;
步骤2-2,将图像b映射到图像a的坐标系下。
本发明中,步骤2-1包括:分别将图像a和b划分成大小为x*x的网格,根据步骤1划分的类别结果,统计图像a中距离每个网格中心点坐标为d的范围内特征点所属的类别,选择特征点最多的类别定义为当前网格的所属平面;
步骤2-2包括:
步骤2-2-1,利用带权重的线性变换算法计算每个网格的单应性矩阵,引入权重因子ωi,求取代价函数并取所有结果值的最小值为h*,如式(4)所示:
其中,h是9维矢量,即单应性矩阵;ai是集合
步骤2-2-2,计算权重因子ωi,如式(5)所示:
其中,
步骤2-2-3,将待拼接图像b的每个网格的像素点坐标乘以对应的单应性矩阵,将其映射到图像a的坐标系下,形成新的图像b*。
本发明中,步骤3包括以下步骤:
步骤3-1,分别构造待拼接图像a和b的拉普拉斯金字塔;
步骤3-2,新建图像i,大小为两幅图像a和b拼接后的大小;将图像i位于图像a和图像b*的重叠区的坐标点全部标记为1,其他位置标记为0,作为权重图像;
步骤3-3,建立权重图像i的高斯金字塔,利用权重图像的金字塔层,在待融合图像的各个金字塔层分别进行融合,将融合后的各层拉普拉斯金字塔恢复得到最终的拼接结果。
本发明中,步骤3-3包括:
利用权重图像的金字塔层,在待融合图像的各个金字塔层分别按照式(6)进行融合,融合得到的拉普拉斯金字塔图像为l:
其中,lk表示融合图像l金字塔的第k层,gwk(i,j)表示权重图像i的第k层金字塔,
实施例
如图1所示时基于层次聚类的多平面图像拼接方法流程,本实施例详细地介绍了基于层次聚类的多平面图像拼接方法,包括以下三个步骤:
(一)提取待拼接图像a和b的sift特征点,完成特征点的初始匹配;并利用层次聚类方法将图像a的特征点划分为不同平面,筛选误匹配点;
(二)对待拼接图像a和b分块,根据每个图像块中心像素周围的特征点平面信息计算图像块所属平面;利用带权重的线性变换方法计算图像a和b中每个对应分块的变换矩阵;最后将图像b映射到图像a的坐标系下;
(三)构造待拼接图像a和b的拉普拉斯金字塔,对每一层采取不同的融合权重进行融合,再将融合后的各层拉普拉斯金字塔恢复得到最终的拼接结果。
本实施例具体实施过程如下。
步骤(一):
提取待拼接图像a和b的sift特征点。对于图像a中的特征点,分别计算每个特征点与图像b中所有特征点的特征描述子的欧式距离,并选择最近距离d1与次近距离d2,当d1/d2小于阈值0.4时,则与距离为d1的特征点匹配,匹配对记为x={xa,xb},其中,xa和xb是分别来自于图像a和b的特征点。因此,构建特征点对集为φ={x1,x2,…,xn},其中n为两幅图像特征点匹配的总对数,
从
利用最小二乘法计算每个最小采样集所对应的单应性矩阵(homography),第j个最小采样集所对应的单应性矩阵记为hj,j=1,2,…,k。
对于图像b中特征点
定义第i对特征匹配点在第j个单应性矩阵的变换下的残差为disi,j,如式(1)所示:
disi,j=dis1+dis2(1)
其中,
计算特征点对集φ中所有特征匹配点对在所有单应性矩阵的变换下的残差为d={disi,1,disi,2,…,disi,k}(i=1,2,…,n)。
对d中得到的每个匹配点的残差向量的分量按照升序排列,排序后得到
根据排序后的残差向量d′,得到特征匹配点每个分量所对应的单应矩阵向量
对于特征点对集中第p个特征匹配对对应的单应矩阵向量hp和第q个特征匹配对对应的单应矩阵向量hq,计算hp和hq的前t个值交集的个数
定义xp和xq的距离作为层次聚类的相似度度量
最后利用层次聚类筛选特征点。根据两对特征匹配点间的相似度,利用凝聚层次聚类算法,首先将每一个特征点都作为一个独立的类簇,再计算两个集合中的点两两的距离和的均值,找到距离较小的两个簇合并,建立层次聚类树,将特征点分为不同的类别。
计算第m个类别cm中所有特征点对的前t个残差的均值ηm,如式(3)所示。
当ηm的值大于阈值ε,则类中所有特征点为外点,即错误的匹配点。否则,将其类中包含的特征点xi加入到内点的集合
步骤(二):
分别将图像a和b划分成大小为30*30的网格,根据步骤一中结果,统计图像a中距离每个网格中心点坐标为d的范围内特征点所属的类别,选择最多的类别定义为当前网格的所属平面。
利用带权重的线性变换算法计算每个网格的单应矩阵,引入权重因子ωi,求取代价函数并取多个结果值的最小值为h*,如式(4)所示:
其中,h是9维矢量,即单应性矩阵;ai是集合
计算权重因子ωi,如式(5)所示:
其中,
将待拼接图像b的每个网格的像素点坐标乘以对应的单应矩阵,将其映射到a图像的坐标系下,形成新的图像b*。
步骤(三)
首先,构造待拼接图像a和b的拉普拉斯金字塔la和lb;新建一幅图像i,大小为两幅图像拼接后的大小。将图像i位于图像a和图像b*的重叠区的坐标点全部标记为1,其他位置标记为0,作为权重图像。建立权重图像i的高斯金字塔gw,利用权重图像的金字塔层,在待融合图像的各个金字塔层分别按照式(6)进行融合,融合得到的拉普拉斯金字塔图像为l。
其中,lk表示融合图像l金字塔的第k层,gwk(i,j)表示权重图像i的第k层金字塔,
本发明的创新点包括:
(1)采用全局单应变换的随机抽样一致性算法筛选特征点,存在将不同平面的正确特征匹配点误筛选。本专利自定义层次聚类的相似度度量,将特征点聚集成多个类别,分别对应不同的单应变换,同时筛选出误匹配的类别,从而提高了特征点的漏检率。
(2)局部变换算法将图像划分为网格,根据特征点与网格中心距离计算每个特征点的权重。本专利在此基础上,考虑到不同平面对应不同的单应变换,根据周围特征点的类别计算每个网格的所属平面,增大同一平面内特征点的权重,利用带权重的线性变换算法计算每个网格的单应矩阵。
本发明提供了一种基于层次聚类的多平面图像拼接方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。