图像拼接方法、装置、电子设备及存储介质与流程

文档序号:25353748发布日期:2021-06-08 14:14阅读:80来源:国知局
图像拼接方法、装置、电子设备及存储介质与流程

1.本公开涉及图像处理领域,具体涉及一种图像拼接方法、装置、电子设备及存储介质。


背景技术:

2.图像拼接包括图像特征识别、图像特征点匹配、匹配特征点对的优化、图像变换和图像融合,其中,图像特征识别和匹配特征点对的优化对图像拼接的准确度尤为重要。图像特征点匹配过程中通常会产生错误的匹配特征点对,而错误匹配率会直接影响变换矩阵的计算,进而严重影响图像拼接的质量。
3.传统的匹配特征点对优化是采用随机抽样一致性(random sample consensus,ransac)方法对匹配点对进行筛选。ransac方法是通过迭代k次,以求变换矩阵的最优值,但每次迭代只能考虑四个匹配特征点对,每次的迭代之间都是独立,之前的迭代都无法对下一次的迭代产生反馈。并且,通过四个匹配特征点对求解变换矩阵,会导致图像局部区域匹配,而对于一些区域会出现粗糙不规则的情况,特别是对于具有一定视差的图像,该种方式无疑会影响图像拼接的准确度。此外,ransac方法中,变换矩阵仅有内点数量决定,当外点过多时,不能有效剔除误匹配点。
4.公开内容
5.有鉴于此,本公开提供一方面提供一种图像拼接方法,包括:获取参考图像及待拼接图像对应的待匹配特征点对,将所述待匹配特征点对随机分为m组;依据每组包含的待匹配特征点对,计算该组对应的第一特征变换矩阵,得到m个第一特征变换矩阵;计算每一个第一特征变换矩阵对应的适应度值;随机交换所述适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素,得到n个第二特征变换矩阵;计算每一个第二特征变换矩阵对应的适应度值;随机交换所述适应度值大于预设阈值的第二特征变换矩阵之间的部分矩阵元素,得到k个第三特征变换矩阵,依次迭代,直至得到最优的特征变换矩阵;基于所述最优的特征变换矩阵,对所述参考图像与所述待拼接图像进行拼接。
6.根据本公开的实施例,所述图像拼接方法还包括:针对于至少一个适应度值大于预设阈值的特征变换矩阵,随机改变特征变换矩阵中的部分矩阵元素。
7.根据本公开的实施例,所述计算每一个第一特征变换矩阵对应的适应度值包括:根据内点数量、内点偏差距离及内点分散程度,计算所述适应度值,其中,当一待匹配特征点经过特征变换矩阵变换得到的特征点与该待匹配特征点之间的投影误差小于预设值时,该待匹配特征点为内点。
8.根据本公开的实施例,所述根据内点数量、内点偏差距离及内点分散程度,计算所述适应度值包括:根据:
[0009][0010]
计算所述适应度,其中,v为所述适应度,α、β、γ为系数,p为内点数量,i、j为内点
的编号,s
i
为第i个内点的投影误差,a
i
表示第i个内点的特征,a
j
表示第j个内点的特征。
[0011]
根据本公开的实施例,所述随机交换所述适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素包括:按照所述适应度值对所述第一特征变换矩阵进行排序,选择适应度最高的第一特征变换矩阵与其他第一特征变换矩阵进行矩阵元素交换。
[0012]
根据本公开的实施例,所述随机交换所述适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素包括:通过单点交叉交换和/或两点交叉交换的对适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素进行随机交换。
[0013]
根据本公开的实施例,所述单点交叉交换包括:选择第一特征变换矩阵中的一个元素,将该第一特征变换矩阵分成两部分,选择其中一部分与其他第一特征变换中的元素进行交换;所述两点交叉交换包括:选择第一特征变换矩阵中的两个元素,将该第一特征变换矩阵分成三部分,选择中间部分与其他第一特征变换中的元素进行交换。
[0014]
根据本公开的实施例,所述针对于至少一个适应度值大于预设阈值的特征变换矩阵,随机改变特征变换矩阵中的部分矩阵元素包括:采用标准正态分布的随机数特征变换矩阵中的矩阵元素相乘,以改变所述矩阵元素。
[0015]
根据本公开的实施例,基于待匹配特征点对的特征,采用最小二乘法计算所述第一特征变换矩阵。
[0016]
根据本公开的实施例,所述获取参考图像及待拼接图像对应的待匹配特征点对包括:分别对所述参考图像及所述待拼接图像进行预处理;对预处理后的参考图像进行特征提取,得到第一特征点;对预处理后的待拼接图像进行特征提取,得到第二特征点;将所述第一特征点与所述第二特征点进行匹配,筛选相同或相似的特征,以作为所述待匹配特征点对。
[0017]
根据本公开的实施例,所述基于上述最优的特征变换矩阵,对所述参考图像与所述待拼接图像进行拼接包括:基于所述最优的特征变换矩阵,对所述待拼接图像进行图像变换;将经过图像变换后的待拼接图像与所述参考图像进行图像融合。
[0018]
本公开另一方面提供一种图像拼接装置,包括:获取模块,用于获取参考图像及待拼接图像对应的待匹配特征点对,将所述待匹配特征点对随机分为m组对;第一计算模块,用于依据每组包含的待匹配特征点对,计算该组对应的第一特征变换矩阵,得到m个第一特征变换矩阵;第二计算模块,用于计算每一个第一特征变换矩阵对应的适应度值;第一交换模块,用于随机交换所述适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素,得到n个第二特征变换矩阵;第二计算模块,用于计算每一个第二特征变换矩阵对应的适应度值;第二交换模块,用于随机交换所述适应度值大于预设阈值的第二特征变换矩阵之间的部分矩阵元素,得到k个第三特征变换矩阵,依次迭代,直至得到最优的特征变换矩阵;拼接模块,用于基于上述最优的特征变换矩阵,对所述参考图像与所述待拼接图像进行拼接。
[0019]
根据本公开的实施例,所述图像拼接装置还包括:变异模块,用于针对于每一适应度值大于预设阈值的特征变换矩阵,随机改变特征变换矩阵中的部分矩阵元素。
[0020]
根据本公开的实施例,所述第二计算模块计算每一个第一特征变换矩阵对应的适应度值包括:根据内点数量、内点偏差距离及内点分散程度,计算所述适应度值,其中,当一待匹配特征点经过特征变换矩阵变换得到的特征点与该待匹配特征点之间的投影误差小
于预设值时,该待匹配特征点为内点。
[0021]
根据本公开的实施例,所述根据内点数量、内点偏差距离及内点分散程度,计算所述适应度值包括:根据:
[0022][0023]
计算所述适应度,其中,v为所述适应度,α、β、γ为系数,p为内点数量,i、j为内点的编号,s
i
为第i个内点的投影误差,4表示第i个内点的特征,a
j
表示第j个内点的特征。
[0024]
本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
[0025]
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
[0026]
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
[0027]
图1示意性示出了根据本公开实施例的图像拼接方法及装置的系统架构100;
[0028]
图2示意性示出了根据本公开一实施例的图像拼接方法的流程图;
[0029]
图3示意性示出了根据本公开又一实施例的图像拼接方法的流程图;
[0030]
图4示意性示出了根据本公开实施例的获取待匹配特征点对的方法流程图;
[0031]
图5示意性示出了根据本公开实施例的依据待匹配特征点对计算第一特征变换矩阵的方法流程图;
[0032]
图6示意性示出了根据本公开实施例的计算特征变换矩阵对应的适应度值的方法流程图;
[0033]
图7示意性示出了根据本公开实施例的随机交换矩阵元素的方法流程图;
[0034]
图8示意性示出了根据本公开实施例的基因变异操作方法流程图;
[0035]
图9示意性示出了根据本公开实施例的基于最优的特征变换矩阵对参考图像与待拼接图像进行拼接的方法流程图;
[0036]
图10示意性示出了根据本公开一实施例的图像拼接装置的框图;
[0037]
图11示意性示出了根据本公开又一实施例的图像拼接装置的框图;
[0038]
图12示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。
具体实施方式
[0039]
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0040]
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0041]
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0042]
在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
[0043]
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
[0044]
本公开的实施例提供一种图像拼接方法,包括:获取参考图像及待拼接图像对应的待匹配特征点对,将待匹配特征点对随机分为m组对。依据每组包含的待匹配特征点对,计算该组对应的第一特征变换矩阵,得到m个第一特征变换矩阵。计算每一个第一特征变换矩阵对应的适应度值。随机交换适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素,得到n个第二特征变换矩阵。计算每一个第二特征变换矩阵对应的适应度值。随机交换适应度值大于预设阈值的第二特征变换矩阵之间的部分矩阵元素,得到k个第三特征变换矩阵,依次迭代,直至得到最优的特征变换矩阵。基于上述最优的特征变换矩阵,对参考图像与所述待拼接图像进行拼接。
[0045]
图1示意性示出了根据本公开实施例的图像拼接方法及装置的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其它设备、系统、环境或场景。
[0046]
如图1所示,根据该实施例的系统架构100可以包括存储设备101、102,网络103和服务器104。网络103用于在存储设备101、102和服务器104之间提供通信链路。
[0047]
存储设备101、102例如可以是服务器。存储设备101、102上可以存储有各种需要参考图像和/或待拼接的图像。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器104可以是针对于参考图像和待拼接的图像进行图像特征识别、图像特征点匹配、匹配特征点对的优化、图像变换和图像融合的服务器。根据本公开实施例,在进行图像拼接的过程中,服务器104通过网络103获取存储设备101、102、上需要拼接的参考
图像和待拼接的图像,对获取的参考图像和待拼接的图像进行图像特征识别、图像特征点匹配、匹配特征点对的优化、图像变换和图像融合。
[0048]
需要说明的是,本公开实施例所提供的图像拼接方法可以由服务器104执行。相应地,本公开实施例所提供的图像拼接装置可以设置于服务器104中。或者,本公开实施例所提供的图像拼接方法也可以由不同于服务器104且能够与存储设备101、102和/或服务器104通信的服务器或服务器集群执行。相应地,本公开实施例所提供的图像拼接装置也可以设置于不同于服务器104且能够与存储设备101、102和/或服务器104通信的服务器或服务器集群中。或者,本公开实施例所提供的存储设备也可以部分由服务器104执行,部分由存储设备101、102执行。相应的,本公开实施例所提供的图像拼接装置也可以部分设置于服务器104中,部分设置于存储设备101、102中。
[0049]
应该理解,图1中的存储设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的存储设备、网络和服务器。
[0050]
图2示意性示出了根据本公开一实施例的图像拼接方法的流程图。
[0051]
如图2所示,该图像拼接方法可以基于遗传算法实现,例如可以包括操作s201~s207。
[0052]
在操作s201,获取参考图像及待拼接图像对应的待匹配特征点对,将待匹配特征点对随机分为m组。
[0053]
本公开实施例中,基于遗传算法,所有待匹配特征点对可以看作一个种群,对待匹配特征点对进行随机分组,以生成m个小种群,每组种群所含m组点对,每个组称为一个个体。
[0054]
在操作s202,依据每组包含的待匹配特征点对,计算该组对应的第一特征变换矩阵,得到m个第一特征变换矩阵。
[0055]
本公开实施例中,对每个个体,计算其对应的特征变换矩阵(例如h矩阵),将该变换矩阵设为该个体的基因。
[0056]
h矩阵可以由下式定义:
[0057][0058]
其中,(x,y)为待拼接图像中特征点对应的角点坐标,(x

,y

)为参考图像中特征点对应的角点坐标,h
nl
为h矩阵的矩阵元素,为待求解的参数。
[0059]
在操作s203,计算每一个第一特征变换矩阵对应的适应度值。
[0060]
在操作s204,随机交换适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素,得到n个第二特征变换矩阵。
[0061]
本公开实施例中,对每个个体的适应度按概率筛选,剔除低适应度个体,并保留高适应度个体,并对高适应度个体进行基因交换(矩阵元素交换),以得到新的个体。交换过程中涉及的基因数量远远大于四,也即覆盖的特征点范围广。
[0062]
在操作s205,计算每一个第二特征变换矩阵对应的适应度值。
[0063]
本公开实施例中,依据得到的新个体,重新计算其对应的适应度。
[0064]
在操作s206,随机交换适应度值大于预设阈值的第二特征变换矩阵之间的部分矩
阵元素,得到k个第三特征变换矩阵,依次迭代,直至得到最优的特征变换矩阵。
[0065]
本公开实施例中,将上一代得到的适应度高的新个体遗传至下一代进行迭代。
[0066]
在操作s207,基于上述最优的特征变换矩阵,对参考图像与待拼接图像进行拼接。
[0067]
基于上述图像拼接方法,在变换矩阵的求解过程中,覆盖的匹配特征点数量远远多于传统的ransac算法,避免局部区域匹配导致的图像拼接准确度地的问题。在迭代求解的过程中,每一次迭代并不是相互独立的,基于适应度,选择适应度高的特征变换矩阵对应的匹配特征点进行迭代求解,将上一次迭代过程中表现优异的特征遗传到下一次迭代过程,来优化待匹配特征点,降低错误匹配率,进而提高图像拼接的准确度。并且,在每一次迭代求解过程中,通过随机交换特征矩阵之间的矩阵元素,并不是针对于指定的四个元素,可进一步避免局部区域匹配导致的图像拼接准确度地低的问题。
[0068]
图3示意性示出了根据本公开又一实施例的图像拼接方法的流程图。
[0069]
如图3所示,该图像拼接方法例如可以包括:
[0070]
在操作s201,获取参考图像及待拼接图像对应的待匹配特征点对,将待匹配特征点对随机分为m组。
[0071]
在操作s202,依据每组包含的待匹配特征点对,计算该组对应的第一特征变换矩阵,得到m个第一特征变换矩阵。
[0072]
在操作s203,计算每一个第一特征变换矩阵对应的适应度值。
[0073]
在操作s301,随机交换适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素,同时,针对于至少一个适应度值大于预设阈值的第一特征变换矩阵,随机改变特征变换矩阵中的部分矩阵元素,得到n个第二特征变换矩阵。
[0074]
本公开实施例中,不仅对高适应度个体进行基因交换(矩阵元素交换),还对部分个体进行变异操作(改变矩阵元素),以得到新的个体。
[0075]
在操作s205,计算每一个第二特征变换矩阵对应的适应度值。
[0076]
在操作s302,随机交换适应度值大于预设阈值的第二特征变换矩阵之间的部分矩阵元素,同时,针对于至少一个适应度值大于预设阈值的第二特征变换矩阵,随机改变特征变换矩阵中的部分矩阵元素,得到k个第三特征变换矩阵,依次迭代,直至得到最优的特征变换矩阵。
[0077]
在操作s207,基于上述最优的特征变换矩阵,对参考图像与待拼接图像进行拼接。
[0078]
基于上述图像拼接方法,在图2所示方法的基础上,进一步通过变异操作随机改变特征变换矩阵中的部分矩阵元素,为待匹配特征点对引入新的特征,从而改善局部搜索能力,进一步地提高图像拼接的准确度。
[0079]
下面结合附图,对上述图像拼接方法进行进一步说明。
[0080]
图4示意性示出了根据本公开实施例的获取待匹配特征点对的方法流程图。
[0081]
如图4所示,该方法例如可以包括操作s401~操作s403。
[0082]
在操作s401,分别对参考图像及待拼接图像进行预处理。
[0083]
图像的预处理可以是对图片进行灰度处理,对图片进行去澡处理等等。
[0084]
在操作s402,对预处理后的参考图像进行特征提取,得到第一特征点,对预处理后的待拼接图像进行特征提取,得到第二特征点。
[0085]
应当理解,第一特征点与第二特征点代表的是参考图像与待拼接图像中可供比较
的特征点。
[0086]
在操作s403,将第一特征点与第二特征点进行匹配,筛选相同或相似的特征,以作为待匹配特征点对。
[0087]
基于该方法,可对特征点进行粗略的匹配,以便减少后续优化的待匹配特征点对的数量,减少计算量,从而节约计算资源。
[0088]
图5示意性示出了根据本公开实施例的依据待匹配特征点对计算第一特征变换矩阵的方法流程图。
[0089]
如图5所示,该方法例如可以包括操作s501。
[0090]
在操作s501,采用最小二乘法计算第一特征变换矩阵。
[0091]
本公开实施例中,待匹配特征点对的数量为多个(超过四个),h矩阵满足变换公式:
[0092]
a
i
h=a

