图像拼接及全景图拼接方法和装置、存储介质、电子设备
技术领域
本公开涉及图像拼接技术领域,尤其是一种图像拼接及全景图拼接方法和装置、存储介质、电子设备。
背景技术
现有技术中,对于将图像进行全景拼接大多采用基于特征的全景拼接,即,用户在一个点位环形拍摄一圈图像序列,在拼接过程中,通过图像中的特征点,直接确定图像直接的映射矩阵,并基于映射矩阵进行图像融合生成全景图。
现有技术的图像拼接过程依赖于图像的特征点数量以及图像之间特征点匹配正确率,但是在图像中的特征较少、特征集中在图像的局部区域,或特征匹配正确率较低等情况下,难以准确地恢复图像之间的变换关系。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种图像拼接及全景图拼接方法和装置、存储介质、电子设备。
根据本公开实施例的一个方面,提供了一种图像拼接方法,包括:
基于第一图像和第二图像确定初始映射矩阵;其中,所述第一图像和所述第二图像之间存在部分重叠;
基于所述第一图像、所述第二图像和所述初始映射矩阵,确定目标映射矩阵;
基于所述目标映射矩阵对所述图像序列中的所述第一图像和所述第二图像进行拼接。
可选地,所述基于第一图像和第二图像确定初始映射矩阵,包括:
分别对所述第一图像和所述第二图像进行特征提取,得到第一特征点集和第二特征点集;其中,所述第一特征点集包括多个第一特征点,所述第二特征点集包括多个第二特征点;
基于所述第一特征点集和所述第二特征点集中包括的多对特征点对,确定所述初始映射矩阵;其中,每对所述特征点对包括存在对应关系的所述第一特征点和所述第二特征点。
可选地,所述基于所述第一特征点集和所述第二特征点集中包括的多对特征点对,确定所述初始映射矩阵,包括:
基于所述第一特征点集中每个第一特征点的描述子与所述第二特征点集中每个第二特征点的描述子之间的距离,确定所述多对特征点对;
基于所述多对特征点对中的每对特征点对之间的映射关系,确定所述初始映射矩阵。
可选地,所述基于所述第一图像、所述第二图像和所述初始映射矩阵,确定目标映射矩阵,包括:
利用所述初始映射矩阵将所述第一图像映射到所述第二图像所在的图像空间,得到第一映射图像;
确定所述第一映射图像和所述第二图像的重叠区域作为感兴趣区域;
基于所述感兴趣区域、所述第一图像和所述第二图像,确定所述目标映射矩阵。
可选地,所述利用所述初始映射矩阵将所述第一图像映射到所述第二图像所在的图像空间,得到第一映射图像,包括:
利用所述初始映射矩阵将所述第一图像映射到所述第二图像所在的图像空间,得到所述第一图像中多个像素对应的多个映射像素;
对所述多个映射像素进行双线性插值处理,得到所述第一映射图像。
可选地,所述基于所述感兴趣区域、所述第一图像和所述第二图像,确定所述目标映射矩阵,包括:
对所述感兴趣区域在所述第一图像中对应的区域提取角点,得到第一角点集合;其中,所述第一角点集合包括多个第一角点;
基于所述第一角点集合采用光流法在所述第二图像中确定与所述第一角点集合对应的第二角点集合;其中,所述第二角点集合包括多个第二角点;
基于所述第一角点集合和所述第二角点集合,确定所述目标映射矩阵。
可选地,在基于所述第三角点集合和所述第二角点集合,确定所述目标映射矩阵之前,还包括:
基于所述第二角点集合采用光流法在所述第一图像中确定与所述第二角点集合对应的第三角点集合;其中,所述第三角点集合包括多个第三角点;
基于所述第一角点集合中每个第一角点与所述第三角点集合中对应的第三角点之间的距离,剔除所述第一角点集合中的异常角点,得到第四角点集合;其中,所述第四角点集合包括多个第四角点;
所述基于所述第三角点集合和所述第二角点集合,确定所述目标映射矩阵,包括:
通过所述第四角点集合和所述第二角点集合,确定所述目标映射矩阵。
可选地,所述基于所述第一角点集合中每个第一角点与所述第三角点集合中对应的第三角点之间的距离,剔除所述第一角点集合中的异常角点,得到第四角点集合,包括:
根据所述第一角点集合中每个第一角点与所述第三角点集合中对应的第三角点之间的距离是否大于预设阈值,确定所述第一角点是否为异常角点;
剔除所述第一角点集合中的异常角点,得到所述第四角点集合。
可选地,根据所述第一角点集合中每个第一角点与所述第三角点集合中对应的第三角点之间的距离是否大于预设阈值,确定所述第一角点是否为异常角点,包括:
针对所述第一角点集合中的每个第一角点,基于所述第一角点的描述子与所述第三角点集合中每个第三角点的描述子之间的距离,确定与所述第一角点对应的第三角点;
响应于所述第一角点与所述对应的第三角点之间的距离大于预设阈值,确定所述第一角点为异常角点;
响应于所述第一角点与所述对应的第三角点之间的距离不大于预设阈值,确定所述第一角点不是异常角点。
可选地,所述通过所述第四角点集合和所述第二角点集合,确定所述目标映射矩阵,包括:
基于所述第四角点集合中每个第四角点的描述子与所述第二角点集合中每个第二角点的描述子之间的距离,确定多对角点对;
基于所述多对角点对中的每对角点对之间的映射关系,确定所述目标映射矩阵。
根据本公开实施例的另一方面,提供了一种全景图拼接方法,包括:
在设定位置采用点位环形拍摄,得到待拼接的图像序列;所述图像序列中包括的多个图像中每两个相邻的图像之间部分重叠;
对所述图像序列中的每两个相邻的图像进行拼接,得到拼接后的全景图;其中,所述每两个相邻的图像的拼接基于如上述任一实施例所述的图像拼接方法实现。
根据本公开实施例的又一方面,提供了一种图像拼接装置,包括:
初始映射模块,用于基于第一图像和第二图像确定初始映射矩阵;其中,所述第一图像和所述第二图像之间存在部分重叠;
目标映射模块,用于基于所述第一图像、所述第二图像和所述初始映射矩阵,确定目标映射矩阵;
图像拼接模块,用于基于所述目标映射矩阵对所述图像序列中的所述第一图像和所述第二图像进行拼接。
可选地,所述初始映射模块,包括:
特征提取单元,用于分别对所述第一图像和所述第二图像进行特征提取,得到第一特征点集和第二特征点集;其中,所述第一特征点集包括多个第一特征点,所述第二特征点集包括多个第二特征点;
点对映射单元,用于基于所述第一特征点集和所述第二特征点集中包括的多对特征点对,确定所述初始映射矩阵;其中,每对所述特征点对包括存在对应关系的所述第一特征点和所述第二特征点。
可选地,所述点对映射单元,具体用于基于所述第一特征点集中每个第一特征点的描述子与所述第二特征点集中每个第二特征点的描述子之间的距离,确定所述多对特征点对;基于所述多对特征点对中的每对特征点对之间的映射关系,确定所述初始映射矩阵。
可选地,所述目标映射模块,包括:
第一映射单元,用于利用所述初始映射矩阵将所述第一图像映射到所述第二图像所在的图像空间,得到第一映射图像;
区域确定单元,用于确定所述第一映射图像和所述第二图像的重叠区域作为感兴趣区域;
矩阵确定单元,用于基于所述感兴趣区域、所述第一图像和所述第二图像,确定所述目标映射矩阵。
可选地,所述第一映射单元,具体用于利用所述初始映射矩阵将所述第一图像映射到所述第二图像所在的图像空间,得到所述第一图像中多个像素对应的多个映射像素;对所述多个映射像素进行双线性插值处理,得到所述第一映射图像。
可选地,所述矩阵确定单元,包括:
第一角点单元,用于对所述感兴趣区域在所述第一图像中对应的区域提取角点,得到第一角点集合;其中,所述第一角点集合包括多个第一角点;
第二角点单元,用于基于所述第一角点集合采用光流法在所述第二图像中确定与所述第一角点集合对应的第二角点集合;其中,所述第二角点集合包括多个第二角点;
映射矩阵单元,用于基于所述第一角点集合和所述第二角点集合,确定所述目标映射矩阵。
可选地,所述矩阵确定单元,还包括:
第三角点单元,用于基于所述第二角点集合采用光流法在所述第一图像中确定与所述第二角点集合对应的第三角点集合;其中,所述第三角点集合包括多个第三角点;
第四角点单元,用于基于所述第一角点集合中每个第一角点与所述第三角点集合中对应的第三角点之间的距离,剔除所述第一角点集合中的异常角点,得到第四角点集合;其中,所述第四角点集合包括多个第四角点;
所述映射矩阵单元,具体用于通过所述第四角点集合和所述第二角点集合,确定所述目标映射矩阵。
可选地,所述第四角点单元,具体用于根据所述第一角点集合中每个第一角点与所述第三角点集合中对应的第三角点之间的距离是否大于预设阈值,确定所述第一角点是否为异常角点;剔除所述第一角点集合中的异常角点,得到所述第四角点集合。
可选地,所述第四角点单元在根据所述第一角点集合中每个第一角点与所述第三角点集合中对应的第三角点之间的距离是否大于预设阈值,确定所述第一角点是否为异常角点时,用于针对所述第一角点集合中的每个第一角点,基于所述第一角点的描述子与所述第三角点集合中每个第三角点的描述子之间的距离,确定与所述第一角点对应的第三角点;响应于所述第一角点与所述对应的第三角点之间的距离大于预设阈值,确定所述第一角点为异常角点;响应于所述第一角点与所述对应的第三角点之间的距离不大于预设阈值,确定所述第一角点不是异常角点。
可选地,所述映射矩阵单元,具体用于基于所述第四角点集合中每个第四角点的描述子与所述第二角点集合中每个第二角点的描述子之间的距离,确定多对角点对;基于所述多对角点对中的每对角点对之间的映射关系,确定所述目标映射矩阵。
根据本公开实施例的还一方面,提供了一种全景图拼接装置,包括:
图像获取模块,用于在设定位置采用点位环形拍摄,得到待拼接的图像序列;所述图像序列中包括的多个图像中每两个相邻的图像之间部分重叠;
全景图拼接模块,用于对所述图像序列中的每两个相邻的图像进行拼接,得到拼接后的全景图;其中,所述每两个相邻的图像的拼接基于如上述任一实施例所述的图像拼接方法实现。
根据本公开实施例的再一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一实施例所述的方法。
根据本公开实施例的再一方面,提供了一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一实施例所述的方法。
基于本公开上述实施例提供的一种图像拼接及全景图拼接方法和装置、存储介质、电子设备,基于第一图像和第二图像确定初始映射矩阵;其中,所述第一图像和所述第二图像之间存在部分重叠;基于所述第一图像、所述第二图像和所述初始映射矩阵,确定目标映射矩阵;基于所述目标映射矩阵对所述图像序列中的所述第一图像和所述第二图像进行拼接;本实施例通过第一图像和第二图像对初始映射矩阵进行调整,获得的目标映射矩阵更准确,并且更具鲁棒性。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例提供的图像拼接方法的流程示意图。
图2是本公开图1所示的实施例中步骤102的一个流程示意图。
图3是本公开图2所示的实施例中步骤1022的一个流程示意图。
图4是本公开图1所示的实施例中步骤104的一个流程示意图。
图5是本公开图4所示的实施例中步骤1043的一个流程示意图。
图6是本公开图4所示的实施例中步骤1043的另一个流程示意图。
图7是本公开一示例性实施例提供的全景图拼接方法的流程示意图。
图8是本公开一示例性实施例提供的图像拼接装置的结构示意图。
图9是本公开一示例性实施例提供的全景图拼接装置的结构示意图。
图10是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
申请概述
在实现本公开的过程中,发明人发现,现有技术中通常基于特征点实现图像拼接,该技术方案至少存在以下问题:在图像中的特征较少、特征集中在图像的局部区域,或特征匹配正确率较低等情况下,难以准确地恢复图像之间的变换关系。
示例性方法
图1是本公开一示例性实施例提供的图像拼接方法的流程示意图。本实施例可应用在电子设备上,如图1所示,包括如下步骤:
步骤102,基于第一图像和第二图像确定初始映射矩阵。
其中,第一图像和第二图像之间存在部分重叠。
本实施例中,第一图像和第二图像可通过特征信息建立连接关系,可选地,基于第一图像对应的特征点和第二图像对应的特征点之间的映射关系,确定初始映射矩阵。
步骤104,基于第一图像、第二图像和初始映射矩阵,确定目标映射矩阵。
在一实施例中,基于初始映射矩阵对第一图像和第二图像进行拼接只能实现大致的连接效果,并不能实现较好的将第一图像和第二图像进行拼接,本实施例中再次基于第一图像和第二图像对初始映射矩阵进行调整,可选地,可利用第一图像和第二图像中的角点确定目标映射矩阵,由于角点不需要特征描述,提取速度更快,可更快验证映射矩阵。
步骤106,基于目标映射矩阵对图像序列中的第一图像和第二图像进行拼接。
本实施例中,通过目标映射矩阵建立了两个第一图像和第二图像之间的连接关系,基于该连接关系可实现第一图像和第二图像之间的拼接(或融合)。
本公开上述实施例提供的一种图像拼接方法,基于第一图像和第二图像确定初始映射矩阵;其中,所述第一图像和所述第二图像之间存在部分重叠;基于所述第一图像、所述第二图像和所述初始映射矩阵,确定目标映射矩阵;基于所述目标映射矩阵对所述图像序列中的所述第一图像和所述第二图像进行拼接;本实施例通过第一图像和第二图像对初始映射矩阵进行调整,获得的目标映射矩阵更准确,并且更具鲁棒性。
如图2所示,在上述图1所示实施例的基础上,步骤102可包括如下步骤:
步骤1021,分别对第一图像和第二图像进行特征提取,得到第一特征点集和第二特征点集。
其中,第一特征点集包括多个第一特征点,第二特征点集包括多个第二特征点。
步骤1022,基于第一特征点集和第二特征点集中包括的多对特征点对,确定初始映射矩阵。
其中,每对特征点对包括存在对应关系的第一特征点和第二特征点。
本实施例中,首先分别对第一图像和第二图像进行特征提取,其中,特征提取算法包括但不仅限于SIFT、ORB、SURF、BRISK等,可选地,特征点包括角点和特征向量;由于特征点是较为密集的点,在确定第一特征点集和第二特征点集中包括对称的特征点对之后,通过对称的特征点对之间的关系逆推,得到初始映射矩阵。
如图3所示,在上述图2所示实施例的基础上,步骤1022可包括如下步骤:
步骤301,基于第一特征点集中每个第一特征点的描述子与第二特征点集中每个第二特征点的描述子之间的距离,确定多对特征点对。
步骤302,基于多对特征点对中的每对特征点对之间的映射关系,确定初始映射矩阵。
本实施例中,每对特征点对之间的描述子距离,主要思路就是在特征点附近随机选取若干点对,将这些点对的灰度值的大小,组合成一个二进制串,并将这个二进制串作为该特征点的特征描述子;在匹配时只需计算两特征点描述子的距离(例如,海明Hamming距离),判断是否符合匹配的依据,例如:经过大量实验数据测试,不匹配特征点的描述子的Hamming距离在128像素左右,匹配点对描述子的Hamming距离则远小于128像素;当符合匹配的依据,则确定两个特征点为一对对称的特征点对。
如图4所示,在上述图1所示实施例的基础上,步骤104可包括如下步骤:
步骤1041,利用初始映射矩阵将第一图像映射到第二图像所在的图像空间,得到第一映射图像。
步骤1042,确定第一映射图像和第二图像的重叠区域作为感兴趣区域。
步骤1043,基于感兴趣区域、第一图像和第二图像,确定目标映射矩阵。
本实施例中,利用初始映射矩阵将第一图像映射到第二图像所在的图像空间,该映射过程为单应性映射,其中,平面的单应性被定义为从一个平面到另一个平面的投影映射;即,本实施例中的第一映射图像可以是第一图像在第二图像所在图像空间(如平面)的投影,通过第一映射图像与第二图像恢复出第一图像与第二图像之间的重叠区域,将重叠区域作为感兴趣区域(ROI),通过该感兴趣区域结合第一图像和第二图像可确定目标映射矩阵。
可选地,步骤1041可以包括:
利用初始映射矩阵将第一图像映射到第二图像所在的图像空间,得到第一图像中多个像素对应的多个映射像素;
对多个映射像素进行双线性插值处理,得到第一映射图像。
本实施例中,将第一图像映射到第二图像所在的图像空间是,得到的多个映射像素可能不是整数(如,小数等),此时无法确定第一映射图像(像素值应为整数表示),因此,本实施例采用双线性插值的方式将映射像素调整为整数,进而得到第一映射图像。
如图5所示,在上述图4所示实施例的基础上,步骤1043可包括如下步骤:
步骤502,对感兴趣区域在第一图像中对应的区域提取角点,得到第一角点集合。
其中,第一角点集合包括多个第一角点。
步骤504,基于第一角点集合采用光流法在第二图像中确定与第一角点集合对应的第二角点集合。
其中,第二角点集合包括多个第二角点。
步骤508,基于第一角点集合和第二角点集合,确定目标映射矩阵。
本实施中,对感兴趣区域在第一图像中的对应区域提取角点,由于角点不需要关键点进行描述,相对于特征点来说,角点的提取速度快,且提取过程仅受到图像梯度的影响,使得图像能尽可能地覆盖整个图像空间,而不仅限于图像纹理丰富的区域;而光流法则能通过图像角点建立图像之间的连接关系,其中,光流法可实现角点跟踪,确定每个角点在另一图像中对应的角点,本实施例中仅应用光流法的部分功能,即利用光流法确定匹配的角点对;通过匹配的角点对(对应的第一角点和第二角度)之间的关系即可确定目标映射矩阵。
如图6所示,在上述图4所示实施例的基础上,步骤1043还可包括如下步骤:
步骤502,对感兴趣区域在第一图像中对应的区域提取角点,得到第一角点集合。
其中,第一角点集合包括多个第一角点。
步骤504,基于第一角点集合采用光流法在第二图像中确定与第一角点集合对应的第二角点集合。
其中,第二角点集合包括多个第二角点。
步骤606,基于第二角点集合采用光流法在第一图像中确定与第二角点集合对应的第三角点集合。
其中,第三角点集合包括多个第三角点。
步骤607,基于第一角点集合中每个第一角点与第三角点集合中对应的第三角点之间的距离,剔除第一角点集合中的异常角点,得到第四角点集合。
其中,第四角点集合包括多个第四角点。
步骤608,通过第四角点集合和第二角点集合,确定目标映射矩阵。
本实施例中,对于通过对比第一角点集合中每个第一角点与第三角点集合中对应的第三角点之间的距离确定该第一角点是否是异常的,当一个第一角点异常,表示该第一角点在通过第二图像进行光流法无法匹配到第一图像中的对应角点,如继续以该角点确定目标映射矩阵,将产生较大误差,因此,本实施例删除异常角点,以第四角点集合与第二角点集合确定目标映射矩阵。
可选地,步骤607包括:根据第一角点集合中每个第一角点与第三角点集合中对应的第三角点之间的距离是否大于预设阈值,确定第一角点是否为异常角点;剔除第一角点集合中的异常角点,得到第四角点集合。
具体地,针对第一角点集合中的每个第一角点确定是否是异常角点包括:基于第一角点的描述子与第三角点集合中每个第三角点的描述子之间的距离,确定与第一角点对应的第三角点;
响应于第一角点与对应的第三角点之间的距离大于预设阈值,确定第一角点为异常角点;
响应于第一角点与对应的第三角点之间的距离不大于预设阈值,确定第一角点不是异常角点。
本实施例中,通过描述子之间的距离确定第一角点是否是异常角点,其中,描述子是在第一角点附近随机选取若干点对,将这些点对的灰度值的大小,组合成一个二进制串,并将这个二进制串作为该第一角点的描述子;可选地,可通过确定第一角点的描述子与对应的第三角点的描述子之间的海明距离,确定第一角点是否为异常角点,其中预设阈值可根据实际应用情况进行调整。
可选地,步骤608可包括如下步骤:
基于第四角点集合中每个第四角点的描述子与第二角点集合中每个第二角点的描述子之间的距离,确定多对角点对;
基于多对角点对中的每对角点对之间的映射关系,确定目标映射矩阵。
本实施例中,确定角点对的方法与上述实施例中确定特征点对的方法类似,确定每对角点对之间的描述子距离,主要思路就是在角点附近随机选取若干点对,将这些点对的灰度值的大小,组合成一个二进制串,并将这个二进制串作为该角点的描述子;在匹配时只需计算两角点描述子的距离(例如,海明Hamming距离),判断是否符合匹配的依据;当符合匹配的依据,则确定两个角点为一对对称的角点对;通过多个对角点对即可建立第一图像与第二图像之间的连接关系,确定目标映射矩阵。
本公开实施例提供的任一种图像拼接方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种图像拼接方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种图像拼接方法。下文不再赘述。
图7是本公开一示例性实施例提供的全景图拼接方法的流程示意图。本实施例可应用在电子设备上,如图7所示,包括如下步骤:
步骤702,在设定位置采用点位环形拍摄,得到待拼接的图像序列。
图像序列中包括的多个图像中每两个相邻的图像之间部分重叠。
步骤704,对图像序列中的每两个相邻的图像进行拼接,得到拼接后的全景图。
其中,每两个相邻的图像的拼接基于上述如图1-6任一提供的图像拼接方法实现。
本实施例中,应用上述图1-6任一提供的图像拼接方法对当前相机在一个点位环形拍摄到的图像序列进行拼接,克服了现有技术拼接不准确的缺点,获得了更准确的描述连接关系的目标映射矩阵,进而鲁棒地恢复出准确的图像连接关系。
本公开实施例提供的任一种全景图拼接方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种全景图拼接方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种全景图拼接方法。下文不再赘述。
示例性装置
图8是本公开一示例性实施例提供的图像拼接装置的结构示意图。如图8所示,该实施例提供的装置包括:
初始映射模块81,用于基于第一图像和第二图像确定初始映射矩阵。
其中,第一图像和第二图像之间存在部分重叠。
目标映射模块82,用于基于第一图像、第二图像和初始映射矩阵,确定目标映射矩阵。
图像拼接模块83,用于基于目标映射矩阵对图像序列中的第一图像和第二图像进行拼接。
本公开上述实施例提供的一种图像拼接装置,基于第一图像和第二图像确定初始映射矩阵;其中,所述第一图像和所述第二图像之间存在部分重叠;基于所述第一图像、所述第二图像和所述初始映射矩阵,确定目标映射矩阵;基于所述目标映射矩阵对所述图像序列中的所述第一图像和所述第二图像进行拼接;本实施例通过第一图像和第二图像对初始映射矩阵进行调整,获得的目标映射矩阵更准确,并且更具鲁棒性。
在一些可选的实施例中,初始映射模块81,包括:
特征提取单元,用于分别对第一图像和第二图像进行特征提取,得到第一特征点集和第二特征点集;其中,第一特征点集包括多个第一特征点,第二特征点集包括多个第二特征点;
点对映射单元,用于基于第一特征点集和第二特征点集中包括的多对特征点对,确定初始映射矩阵;其中,每对特征点对包括存在对应关系的第一特征点和第二特征点。
可选地,点对映射单元,具体用于基于第一特征点集中每个第一特征点的描述子与第二特征点集中每个第二特征点的描述子之间的距离,确定多对特征点对;基于多对特征点对中的每对特征点对之间的映射关系,确定初始映射矩阵。
在一些可选的实施例中,目标映射模块82,包括:
第一映射单元,用于利用初始映射矩阵将第一图像映射到第二图像所在的图像空间,得到第一映射图像;
区域确定单元,用于确定第一映射图像和第二图像的重叠区域作为感兴趣区域;
矩阵确定单元,用于基于感兴趣区域、第一图像和第二图像,确定目标映射矩阵。
可选地,第一映射单元,具体用于利用初始映射矩阵将第一图像映射到第二图像所在的图像空间,得到第一图像中多个像素对应的多个映射像素;对多个映射像素进行双线性插值处理,得到第一映射图像。
可选地,矩阵确定单元,包括:
第一角点单元,用于对感兴趣区域在第一图像中对应的区域提取角点,得到第一角点集合;其中,第一角点集合包括多个第一角点;
第二角点单元,用于基于第一角点集合采用光流法在第二图像中确定与第一角点集合对应的第二角点集合;其中,第二角点集合包括多个第二角点;
映射矩阵单元,用于基于第一角点集合和第二角点集合,确定目标映射矩阵。
可选地,矩阵确定单元,还包括:
第三角点单元,用于基于第二角点集合采用光流法在第一图像中确定与第二角点集合对应的第三角点集合;其中,第三角点集合包括多个第三角点;
第四角点单元,用于基于第一角点集合中每个第一角点与第三角点集合中对应的第三角点之间的距离,剔除第一角点集合中的异常角点,得到第四角点集合;其中,第四角点集合包括多个第四角点;
映射矩阵单元,具体用于通过第四角点集合和第二角点集合,确定目标映射矩阵。
可选地,第四角点单元,具体用于根据第一角点集合中每个第一角点与第三角点集合中对应的第三角点之间的距离是否大于预设阈值,确定第一角点是否为异常角点;剔除第一角点集合中的异常角点,得到第四角点集合。
可选地,第四角点单元在根据第一角点集合中每个第一角点与第三角点集合中对应的第三角点之间的距离是否大于预设阈值,确定第一角点是否为异常角点时,用于针对第一角点集合中的每个第一角点,基于第一角点的描述子与第三角点集合中每个第三角点的描述子之间的距离,确定与第一角点对应的第三角点;响应于第一角点与对应的第三角点之间的距离大于预设阈值,确定第一角点为异常角点;响应于第一角点与对应的第三角点之间的距离不大于预设阈值,确定第一角点不是异常角点。
可选地,映射矩阵单元,具体用于基于第四角点集合中每个第四角点的描述子与第二角点集合中每个第二角点的描述子之间的距离,确定多对角点对;基于多对角点对中的每对角点对之间的映射关系,确定目标映射矩阵。
图9是本公开一示例性实施例提供的全景图拼接装置的结构示意图。如图9所示,该实施例提供的装置包括:
图像获取模块91,用于在设定位置采用点位环形拍摄,得到待拼接的图像序列。
其中,图像序列中包括的多个图像中每两个相邻的图像之间部分重叠。
全景图拼接模块92,用于对图像序列中的每两个相邻的图像进行拼接,得到拼接后的全景图。
其中,每两个相邻的图像的拼接基于上述如图1-6任一提供的图像拼接方法实现。
本实施例中,应用上述图1-6任一提供的图像拼接方法对当前相机在一个点位环形拍摄到的图像序列进行拼接,克服了现有技术拼接不准确的缺点,获得了更准确的描述连接关系的目标映射矩阵,进而鲁棒地恢复出准确的图像连接关系。
示例性电子设备
下面,参考图10来描述根据本公开实施例的电子设备。该电子设备可以是第一设备100和第二设备200中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图10图示了根据本公开实施例的电子设备的框图。
如图10所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本公开的各个实施例的图像拼接方法或全景图拼接方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备100或第二设备200时,该输入装置13可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置13可以是通信网络连接器,用于从第一设备100和第二设备200接收所采集的输入信号。
此外,该输入设备13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图10中仅示出了该电子设备10中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的图像拼接方法或全景图拼接方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的图像拼接方法或全景图拼接方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。