一种基于轮廓提取的建筑物图像匹配与融合的方法与流程

文档序号:15449443发布日期:2018-09-14 23:47阅读:202来源:国知局

本发明涉及图像处理领域,尤其涉及一种基于轮廓提取的建筑物图像匹配与融合的方法。



背景技术:

随着城市的快速发展,位于同一地点的建筑物及周围场景发生着巨大的时空变化。城市历史建筑保护成为突出的社会问题。其中,难以将建筑物现状与历史状况对比并联系起来,是阻碍公众参与历史建筑保护的主要原因。随着计算机视觉和移动计算技术的发展,移动设备分析和理解图像的能力大大增强,在移动设备上构建新颖的图像处理应用,促进用户参与是一种可行的方案。

但是,一个城市建筑,同时包含不同年代的历史照片以及用户拍摄的新照片。尽管新照片与历史照片均拍摄于同一建筑的相似角度,由于年代不同,周围背景发生了巨大的变化,造成历史照片与新照片存在多种不同的特征差异,包括颜色、纹理、前景、背景等等。

现有的图像相似度计算算法如颜色直方图、感知哈希等,考虑图像的整体特征,没有提取到建筑物的直线特征,因此在建筑物历史照片与新照片的图像相似度计算问题上,存在待完善的地方。



技术实现要素:

针对上述缺陷或不足,本发明的目的在于提供一种基于轮廓提取的建筑物图像匹配与融合的方法,能够将历史建筑照片与新拍摄的同一建筑物的照片进行融合。

为达到以上目的,本发明的技术方案为:

一种基于轮廓提取的建筑物图像匹配与融合的方法,包括:

1)、获取建筑物的历史照片,对历史照片进行预处理;

2)、对预览照片和预处理后的历史照片进行轮廓提取,得到历史照片和预览照片的轮廓图;

3)、使用lsd直线提取算法分别对历史照片和预览照片的轮廓图进行直线提取,并使用直线匹配算法,按照直线的长度、斜率和位置特征对历史照片和预览照片的直线进行配对,得到最优匹配对集合;

4)、对最优匹配对集合内两两直线间夹角进行计算,得到两个夹角矩阵,并对夹角矩阵进行相似度计算,得到历史照片和预览照片的相似度,根据相似度辅助对建筑进行拍照或照片对比,得到相似度高的相似照片;

5)、对相似照片与历史照片进行图像融合处理,使得相似照片与历史照片同时显示在一张照片中。

所述对历史照片进行预处理包括:对历史照片进行尺寸比例调整,然后将历史照片转化为灰度图,最后,对灰度图进行滤波平滑处理。

所述步骤2)具体包括:

2.1、将历史照片标记为f,将预览照片标记为g;

2.2、使用边缘检测算法对历史照片f、预览照片g分别进行边缘检测,得到历史照片轮廓图f’,预览照片轮廓图g’。

所述步骤3)具体包括:

3.1、使用lsd直线提取算法提取历史照片轮廓图f’和预览照片轮廓图g’中的直线,并分别存到历史照片直线集合la和预览照片直线集合lb中;

3.2、采用贪心算法,将历史照片直线集合la直线,根据几何特征与预览照片直线集合lb中直线进行匹配,得到最优匹配队集合s;其中,所述几何特征包括直线的斜率、长度和位置。

所述步骤3.1后,还包括分别对历史照片直线集合la和预览照片直线集合lb中的直线进行聚合,减少边缘重复。

所述步骤3.2具体包括:

a、依次为历史照片直线集合la中的每一条直线扫描预览照片直线集合lb中的直线,找到所有可行解,通过阈值判断直线对是否匹配;

b、对于满足匹配的解,计算两条直线间的差距,找到直线间差距最小的解diff:

上式中,l1,l2分别表示历史照片直线集合la和预览照片直线集合lb中直线的长度;k1,k2分别表示直线的斜率;

c、根据直线间差距最小的解diff,选取最小值的直线进行配对。

所述通过阈值判断直线对是否匹配具体为:计算出历史照片直线集合la和预览照片直线集合lb中直线的自适应阈值ta和tb,所述ta和tb分别表示斜率阈值和长度阈值;当两条相对位置近似的直线同时满足自适应阈值ta和tb时,则该两条直线具有近似的斜率与长度,定义这两条直线满足匹配的解。