i
[0093]
其中,a

i
,a
i
代表多个匹配点对的集合,a
i
表示特征变换前的待匹配特征点,a

i
表示特征变换后的待匹配特征点。
[0094]
针对于上述公式的求解,可以最小二乘法求超定方程。
[0095]
具体地,设ax=b,利用最小二乘法求得使||ax

b||为最小值的解,也即求||ax

b||2的最小值。由矩阵的范数以及求导知识可以得出:
[0096]
||ax

b||2=x
t
a
t
ax

b
t
ax

x
t
a
t
b+b
t
b
[0097]
对上述求导得:
[0098][0099]
即可得到:
[0100]
x=(a
t
a)
‑1a
t
b。
[0101]
本公开实施例中,可以选择h矩阵的中八个矩阵元素作为每个个体的基因,对这八个矩阵元素进行优化,以得到最优的变换矩阵。
[0102]
图6示意性示出了根据本公开实施例的计算特征变换矩阵对应的适应度值的方法流程图。
[0103]
如图6所示,该方法例如可以包括操作s601。
[0104]
在操作s601,根据内点数量、内点偏差距离及内点分散程度,计算适应度值。
[0105]
本公开实施例中,当一待匹配特征点经过特征变换矩阵变换得到的特征点与该待匹配特征点之间的投影误差小于预设值时,该待匹配特征点为内点,当一待匹配特征点经过特征变换矩阵变换得到的特征点与该待匹配特征点之间的投影误差大于预设值时,该待匹配特征点为外点。
[0106]
本公开实施例中,投影误差s的计算方式可以为:
[0107][0108]
其中,m为每一小种群中待匹配特征点对的数量,(x,y)为待拼接图像中特征点对应的角点坐标,(x

,y

)为参考图像中特征点对应的角点坐标,h
nl
为h矩阵的矩阵元素,i,j
为待匹配特征点对的序号。
[0109]
本公开实施例中,根据内点数量、内点偏差距离及内点分散程度,计算适应度值可以为:
[0110]
根据公式:
[0111][0112]
计算适应度,其中,v为适应度,α、β、γ为系数,p为内点数量,i、j为内点的编号,s
i
为第i个内点的投影误差,a
i
表示第i个内点的特征,a
j
表示第j个内点的特征。也即,公式中第一项表示内点数量,第二项表示内点偏差距离,第三项表示内点分散程度。
[0113]
由于适应度函数的选取直接关系到种群的进化方向,亦即影响优化问题最终解的优劣,选择一个合理的适应度可以加快收敛速度并有助于找到最优解。在ransac算法中变换矩阵的求取只考虑其覆盖的内点数量,在本公开实施例的适应中,综合考虑覆盖的内点数量、覆盖点集偏差距离、内点分散程度,以求解最优的特征变换矩阵。最优的变换矩阵应该尽量匹配出足够多的内点,同时保证选出的内点变换后的距离误差较小、点集分散程度较高。这样做的好处是不仅在内点数相同时确立了进化的方向,而且也可以通过尽力减少这个偏差值来使得变换矩阵的特性更优良。同时在应用于小视差图片时,应使特征点的分布范围更大,以避免得到局部最优而不是全局最优的矩阵,造成图片部分拼接良好,而其它部分拼接效果很差的情况。因此,基于该种适应计算方式,可进一步保证图像拼接的准确度,清晰度。
[0114]
应当理解,不管是第一特征变换矩阵,还是第二特征变换矩阵,亦或是第三特征变换矩阵,乃至第x特征变换矩阵,均可采用上述方式计算适应度。
[0115]
进一步地,本公开实施例中,还可按照适应度值对第一特征变换矩阵进行排序,选择适应度最高的第一特征变换矩阵与其他第一特征变换矩阵进行矩阵元素交换。这样能够选出适应度最高的个体遗传到下一代群体中,重复此操作直到下一代种群的规模满足要求。
[0116]
图7示意性示出了根据本公开实施例的随机交换矩阵元素的方法流程图。
[0117]
如图7所示,该方法例如可以包括操作s701。
[0118]
在操作s701,通过单点交叉交换和/或两点交叉交换的对适应度值大于预设阈值的特征变换矩阵之间的部分矩阵元素进行随机交换。
[0119]
本公开实施例中,单点交叉交换可以是:选择特征变换矩阵中的一个元素,将该特征变换矩阵分成两部分,选择其中一部分与其他特征变换中的元素进行交换。两点交叉交换可以是:选择特征变换矩阵中的两个元素,将该特征变换矩阵分成三部分,选择中间部分与其他特征变换中的元素进行交换。两者操作可以单独使用,也可以集合使用,以生成新的个体。
[0120]
图8示意性示出了根据本公开实施例的基因变异操作方法流程图。
[0121]
如图8所示,该方法例如可以包括操作s801。
[0122]
在操作s801,采用标准正态分布的随机数特征变换矩阵中的矩阵元素相乘,以改变矩阵元素。
[0123]
本公开实施例中,变异操作能够为个体引入新的特征,从而能够改善遗传算法的
局部搜索能力。本公开可以用符合均值为μ,方差为σ2的正态分布的随机数乘以矩阵中的一个矩阵元素,以进行基因变异。
[0124]
应当理解,不管是第一特征变换矩阵,还是第二特征变换矩阵,亦或是第三特征变换矩阵,乃至第x特征变换矩阵,均可采用上述方式计算变异操作。
[0125]
图9示意性示出了根据本公开实施例的基于最优的特征变换矩阵对参考图像与待拼接图像进行拼接的方法流程图。
[0126]
如图9所示,该方法例如可以包括操作s901~操作s902。
[0127]
在操作s901,基于最优的特征变换矩阵,对待拼接图像进行图像变换。
[0128]
本公开实施例中,基于前述求解得到的最优特征变换矩阵,对待拼接图像中的特征进行特征转换,以适应参考图像。
[0129]
在操作s902,将经过图像变换后的待拼接图像与参考图像进行图像融合。
[0130]
本公开实施例中,经过图像融合以消除拼接接缝,完成待拼接图像与参考图像的拼接。
[0131]
需要说明的是,采用本公开实施例的迭代方法进行特征变换矩阵优化过程中,一般20代左右时,适应度已无明显提升,这也使得本申请优选的迭代次数一般在20次。
[0132]
图10示意性示出了根据本公开一实施例的图像拼接装置的框图。
[0133]
如图10所示,图像拼接装置1000例如可以包括获取模块1010、第一计算模块1020、第二计算模块1030、第一交换模块1040、第三计算模块1050、第二交换模块1060及拼接模块1070。
[0134]
获取模块1010,用于获取参考图像及待拼接图像对应的待匹配特征点对,将待匹配特征点对随机分为m组对。
[0135]
第一计算模块1020,用于依据每组包含的待匹配特征点对,计算该组对应的第一特征变换矩阵,得到m个第一特征变换矩阵。
[0136]
第二计算模块1030,用于计算每一个第一特征变换矩阵对应的适应度值。其中,可以根据内点数量、内点偏差距离及内点分散程度,计算适应度值。
[0137]
第一交换模块1040,用于随机交换适应度值大于预设阈值的第一特征变换矩阵之间的部分矩阵元素,得到n个第二特征变换矩阵。
[0138]
第三计算模块1050,用于计算每一个第二特征变换矩阵对应的适应度值。其中,可以根据内点数量、内点偏差距离及内点分散程度,计算适应度值
[0139]
第二交换模块1060,用于随机交换适应度值大于预设阈值的第二特征变换矩阵之间的部分矩阵元素,得到k个第三特征变换矩阵,依次迭代,直至得到最优的特征变换矩阵。
[0140]
拼接模块1070,用于基于上述最优的特征变换矩阵,对参考图像与待拼接图像进行拼接。
[0141]
图11示意性示出了根据本公开又一实施例的图像拼接装置的框图。
[0142]
如图11所示,图像拼接装置1000例如可以包括变异模块1080。
[0143]
变异模块1080,用于针对于每一适应度值大于预设阈值的特征变换矩阵,随机改变特征变换矩阵中的部分矩阵元素。
[0144]
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单
元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0145]
例如,获取模块1010、第一计算模块1020、第二计算模块1030、第一交换模块1040、第三计算模块1050、第二交换模块1060、拼接模块1070及变异模块1080中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,获取模块1010、第一计算模块1020、第二计算模块1030、第一交换模块1040、第三计算模块1050、第二交换模块1060、拼接模块1070及变异模块1080中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块1010、第一计算模块1020、第二计算模块1030、第一交换模块1040、第三计算模块1050、第二交换模块1060、拼接模块1070及变异模块1080中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0146]
需要说明的是,本公开的实施例中图像拼接装置部分与本公开的实施例中图像拼接方法部分是相对应的,其具体实施细节及带来的技术效果也是相同的,在此不再赘述。
[0147]
图12示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。图12示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0148]
如图12所示,根据本公开实施例的电子设备1200包括处理器1201,其可以根据存储在只读存储器(rom)1202中的程序或者从存储部分1208加载到随机访问存储器(ram)1203中的程序而执行各种适当的动作和处理。处理器1201例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器1201还可以包括用于缓存用途的板载存储器。处理器1201可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0149]
在ram 1203中,存储有电子设备1200操作所需的各种程序和数据。处理器1201、rom 1202以及ram1203通过总线1204彼此相连。处理器1201通过执行rom 1202和/或ram1203中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 1202和ram 1203以外的一个或多个存储器中。处理器1201也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
[0150]
根据本公开的实施例,电子设备1200还可以包括输入/输出(i/o)接口1205,输入/
输出(i/o)接口1205也连接至总线1204。电子设备1200还可以包括连接至i/o接口1205的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至i/o接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
[0151]
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被处理器1201执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0152]
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
[0153]
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0154]
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom1202和/或ram 1203和/或rom 1202和ram 1203以外的一个或多个存储器。
[0155]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能电可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0156]
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1