所述步骤4具体包括:

4.1、计算最优匹配队集合s中各个直线之间的夹角,得到两个夹角矩阵a和b,夹角矩阵a和b中每行每列都代表两条直线之间的夹角,使用上三角阵表示;

4.2、计算夹角矩阵a和b的相似度r:

其中,m、n分别表示夹角矩阵a、b矩阵的行数和列数;表示a矩阵的均值,表示b矩阵的均值表示加权系数,即两个图像提取的直线数量之比。

所述步骤5)具体包括:

5.1、图像预处理:

读取轮廓提取阶段保存的放缩旋转系数矩阵,按照系数矩阵对历史照片进行变换,在变换时使用透明像素的方法填补因放缩留下的空白,最终使得融合前的现场与拍摄时一致;

5.2、创建掩码矩阵:

创建掩码矩阵m,所述掩码矩阵m与相似照片大小相同,掩码矩阵m上每一点对应的像素值是一个从0到255的数值,黑色为0,白色为255;

5.3、灰度加权:

以掩码矩阵为模板,将掩码矩阵中像素点的透明度作为每一个像素点的权值,以该权值为基准对历史照片与相似照片的透明度做加权平均,得到新矩阵:

h(i,j)=wff(i,j)+wgg(i,j)

wf+wg=1

其中,f表示历史照片图像,g表示相似照片图像,h表示合成后的图像,i,j表示图像矩阵第i行第j列的像素点;wf和wg分别是加权系数,其中wf由m经过位运算得出,wf和wg之和为1;

5.4、生成图像:

将新矩阵转化为图像,并显示在客户端界面上。

步骤5.4后还包括步骤5.5:

对生成图像进行整体特征的改变,包括图像的颜色和风格进行修改,得到最后融合图。

与现有技术比较,本发明的有益效果为:

本发明提供了一种基于轮廓提取的建筑物图像匹配与融合的方法,对轮廓提取与匹配和图像融合算法做出适当改进,优化了细节边缘的提取效果;能够将历史建筑与现有的预览照片进行实时的匹配,判断两个建筑物图像的匹配程度,使得建筑照片的比对更加准确和快速;并通过融合方法,将量照片进行融合,通过实时匹配当前建筑物景象与历史照片,对比展示建筑变化细节,合成包含新旧两种场景的融合图像,提升用户使用兴趣并增加用户粘性,吸引人们参与城市建筑保护。

附图说明

图1是本发明基于轮廓提取的建筑物图像匹配与融合的方法流程图

图2是本发明基于轮廓提取的建筑物图像匹配与融合的4-方向scharr算子示意图;

图3是本发明基于轮廓提取的建筑物图像匹配与融合的原理图。

具体实施方式

下面将结合附图对本发明做详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

如图1所示,本发明提供了一种基于轮廓提取的建筑物图像匹配与融合的方法,包括:

1)、获取建筑物的历史照片,对历史照片进行预处理;

所述对历史照片进行预处理包括:对历史照片进行尺寸比例调整,然后将历史照片转化为灰度图,最后,对灰度图进行滤波平滑处理。

2)、对预览照片和预处理后的历史照片进行轮廓提取,得到历史照片和预览照片的轮廓图;

需要说明的是预览照片包括相机中的预览拍摄照片,还包括以及拍摄的新的建筑照片。

所述步骤2)具体包括:

2.1、将历史照片标记为f,将预览照片标记为g;

2.2、使用边缘检测算法对历史照片f、预览照片g分别进行边缘检测,得到历史照片轮廓图f’,预览照片轮廓图g’。

本发明以提取建筑物轮廓中的长直线为目的,在canny边缘检测算法的基础上,使用4个方向的scharr算子替代sobel算子,同时增加局部阈值调整函数,改进了现有的边缘检测算法,使得改进后的算法能够检测出细微边缘,对下一步骤中的直线检测算法起到积极作用。

传统的canny边缘检测算法默认使用3*3的sobel算子计算梯度,其优点是计算简单快速,但是也会造成边缘定位精度低的问题。由于sobel算子只对水平和垂直两个方向的梯度变化敏感,因此,它对其他方向的梯度变化不敏感。此外,sobel算子的卷积核权重较小,容易受到噪声点影响,降低边缘检测精度。为了检测出完整、连续的建筑物轮廓。本发明将sobel算子替换为scharr算子,scharr算子在效率上同sobel算子一样快,但是精度更高。在传统scharr算子的基础上,本文增加45°、135°两个方向,使用4个方向的计算梯度,如图3所示,对多个方向的边缘保持一定的敏感性,避免仅对水平与垂直两个方向敏感,提升边缘定位的准确率。

改进后的图像梯度计算公式定义为:

g=(|g45|-|g135|)/2+(|g45|+|g135|)/2+|gx|+|gy|

卷积算子为g(x,y)(0<i<n,0<j<n),n为g(x,y)的阶。这种计算图像梯度的方法,考虑了像素点的对角方向,将其引入差分计算中,提高了边缘定位的准确性,对于提取细微边缘很有帮助。

传统canny边缘检测算法采用阈值人为设定的方式,不能自适应地调整阈值,降低了不同种类图像的边缘定位准确率。一种改进策略是,使用ostu算法自动选取全局阈值。ostu算法首先计算图像的直方图,将图像分为不同的区间,统计每个区间像素的个数。然后选取像素t,根据t划分前景像素和背景像素,当前景像素与背景像素的方差最大时,所对应的像素t被设定为阈值。尽管ostu算法可以根据不同图像自动选取阈值,但是也存在一定的问题。首先,算法的计算量较大,对每一张图像都需要搜索整个直方图区间内的像素。其次,尽管使用该算法会得到一个能够最大区分前景和背景的阈值,但是这个阈值在整个边缘检测过程中不再变化:当图像中某个区域内的平均梯度值比较低时,可能的边缘点梯度值也较低,如果此时阈值设定较高,会漏检许多细节边缘;相反,当图像中某个区域内平均梯度值较高时,如果此时阈值设定较低,容易造成边缘的误检。因此,ostu算法适合用在简单的图像中,对于建筑物图像这种存在复杂背景噪声的图像,就显得不适用了。

为了解决上述问题,兼顾算法的复杂度与效率,本发明设计了自动调整阈值的策略。低阈值的初始值为tl,算法的核心思想是根据邻域δ的梯度值tδ适当调整当前阈值:当tδ<tl时,说明δ内的平均梯度幅值较低,此时减小tl使得梯度幅值较低的像素被检测为边缘的可能性增大;当tδ>tl时,说明δ内的平均梯度幅值较高,此时增加tl使得梯度幅值较低的像素被检测为边缘的可能性减小。由于针对细节边缘,因此只需改变低阈值而高阈值保持不变,不影响粗大边缘的判断。上述策略总结为:

其中,tl1为调整后的阈值;n为δ的宽和高,n2为δ内的像素个数;gradient(i,j)为点(i,j)处的梯度值,由scharr算子计算而来;p为权值,取值范围为-1或+1,tδ<=tl时p取-1,tδ>tl时p取+1。

通过局部阈值自动调整策略,有效地缓解了设置全局阈值带来的边缘点漏检和误检问题,在抑制噪声的同时,也保护了低强度边缘细节。

像素点的梯度幅值很大,并不能说明该像素点就是边缘点。由于图像边缘上的像素点,往往是邻近像素梯度幅值的极大值点,因此对于可能的边缘点进行极大值检测,是判断该点是否确定是边缘点的必要步骤之一。canny边缘检测算法采用一种贪心策略,在像素的8邻域内进行非极大值抑制。其步骤是:以当前像素为坐标原点,对第一象限划分为[0,22.5),[22.5,67.5),[67.5,90]三个区域,每个区域代表一个梯度变化方向。若当前像素的梯度方向小于22.5,则搜索[0,22.5)这个区域内的全部像素点,如果当前像素点的梯度幅值是这些像素点梯度幅值的极大值,则保留当前像素点,反之剔除当前像素点。同理,若当前像素的梯度方向落在其余两个区域内,也采取同样的计算方法。

3)、使用lsd直线提取算法分别对历史照片和预览照片的轮廓图进行直线提取,并使用直线匹配算法,按照直线的长度、斜率和位置特征对历史照片和预览照片的直线进行配对,得到最优匹配对集合;

3.1、使用lsd直线提取算法提取历史照片轮廓图f’和预览照片轮廓图g’中的直线,并分别存到历史照片直线集合la和预览照片直线集合lb中;

分别对历史照片直线集合la和预览照片直线集合lb中的直线机进行聚合,减少边缘重复。

本发明将建筑物图像中可聚合的直线分为两种类型:合并型和连接型。合并型与连接型都产生于边缘检测阶段的边缘重复问题,这在边缘检测中是无法避免的,因而导致在直线提取阶段产生了这两种类型的直线。合并型和连接型的共同特征是两条直线之间的斜率近似相等,同时两条直线的间距非常接近。通过设定斜率阈值和间距阈值来判断两条直线是否可以聚类。

直线聚合依照如下三个原则进行:

首先,要聚合的直线必须是短小直线,通过设定阈值,过滤出那些较长的直线,剩余的直线就是要聚合的直线。

其次,如果两个短小直线具有相同的斜率,同时直线的间距较近,那么可以认为两者同属于一条直线,可以进行聚合,保留两者中较长的直线。相对长度:直线与图像之间的相对长度。

如果两条直线具有相同的斜率,同时首尾相接或距离在一定的范围内,可以认为两者同属于一条长直线。

综上所述,本文在直线提取后,加入直线聚合步骤,首先通过长度过滤掉那些短直线,然后对连接型直线进行连接,将具有相同特征的短小直线进行聚合。

3.2、采用贪心算法,将历史照片直线集合la直线,根据几何特征与预览照片直线集合lb中直线进行匹配,得到最优匹配队集合s;其中,所述几何特征包括直线的斜率、长度和位置。

所述步骤3.2具体包括:

a、依次为历史照片直线集合la中的每一条直线扫描预览照片直线集合lb中的直线,找到所有可行解,通过阈值判断直线对是否匹配;当两条相对位置近似的直线同时满足这两个阈值时,说明这两条直线具有近似的斜率与长度,认为这两条直线存在相互匹配的可能。

所述通过阈值判断直线对是否匹配具体为:计算出历史照片直线集合la和预览照片直线集合lb中直线的自适应阈值ta和tb,所述ta和tb分别表示斜率阈值和长度阈值;当两条相对位置近似的直线同时满足自适应阈值ta和tb时,则该两条直线具有近似的斜率与长度,定义这两条直线满足匹配的解。

b、对于满足匹配的解,计算两条直线间的差距,找到直线间差距最小的解diff:

上式中,l1,l2分别表示历史照片直线集合la和预览照片直线集合lb中直线的长度;k1,k2分别表示直线的斜率。

c、根据直线间差距最小的解diff,选取最小值的直线进行能配对。

4)、对最优匹配队集合内两两直线间夹角进行计算,得到两个夹角矩阵,并对夹角矩阵进行相似度计算,得到历史照片和预览照片的相似度,根据相似度辅助对建筑进行拍照或照片对比,得到相似度高的相似照片;

所述步骤4具体包括:

4.1、计算最优匹配队集合s中各个直线之间的夹角,得到两个夹角矩阵a和b,夹角矩阵a和b中每行每列都代表两条直线之间的夹角,使用上三角阵表示;

4.2、计算夹角矩阵a和b的相似度r:

其中,m、n分别表示夹角矩阵a、b矩阵的行数和列数;表示a矩阵的均值,表示b矩阵的均值,表示加权系数,即两个图像提取的直线数量之比。

r的数值越大说明矩阵a,b的相似度越高,直线间的匹配度越大。需要说明的是,公式的分母,如果a、b矩阵中的各个元素都相等,则分母项为0,因而上述公式要求a、b矩阵中的各个元素不能都相等。另外,如果乘法左边的计算出的结果等于1,说明a、b是相同的矩阵,不需要再与匹配率相乘。

5)、对相似照片与历史照片进行图像融合处理,使得相似照片与历史照片同时显示在一张照片中。

所述步骤5)具体包括:

5.1、图像预处理:

读取轮廓提取阶段保存的放缩旋转系数矩阵,按照系数矩阵对历史照片进行变换,在变换时使用透明像素的方法填补因放缩留下的空白,最终使得融合前的现场与拍摄时一致;

5.2、创建掩码矩阵:

创建掩码矩阵m,所述掩码矩阵m与相似照片大小相同,掩码矩阵m上每一点对应的像素值是一个从0到255的数值,黑色为0,白色为255;

5.3、灰度加权:

以掩码矩阵为模板,将掩码矩阵中像素点的透明度作为每一个像素点的权值,以该权值为基准对历史照片与相似照片的透明度做加权平均,得到新矩阵:

h(i,j)=wff(i,j)+wgg(i,j)

wf+wg=1

其中,f表示历史照片图像,g表示相似照片图像,h表示合成后的图像,i,j表示图像矩阵第i行第j列的像素点;wf和wg分别是加权系数,其中wf由m经过位运算得出,wf和wg之和为1;

5.4、生成图像:

将新矩阵转化为图像,并显示在客户端界面上。

历史照片的权值大于新照片,所以此处的图像以历史照片中的像素为主。为了保证历史照片的核心区域能够显示出来,所以初始情况下历史照片的权值大于新照片。随着区域位置的变化,历史照片像素的权值逐渐减小,新照片像素的权值逐渐增大,如图3所示,在(x1,x)区域内,新照片的权值大于历史照片,所以此处的图像以新照片中的像素为主。新照片与历史照片对应位置像素点的透明度过渡,在不分割图像语义的基础上,巧妙地实现了图像融合功能。

5.5、对生成图像进行整体特征的改变,包括图像的颜色和风格进行修改,得到最后融合图。

像素级的融合从根本上改变了图像的语义,与之不同,特征级别的融合则从图像整体风格上改变了图像。图像特征除了包含颜色、纹理、形状以外,还包含语义特征和风格特征。针对图像的颜色特征,采用图像滤镜的方法,从整体上改变图像的颜色。针对图像的风格特征,采用卷积神经网络(cnn)和深度学习工具,将图像的风格特征和语义特征分割开来,使得图像的融合从简单的像素级别上升到整体风格级别。

图像颜色特征:

图像滤镜是一种改变图像整体颜色特征的简易方法。为了实现建筑物图像的复古效果,设计了高饱和、黑白、怀旧等滤镜。由于图像是rgba四通道的,因此设计了一个4*5阶的颜色矩阵作为四通道的分量矩阵,记为a。其中第一行到第四行的分量分别表示红色,绿色,蓝色和透明度的分量。图像中的任意一个像素点都由rgba四通道组成,使用一个5*1的列向量表示,记为c,就能够表示出像素点的各通道像素值。使用矩阵乘法可以计算出转换后的图像r,即r=a*c,如下方公式:

r'=a*r+b*g+c*b+d*a+e*1

g'=f*r+g*g+h*b+i*a+j*1

b'=k*r+l*g+m*b+n*a+o*1

a'=p*r+q*g+r*b+s*a+t*1

其中,分量矩阵a的第五列e、j、o、t分别表示rgba的偏移量。修改偏移量可以在不影响其他通道分量的前提下,修改对应通道的像素值。

图像风格转换:

图像的像素级融合方法只是利用图像学中的算子对图像低层信息进行修改,对图像基于整体风格上的把控,因而对细节的处理能力较差。而基于风格转换的图像融合方法则是利用cnn学习图像中语义和风格的高级特征,并把学习的结果应用到新的图像中去,从而创造出具有不同内容和风格的图像作品。两者原理有本质差别。为了提高系统在实际应用过程中的易用性和互动性,将图像风格的转换作为图像融合的方法。

对于本领域技术人员而言,显然能了解到上述具体事实例只是本发明的优选方案,因此本领域的技术人员对本发明中的某些部分所可能作出的改进、变动,体现的仍是本发明的原理,实现的仍是本发明的目的,均属于本发明所保护的范围。

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