图像处理方法、装置、电子设备和计算机可读存储介质与流程

文档序号:26792311发布日期:2021-09-28 23:49阅读:91来源:国知局
图像处理方法、装置、电子设备和计算机可读存储介质与流程

1.本公开的实施例涉及一种图像处理方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.当前,图像拼接(image mosaic)得到越来越多的关注,它已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像拼接一般通过对齐一系列图像,构成一个无缝的、高清晰的图像,它具有比单个图像更高的分辨率和更大的视野。图像拼接的应用场景广泛,比如无人机航拍、遥感图像等。


技术实现要素:

3.本公开至少一个实施例提供一种图像处理方法,包括:获取多个初始图像;将所述多个初始图像进行特征点匹配而获得至少一个匹配图像对,其中,所述至少一个匹配图像对中每个匹配图像对包括第一初始图像和第二初始图像,所述第一初始图像和第二初始图像为之间存在相匹配的特征点的不同初始图像;针对所述每个匹配图像对,选择所述匹配图像对中的所述第一初始图像和所述第二初始图像中的一个作为网格化图像,并且对所述网格化图像进行网格化处理,以将所述网格化图像划分为多个网格;针对所述每个匹配图像对,基于所述第一初始图像和所述第二初始图像之间相匹配的特征点,计算所述多个网格中每个网格对应的映射矩阵;基于所述每个网格对应的映射矩阵,将所述多个初始图像中的每个初始图像映射到目标像素画布中而得到多个目标图像;以及将所述多个目标图像进行融合而得到拼接图像。
4.例如,在本公开一实施例提供的图像处理方法中,针对所述每个匹配图像对,基于所述第一初始图像和所述第二初始图像之间相匹配的特征点,计算所述多个网格中每个网格对应的所述映射矩阵,包括:针对每个网格,确定所述第一初始图像和所述第二初始图像之间相匹配的特征点中每对特征点对于所述网格的权重,其中,每对特征点包括第一特征点和第二特征点,第一特征点和第二特征点分别为第一初始图像和第二初始图像中相匹配的特征点;确定所述第一初始图像中的特征点在第一初始图像中的第一图像坐标,以及确定第二初始图像中的特征点在第二初始图像中的第二图像坐标;以及针对所述每个网格,基于所述每对特征点对于所述网格的权重以及所述第一图像坐标和所述第二图像坐标,确定所述网格对应的映射矩阵。
5.例如,在本公开一实施例提供的图像处理方法中,针对所述每个网格,基于所述每对特征点对于所述网格的权重以及所述第一图像坐标和所述第二图像坐标,确定所述网格对应的映射矩阵,包括:针对所述每个网格,基于所述第一图像坐标、所述第二图像坐标以及对于所述网格的权重构建所述网格对应的奇异值分解矩阵;以及对所述奇异值分解矩阵进行奇异值分解而得到所述网格对应的映射矩阵。
6.例如,在本公开一实施例提供的图像处理方法中,针对每个网格,确定所述第一初始图像和所述第二初始图像之间相匹配的特征点中每对特征点对于所述网格的权重,包
括:根据所述网格化图像,确定网格化图像中的特征点到所述网格的距离;以及基于网格化图像中的每个特征点到所述网格的距离,确定所述每对特征点对于所述网格的权重。
7.例如,在本公开一实施例提供的图像处理方法中,基于所述每个网格对应的映射矩阵,将所述多个初始图像中的每个初始图像映射到所述目标像素画布中而得到所述多个目标图像,包括:基于所述每个网格对应的映射矩阵,确定所述每个网格对应的目标位姿信息;基于所述每个网格对应的目标位姿信息,确定所述每个网格在曲面投影中的投影信息;以及针对所述每个初始图像,基于所述初始图像所在的匹配图像对所对应的每个网格在所述曲面投影中的投影信息,将所述初始图像映射到所述目标像素画布中而生成所述目标图像。
8.例如,在本公开一实施例提供的图像处理方法中,基于所述每个网格对应的映射矩阵,确定所述每个网格对应的目标位姿信息,包括:从所述多个初始图像中确定基准图像;基于所述每个网格对应的映射矩阵和所述基准图像,确定所述每个网格相对于所述基准图像的第一位姿信息;以及基于所述每个网格相对于所述基准图像的第一位姿信息,确定所述每个网格的目标位姿信息。
9.例如,在本公开一实施例提供的图像处理方法中,所述多个初始图像被划分为多个图像组,每个图像组中包括所述至少一个匹配图像对中至少之一,并且所述每个图像组中的不同匹配图像对之间存在相匹配的特征点,不同图像组之间不存在相匹配的特征点,基于所述每个网格对应的映射矩阵和所述基准图像,确定所述每个网格相对于所述基准图像的第一位姿信息,包括:针对所述每个网格,在所述网格所属的初始图像与所述基准图像属于同一个图像组的情形中,基于所述网格对应的映射矩阵和所述基准图像,确定所述网格相对于所述基准图像的第一位姿信息;在所述网格所属的初始图像与所述基准图像不属于同一个图像组的情形中,确定所述网格所属的初始图像所在的图像组与所述基准图像所在的图像组之间的位姿关系,并且基于所述位姿关系和所述网格对应的映射矩阵,确定所述网格相对于所述基准图像的第一位姿信息。
10.例如,在本公开一实施例提供的图像处理方法中,所述多个初始图像是通过图像采集装置获得的,所述图像采集装置包括传感器,所述方法还包括:获取所述传感器构建的构建位姿信息,其中,所述构建位姿信息包括所述图像采集装置采集所述每个初始图像的过程中所采用的位姿;确定所述网格所属的初始图像所在的图像组与所述基准图像所在的图像组之间的位姿关系,包括:基于所述网格所属的初始图像所在的图像组和所述基准图像所在的图像组中分别包括的至少一个初始图像对应的构建位姿信息,确定所述网格所属的初始图像所在的图像组与所述基准图像所在的图像组之间的位姿关系。
11.例如,在本公开一实施例提供的图像处理方法中,基于所述每个网格相对于所述基准图像的第一位姿信息,确定所述每个网格的目标位姿信息,包括:对所述每个网格相对于所述基准图像的第一位姿信息与所述构建位姿信息进行数据融合而得到所述每个网格的目标位姿信息。
12.例如,在本公开一实施例提供的图像处理方法中,对所述每个网格相对于所述基准图像的第一位姿信息与所述构建位姿信息进行数据融合而得到所述每个网格的目标位姿信息,包括:将所述构建位姿信息转换到以所述基准图像为基准的坐标系中而获得第二位姿信息;对所述第二位姿信息与所述第一位姿信息进行数据融合而得到融合筛选结果;
以及基于所述融合筛选结果确定所述目标位姿信息。
13.例如,在本公开一实施例提供的图像处理方法中,基于所述融合筛选结果确定所述目标位姿信息,包括:利用参数优化方法对所述融合筛选结果处理而得到所述目标位姿信息。
14.例如,在本公开一实施例提供的图像处理方法中,传感器包括第一传感器和第二传感器,获取所述传感器构建的所述构建位姿信息,包括:获取第一位姿数据,其中,所述第一位姿数据为所述第一传感器构建的所述图像采集装置采集所述每个初始图像所采用的第一位姿;获取第二位姿数据,其中,所述第二位姿数据为所述第二传感器构建的所述图像采集装置采集所述每个初始图像所采用的第二位姿;以及对所述第一位姿数据和所述第二位姿数据进行数据融合而得到所述每个初始图像所采用的所述构建位姿信息。
15.例如,在本公开一实施例提供的图像处理方法中,基于所述每个网格对应的目标位姿信息,确定所述每个网格在所述曲面投影中的投影信息,包括:基于所述每个网格对应的目标位姿信息,将所述每个网格转换到世界坐标系中而获得所述每个网格在所述世界坐标系中的世界坐标信息;根据所述每个网格的世界坐标信息,确定所述每个网格在所述曲面投影中的曲面坐标信息;以及将所述每个网格的曲面坐标信息转换为所述投影信息。
16.例如,在本公开一实施例提供的图像处理方法中针对所述每个初始图像,基于所述初始图像所在的匹配图像对所对应的每个网格在所述曲面投影中的投影信息,将所述初始图像映射到所述目标像素画布中而生成所述目标图像,包括:确定所述目标像素画布的尺寸;以及针对所述每个初始图像,基于所述目标像素画布的尺寸和所述初始图像所在的匹配图像对所对应的每个网格在所述曲面投影中的投影信息,确定所述每个网格中的像素点在所述目标像素画布中的位置,从而将所述每个网格映射到所述目标像素画布中而生成所述目标图像。
17.例如,在本公开一实施例提供的图像处理方法中,所述投影信息包括所述初始图像中像素点的经度和维度,所述每个网格中的像素点在所述目标像素画布中的位置通过如下公式计算得到:
[0018][0019][0020]
其中,所述c为所述像素点在所述目标像素画布中的列,所述r为所述像素点在所述目标像素画布中的行,所述θ为所述投影信息中的经度,所述为所述投影信息中的纬度,所述i
w
为所述目标像素画布的宽度,所述i
h
为所述目标像素画布的高度。
[0021]
例如,在本公开一实施例提供的图像处理方法中,将所述多个目标图像进行融合而得到所述拼接图像,包括:对所述多个目标图像进行加权融合而得到所述拼接图像。
[0022]
例如,在本公开一实施例提供的图像处理方法中,对所述多个目标图像进行加权融合而得到所述拼接图像,包括:基于所述多个初始图像分别在所述目标像素画布中的位置,确定所述多个目标图像中每个目标图像的重叠区域和非重叠区域,其中,所述重叠区域为所述每个目标图像与所述多个目标图像中除该目标图像以外的目标图像存在多个相匹
配的特征点的区域,所述非重叠区域为所述目标图像中除所述重叠区域之外的区域;确定所述重叠区域对应的权重;以及基于所述重叠区域对应的权重,对所述多个目标图像进行加权融合。
[0023]
例如,在本公开一实施例提供的图像处理方法中,确定所述重叠区域对应的权重包括:确定所述重叠区域中的像素点到所述初始图像中心的曼哈顿距离;以及基于所述曼哈顿距离,确定所述重叠区域对应的权重。
[0024]
例如,在本公开一实施例提供的图像处理方法中,将所述多个初始图像进行特征点匹配而获得所述至少一个匹配图像对,包括:对于每个初始图像,确定所述初始图像的相邻初始图像,其中,所述相邻初始图像的拍摄点与所述初始图像的拍摄点彼此相邻;将所述初始图像与所述相邻初始图像进行特征点匹配而获得所述至少一个匹配图像对。
[0025]
例如,在本公开一实施例提供的图像处理方法中,还包括:对多个目标图像进行光照均匀化处理,使得多个目标图像的光照强度均匀。
[0026]
例如,在本公开一实施例提供的图像处理方法中,多个初始图像是通过图像采集装置获得的,方法还包括:获取图像采集装置的拍摄位姿;基于拍摄位姿,确定拍摄环境中的至少一个目标拍摄区域;以及基于至少一个目标拍摄区域,显示提示信息,以提示用户在至少一个目标拍摄区域采集多个初始图像。
[0027]
例如,在本公开一实施例提供的图像处理方法中,基于至少一个拍摄区域,显示提示信息,包括:基于至少一个目标拍摄区域,显示至少一个采集引导区域,至少一个采集引导区域分别与至少一个目标拍摄区域相对应;以及显示提示信息,提示信息指示图像采集装置当前对准的参考拍摄点;在提示信息落入至少一个采集引导区域中的目标采集引导区域的情况下,图像采集装置当前对准的参考拍摄点为目标采集引导区域对应的目标拍摄区域中的拍摄点。
[0028]
例如,在本公开一实施例提供的图像处理方法中,还包括:响应于图像采集装置的运动,控制提示信息在采集引导区域中按照与图像采集装置的运动方向相同的方向至少环绕一周,以采集多个初始图像。
[0029]
例如,在本公开一实施例提供的图像处理方法中,针对按照提示信息采集的多个初始图像中的每个初始图像,每个初始图像与相邻初始图像存在重叠区域,相邻初始图像为在与每个初始图像对应的拍摄点相邻的拍摄点所采集的初始图像。
[0030]
例如,在本公开一实施例提供的图像处理方法中,还包括:将拼接图像转换成三维图像;以及输出三维图像,以将三维图像作为全景图像展示。
[0031]
本公开至少一个实施例提供一种图像处理装置,包括:获取单元,配置为获取多个初始图像;特征点匹配单元,配置为将所述多个初始图像进行特征点匹配而获得至少一个匹配图像对,其中,所述至少一个匹配图像对中每个匹配图像对包括第一初始图像和第二初始图像,所述第一初始图像和第二初始图像为之间存在相匹配的特征点的不同初始图像;网格化单元,配置为针对所述每个匹配图像对,选择所述匹配图像对中的所述第一初始图像和所述第二初始图像中的一个作为网格化图像,并且对所述网格化图像进行网格化处理,以将所述网格化图像划分为多个网格;计算单元,配置为针对所述每个匹配图像对,基于所述第一初始图像和所述第二初始图像之间相匹配的特征点,计算所述多个网格中每个网格对应的映射矩阵;映射单元,配置为基于所述每个网格对应的映射矩阵,将所述多个初
始图像中的每个初始图像映射到目标像素画布中而得到多个目标图像;以及融合单元,配置为将所述多个目标图像进行融合而得到拼接图像。
[0032]
本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序模块;一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现本公开任一实施例提供的图像处理方法的指令。
[0033]
本公开至少一个实施例提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的图像处理方法。
附图说明
[0034]
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
[0035]
图1示出了本公开至少一实施例提供的一种图像处理方法的流程图;
[0036]
图2a示出了本公开至少一实施例提供的匹配图像对的示意图;
[0037]
图2b示出了本公开至少一实施例提供的将第一初始图像210划分为多个网格的示意图;
[0038]
图3a示出了本公开至少一实施例提供的图1中步骤s40的方法流程图;
[0039]
图3b示出了本公开至少一实施例提供的用于说明确定每对特征点对于网格的权重的示意图;
[0040]
图4示出了本公开至少一实施例提供图1中步骤s50的方法流程图;
[0041]
图5a示出了本公开至少一实施例提供的图4中步骤s51的方法流程图;
[0042]
图5b示出了本公开至少一实施例提供的步骤s512的方法流程图;
[0043]
图5c示出了本公开至少一实施例提供的两个图像组的示意图;
[0044]
图6a示出了本公开至少一实施例提供的图4中步骤s52的方法流程图;
[0045]
图6b示出了本公开一些实施例提供的一种球面投影的示意图;
[0046]
图7a示出了本公开至少一实施例提供的图4中步骤s53的方法流程图;
[0047]
图7b和图7c示出了本公开至少一实施例提供的确定目标像素画布的尺寸的方法示意图;
[0048]
图7d和图7e分别示出了第一初始图像和第二初始图像分别映射到目标像素画布中而生成的目标图像401和目标图像402的示意图;
[0049]
图8a示出了本公开至少一实施例提供的对多个目标图像进行加权融合而得到拼接图像的方法流程图;
[0050]
图8b和8c示出了本公开至少一实施例提供的对多个目标图像进行加权融合而得到拼接图像的示意图;
[0051]
图8d示出了将目标图像401和目标图像402进行拼接而得到的拼接图像的示意图;
[0052]
图9示出了本公开至少一实施例提供的另一种图像处理方法的流程图;
[0053]
图10a示出了本公开至少一实施例提供的另一种图像处理方法的流程图;
[0054]
图10b示出了本公开至少一实施例提供的一种确定目标拍摄区域的示意图;
[0055]
图10c示出了本公开至少一实施例提供的显示提示信息的场景示意图;
[0056]
图10d示出了本公开至少一实施例提供的生成拼接图像的效果示意图;
[0057]
图10e示出了本公开至少一实施例提供的生成拼接图像的另一效果示意图;
[0058]
图11示出了本公开至少一个实施例提供的一种图像处理装置1100的示意框图;
[0059]
图12a为本公开一些实施例提供的一种电子设备的示意框图;
[0060]
图12b示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
[0061]
图13示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
[0062]
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0063]
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0064]
目前,很多图像处理软件上嵌入了图像拼接算法,虽然这在一定程度上可以帮助使用者实现多个图像的拼接,但是这些图像拼接算法对图像质量的要求较高,使用者所使用的图像往往达不到质量要求而导致图像处理软件生成的拼接图像的效果较差。并且,由于目前的图像拼接算法大多需要深度数据导致计算过程较为复杂,因此,移动端往往无法实现图像拼接。在相关技术中,通常将多个需要进行拼接的图像的深度数据等图像数据上传到服务器,利用服务器对多个图像进行拼接,费时费力。
[0065]
本公开至少一个实施例提供一种图像处理方法、图像处理装置、电子设备和计算机可读存储介质。该图像处理方法包括:获取多个初始图像;将所述多个初始图像进行特征点匹配而获得至少一个匹配图像对,其中,所述至少一个匹配图像对中每个匹配图像对包括第一初始图像和第二初始图像,所述第一初始图像和第二初始图像为之间存在相匹配的特征点的不同初始图像;针对所述每个匹配图像对,选择所述匹配图像对中的所述第一初始图像和所述第二初始图像中的一个作为网格化图像,并且对所述网格化图像进行网格化处理,以将所述网格化图像划分为多个网格;针对所述每个匹配图像对,基于所述第一初始图像和所述第二初始图像之间相匹配的特征点,计算所述多个网格中每个网格对应的映射矩阵;基于所述每个网格对应的映射矩阵,将所述多个初始图像中的每个初始图像映射到目标像素画布中而得到多个目标图像;以及将所述多个目标图像进行融合而得到拼接图像。该图像处理方法可以使得图像的拼接不依赖于深度数据,降低了图像拼接对图像质量
的要求和运算量,有助于在移动端实现图像拼接,不仅使得图像拼接的实现更加简单,成本更低,而且使得图像拼接的效果更好,更加自然。
[0066]
图1示出了本公开至少一实施例提供的一种图像处理方法的流程图。
[0067]
如图1所示,该方法可以包括步骤s10~s60。
[0068]
步骤s10:获取多个初始图像。
[0069]
步骤s20:将多个初始图像进行特征点匹配而获得至少一个匹配图像对。
[0070]
步骤s30:针对每个匹配图像对,选择匹配图像对中的第一初始图像和第二初始图像中的一个作为网格化图像,并且对网格化图像进行网格化处理,以将网格化图像划分为多个网格。
[0071]
步骤s40:针对每个匹配图像对,基于第一初始图像和第二初始图像之间相匹配的特征点,计算多个网格中每个网格对应的映射矩阵。
[0072]
步骤s50:基于每个网格对应的映射矩阵,将多个初始图像中的每个初始图像映射到目标像素画布中而得到多个目标图像。
[0073]
步骤s60:将多个目标图像进行融合而得到拼接图像。
[0074]
该图像处理方法可以通过对初始图像进行网格化,并且确定每个网格对应的映射矩阵,从而可以根据每个网格对应的映射矩阵将初始图像映射到目标像素画布中而生成目标图像,如此可以提高将初始图像映射到目标像素画布中的准确性,从而提高拼接图像的质量,使得拼接图像更加自然。并且,该图像处理方法既不需要多个初始图像对应的深度信息,也不需要多个初始图像满足较高的图像质量要求,降低了图像拼接对图像质量的要求和运算量,使得图像拼接的实现更加简单,不依赖于较高的硬件条件(例如深度相机、全景相机等),时间成本更低。另外,由于该图像处理方法的运算量较小,因此,该图像处理方法可以直接在移动端实现而不需上传到服务器,也就是说,该图像处理方法的实现不依赖于网络,可以适用于任何室内或室外的拍摄场景。
[0075]
对于步骤s10,例如可以通过图像采集装置现场采集多个初始图像,或者从本地(例如,移动端)的存储装置中读取多个初始图像。本公开对获取多个初始图像的方式不做限定。
[0076]
多个初始图像可以是用户想要进行图像拼接的任意图像。多个初始图像之间可以有重叠区域也可以没有重叠区域。重叠区域是指分别在至少两个初始图像中都出现的图像内容。例如,多个初始图像中包括第一初始图像和第二初始图像,第一初始图像包括第一图像内容,而第二初始图像也包括第一图像内容,那么在第一初始图像中第一图像内容对应的像素区域和第二初始图像中第一图像内容对应的像素区域为重叠区域。
[0077]
例如,多个初始图像可以是用户在一个或者多个拍摄地点朝着多个方向分别进行拍摄而获得的多个图像。拍摄地点,例如可以是房间、景点、街道、商场等任何可以进行拍摄的地点。又例如,多个初始图像可以是用户在本地移动端存储的图像库中选择的多个图像,或者是用户从网络下载的多个图像。
[0078]
对于步骤s20,至少一个匹配图像对中每个匹配图像对包括第一初始图像和第二初始图像,所述第一初始图像和第二初始图像为之间存在相匹配的特征点的不同初始图像。
[0079]
在本公开的一些实施例中,在步骤s20,将多个初始图像进行特征点匹配除可以获
得至少一个匹配图像对之外,还可以获得至少一个单独的初始图像,该单独的初始图像与其他任何一个初始图像之间均无相匹配的特征点。
[0080]
在本公开的一些实施例中,例如,利用基于网格的运动统计信息(grid
‑ꢀ
based motion statistics for fast,ultra

robust feature correspondence,gms) 的特征点匹配方法将多个初始图像进行特征点匹配而快速获得多个初始图像间的特征点匹配对,然后通过对多个特征点匹配对进行筛选而确定至少一个匹配图像对。例如,利用ransac(random sample consensus,随机抽样一致性算法)对多个特征点匹配对进行筛选而确定至少一个匹配图像组。
[0081]
可以理解的是,本领域技术人员也可以采用其他的特征点匹配方法,本公开不限定特征点匹配的方法。
[0082]
在本公开的一些实施例中,步骤s20将多个初始图像进行特征点匹配而获得至少一个匹配图像对,包括:对于每个初始图像,确定初始图像的相邻初始图像,相邻初始图像的拍摄点与初始图像的拍摄点彼此相邻;以及将初始图像与相邻初始图像进行特征点匹配而获得至少一个匹配图像对。
[0083]
例如,图像采集装置分别在拍摄点1、2、
……
、i(i大于或等于2)拍摄了一个初始图像,拍摄点2和拍摄点3与拍摄点1相邻,则可以将拍摄点 2拍摄的初始图像和拍摄点3拍摄的初始图像分别与拍摄点1拍摄的初始图像进行特征点匹配。
[0084]
相邻拍摄点拍摄的多个初始图像中存在相匹配的特征点的概率较大,因此,将相邻拍摄点拍摄的多个初始图像进行特征点匹配可以提高用于执行本公开提供的图像处理方法的系统的整体匹配速度。
[0085]
图2a示出了本公开至少一实施例提供的匹配图像对的示意图。
[0086]
如图2a所示,例如,匹配图像对可以包括第一初始图像210和第二初始图像220。第一初始图像210中的多个特征点211~214分别与第二初始图像中的多个特征点221~224相匹配,特征点211~214与特征点221~224彼此一一对应匹配。
[0087]
需要理解的是,图2a仅为示意性说明。例如,虽然图2a中仅示出了4 对相匹配的特征点,但是实际上,第一初始图像210和第二初始图像220之间相匹配的特征点的数量通过是远多于4的。
[0088]
对于步骤s30:例如,在图2a所示的场景中,选择第一初始图像210作为网格化图像,或者选择第二初始图像220作为网格化图像。在下文中除非特殊说明均以第一初始图像210为网格化图像,对第一初始图像210进行网格化处理为例来说明本公开的实施例。
[0089]
需要说明的是,不同的匹配图像对可以选择第一初始图像和第二初始图像中的任意一个作为网格化图像。
[0090]
图2b示出了本公开至少一实施例提供的将第一初始图像210划分为多个网格的示意图。
[0091]
如图2b所示,第一初始图像210被划分为多个网格,例如被划分为20 个网格。每个网格的尺寸可以是相同的,也可以是不相同的。并且每个网格的尺寸可以根据实际需求而设置,通过网格越小,最终得到的拼接图像的质量越高。例如,网格的形状可以为矩形,例如为正方形,本公开的实施例对此不作限制。在一些示例中,当网格的形状为矩形时,每个网格的长宽比可以与网格化图像的长宽比相同或基本相同。
[0092]
在本公开的一些实施例中,第一初始图像可以被均匀地划分为多个网格,也可以是非均匀地划分为多个网格。例如,对于第一初始图像210中分布有与第二初始图像220相匹配的特征点的匹配区域中的网格尺寸较小,而第一初始图像中除匹配区域之外的区域中的网格尺寸较大。
[0093]
需要理解的是,虽然图2b所示的示意图中,4个相匹配的特征点分别分布于不同的网格中,但是实际上,每个网格中可以有任意数量的相匹配的特征点。另外,在图2b中,第一初始图像被划分为20个网格也仅是一种示意性表示,本公开并不限定网格化图像被划分成网络的数量,事实上,本领域技术人员可以根据实际需要来自行设定网格大小或数量。也就是说,图2b 仅为一种示意性说明,对本公开并没有限定作用。
[0094]
在本公开的一些实施例中,例如,按照网格化图像中的像素行和像素列对网格化图像进行网格化。例如,一个网格可以包括一个3
×
3的像素矩阵。
[0095]
对于步骤s40:例如,针对第一初始图像210和第二初始图像220所组成的匹配图像对,假设第一初始图像210和第二初始图像220之间存在4个相匹配的特征点,则根据这4个相匹配的特征点,计算第一初始图像所包含的20个网格中每个网格对应的映射矩阵。例如,利用这4个相匹配的特征点计算网格1对应的映射矩阵、网格2对应的映射矩阵、
……
、网格20对应的映射矩阵。
[0096]
图3a示出了本公开至少一实施例提供的图1中步骤s40的方法流程图。
[0097]
图3b示出了本公开至少一实施例提供的用于说明确定每对特征点对于网格的权重的示意图。
[0098]
如图3a所示,步骤s40可以包括步骤s41~步骤s43。
[0099]
步骤s41:针对每个网格,确定第一初始图像和第二初始图像之间相匹配的特征点中每对特征点对于网格的权重。
[0100]
每对特征点包括第一特征点和第二特征点,第一特征点和第二特征点分别为第一初始图像和第二初始图像中相匹配的特征点。
[0101]
如图3b所示,例如,第一初始图像210中的特征点211和第二初始图像220中的特征点221相匹配,特征点211和特征点221为一对特征点。类似地,特征点212和特征点222为一对特征点,特征点213和特征点223为一对特征点,特征点214和特征点224为一对特征点。在步骤s41,对于每个网格,分别确定上述4对特征点对(特征点211和特征点221、特征点212 和特征点222、特征点213和特征点223、特征点214和特征点224)分别对于网格的权重。
[0102]
例如,针对网格1,分别确定特征点211和特征点221这一对特征点对于网格1的权重、特征点212和特征点222这一对特征点对于网格1的权重、特征点213和特征点223这一对特征点对于网格1的权重、特征点214 和特征点224这一对特征点对于网格1的权重。类似地,对于其他网格(即,网格2~网格20)中的每一个网格也分别确定每对特征点对于网格的权重,在此不再赘述。
[0103]
在本公开的一些实施例中,例如,步骤s41可以包括根据网格化图像,确定网格化图像中每个特征点到网格的距离,以及基于网格化图像中每个特征点到网格的距离,确定每对特征点对于网格的权重。
[0104]
在本公开的一些实施例中,例如,对于每个特征点,特征点到网格的距离可以是计算特征点到网格的预设点(例如,左上顶点、右上顶点、中心等) 的距离。在本公开的一些实
施例中,上述距离例如可以是曼哈顿距离。
[0105]
例如,在图3b所示的情景中,对于网格1,根据网格化图像(即,第一初始图像210),确定第一初始图像210中特征点211~214中的每个特征点到网格1的左上顶点301的曼哈顿距离,从而根据曼哈顿距离确定每对特征点对于网格的权重。
[0106]
例如,根据特征点211到网格1的左上顶点301的曼哈顿距离,确定特征点211和特征点221这一对特征点对于网格1的权重。根据特征点212到网格1的左上顶点301的曼哈顿距离,确定特征点212和特征点222这一对特征点对于网格1的权重。根据特征点213到网格1的左上顶点301的曼哈顿距离,确定特征点213和特征点223这一对特征点对于网格1的权重。根据特征点214到网格1的左上顶点301的曼哈顿距离,确定特征点214和特征点224这一对特征点对于网格1的权重。类似地,可以确定每对特征点对于其他网格的权重。
[0107]
在本公开的一些实施例中,网格化图像中每个特征点到网格的距离,可以作为每对特征点对于网格的权重可以包括:对网格化图像中每个特征点到网格的距离进行归一化,并且将归一化后的结果作为网格的权重。
[0108]
步骤s42:确定第一初始图像中的特征点在第一初始图像中的第一图像坐标,以及确定第二初始图像中的特征点在第二初始图像中的第二图像坐标。
[0109]
例如,在图3b所示的情境中,分别确定第一初始图像210中的特征点 211~214在第一初始图像中的第一图像坐标,以及分别确定第二初始图像中的特征点221~224在第二初始图像中的第二图像坐标。
[0110]
在本公开的一些实施例中,第一初始图像和第二初始图像的坐标系可以是相同的坐标系,例如都以图像的中心为原点,以图像中像素的行方向x轴,以图像中像素的列方向为y轴建立图像坐标系。
[0111]
步骤s43:针对每个网格,基于每对特征点对于网格的权重以及第一图像坐标和第二图像坐标,确定网格对应的映射矩阵。
[0112]
例如,在图3b所示的情景中,对于网格1,基于4对特征点分别对于网格1的权重,以及特征点211~214各自的第一图像坐标和特征点221~224 各自的第二图像坐标,确定网格1对应的映射矩阵。类似地,可以基于4对特征点分别对于任一网格的权重,以及特征点211~214各自的第一图像坐标和特征点221~224各自的第二图像坐标,确定任一网格对应的映射矩阵,在此不再赘述。
[0113]
在本公开的一些实施例中,步骤s43可以包括针对每个网格,基于第一图像坐标、第二图像坐标以及对于网格的权重构建网格对应的奇异值分解矩阵,以及对奇异值分解矩阵进行奇异值分解而得到网格对应的映射矩阵。
[0114]
在本公开的一些实施例中,网格对应的映射矩阵,例如可以是表示第一初始图像和第二初始图像之间的映射关系的单应性矩阵。
[0115]
在本公开的一些实施例中,单应性矩阵h例如可以是3
×
3的矩阵。
[0116][0117]
例如,第一初始图像中的一个特征点表示为p(u,v),第二初始图像中的一个特征点表示为q(x,y),并且特征点p和特征点q相匹配,则存在如下转换关系:
[0118][0119]
因此,根据上述转换关系可知,可以通过至少4对相匹配的特征点解出单应性矩阵h的9个元素,从而得到第二初始图像和第一初始图像之间的映射矩阵。下面以4对相匹配的特征点为例来说明基于第一图像坐标、第二图像坐标以及对于网格的权重构建网格对应的奇异值分解矩阵。
[0120]
当两个初始图像中包括四对相匹配的特征点(x
i
,y
i
)、(u
i
,v
i
)(i=1,2,3,4) 时,可得如下所示的方程组:
[0121]
ah1=0
[0122]
其中,h1=(h1,h2,h3,h4,h5,h6,h7,h8,h9)
[0123]
a=[x
1 y
1 x
2 y
2 x
3 y
3 x
4 y4],
[0124]
x
i
=(x
i
,y
i
,1,0,0,0,

u
i
x
i
,

u
i
y
i
,

u
i
)
[0125]
y
i
=(0,0,0,x
i
,y
i
,1,

v
i
x
i
,

v
i
y
i
,

v
i
)
[0126]
即,
[0127][0128]
将每对特征点与网格的距离作为特征点对于网格的权重,得到wah=0,其中,w为每对特征点所形成的权重矩阵。
[0129][0130]
因此,在本公开实施例中,基于第一图像坐标、第二图像坐标以及对于网格的权重构建网格对应的奇异值分解矩阵可以是矩阵a左乘权重矩阵(即, wa)得到的矩阵。
[0131]
在本公开的一些实施例中,将靠近网格的特征点赋予较大的权重,远离网格的特征点赋予较小的权重,使得计算出的单应性矩阵h更加准确。这是因为,越靠近网格的特征点和网格越趋于一个平面,越是趋于一个平面上的特征点计算出的单应性矩阵h也更加准
确。例如,由于每对特征点的位置不同,因此每对特征点赋予了不同的权重。
[0132]
在本公开的一些实施例中,对奇异值分解矩阵进行奇异值分解(singularvalue decomposition,svd)的方法计算出单应性矩阵h,可以得到网格对应的单应性矩阵h。
[0133]
虽然在上述构建奇异值分解矩阵的示例中是以4对相匹配的特征点构建的,但是实际上,本领域技术人员可以使用任意数量的相匹配的特征点构建奇异值分解矩阵。例如可以利用全部的相匹配的特征点构建奇异值分解矩阵,并且利用svd解出单应性矩阵h,本公开对此不作限定。
[0134]
图4示出了本公开至少一实施例提供图1中步骤s50的方法流程图。
[0135]
如图4所示,该方法可以包括步骤s51~步骤s53。
[0136]
步骤s51:基于每个网格对应的映射矩阵,确定每个网格对应的目标位姿信息。
[0137]
例如,每个网格分别对应的目标位姿信息可以是指图像采集装置采集网格所属的初始图像时采用的位姿。通过每个网格对应的映射矩阵可以恢复图像采集装置采集每个初始图像时分别采用的位姿。在本公开的实施例中,通过每个网格对应的映射矩阵恢复的目标位姿信息与图像采集装置采集每个初始图像时分别采用的实际位姿之间存在误差,误差越小,最终得到的图像拼接的质量越高。
[0138]
步骤s51通过下文的实施例进行说明,在此不再赘述。
[0139]
步骤s52:基于每个网格对应的目标位姿信息,确定每个网格在曲面投影中的投影信息。
[0140]
在本公开的一些实施例中,曲面投影例如可以包括球面投影、柱面投影等,本公开不限定曲面投影的类型。例如,在对多个初始图像进行拼接而获得全景图的应用场景中,曲面投影可以是球面投影,这样可以保证拼接得到的全景图在一定条件下不会丢失顶部和底部信息,从而可以完美地展示3d 效果。顶部和底部例如是相对于图像采集装置而言的,例如顶部可以是指位于图像采集装置远离地面的一侧的区域,底部可以是指位于图像采集装置靠近地面一侧的区域。例如,在对多个初始图像进行拼接而获得房间的全景图的应用场景中,曲面投影可以是球面投影,这样可以保证拼接得到的全景图在一定条件下不会丢失房顶和地板信息。上述“一定条件”例如可以是图像采集装置的视场角较大。
[0141]
步骤s52通过下文的实施例进行解释说明在此不再赘述。
[0142]
步骤s53:针对每个初始图像,基于初始图像所在的匹配图像对所对应的每个网格在曲面投影中的投影信息,将初始图像映射到目标像素画布中而生成目标图像。
[0143]
在本公开的一些实施例中,投影信息包括所述初始图像中像素点的经度和维度。
[0144]
如图3b所示,针对初始图像210,根据初始图像210中每个网格在曲面投影中的投影信息,将初始图像210映射到同一个目标像素画布中而生成初始图像210对应的目标图像。
[0145]
图5a示出了本公开至少一实施例提供的图4中步骤s51的方法流程图。
[0146]
如图5a所示,步骤s51可以包括步骤s511~步骤s513。
[0147]
步骤s511:从多个初始图像中确定基准图像。
[0148]
例如,从多个初始图像中选择一个初始图像作为基准图像,相应地,基准图像的位姿作为基准位姿。
[0149]
例如,多个初始图像可以包括初始图像1~初始图像n,从初始图像1~初始图像n
中选择一个初始图像作为基准图像。
[0150]
在本公开的一些实施例中,例如可以对多个初始图像进行排序,选择排在第一个的初始图像作为基准图像,或者选择排在最后一个的初始图像作为基准图像。例如,可以按照初始图像的采集顺序进行排序。按照每个匹配图像组中不同初始图像的采集顺序进行排序可以方便后续根据映射矩阵确定目标位姿信息的计算。在本公开的另一些实施例中,例如可以设定一个基准图像的选取标准,然后根据选取标准从多个初始图像中选择一个初始图像作为基准图像。例如,选取标准可以是相匹配的特征点的数量、重叠区域的大小以及连通区域的大小等。例如,根据每个匹配图像对中不同初始图像相匹配的特征点从多个初始图像中选择一个初始图像作为基准图像。例如,初始图像1和初始图像2之间存在相匹配的特征点的数量为100,初始图像2和初始图像3之间存在相匹配的特征点的数量为200,初始图像3和初始图像 4之间存在相匹配的特征点的数量为50,那么可以选择初始图像2作为基准图像。
[0151]
步骤s512:基于每个网格对应的映射矩阵和基准图像,确定每个网格相对于基准图像的第一位姿信息。
[0152]
如图3b所示,例如,基于网格1对应的映射矩阵,确定网格1相对于基准图像(即,第二初始图像220)的第一位姿信息。第一位姿信息,例如可以包括旋转矩阵和平移向量。网格1相对于第二初始图像220的旋转矩阵和平移向量可以通过网格1的映射矩阵恢复。
[0153]
又例如,第一初始图像210除与第二初始图像220之间存在相匹配的特征点外,第一初始图像210和初始图像n之间也存在相匹配的特征点,也就是第一初始图像210和初始图像n也是一个匹配图像对。在该实施例中,例如可以对初始图像n进行网格化,从而确定初始图像n中每个网格相对于第一初始图像210的映射矩阵,从而可以通过映射矩阵恢复初始图像n中每个网格相对于第一初始图像210的旋转矩阵和平移向量。然后,可以根据第一初始图像210和基准图像(即,第二初始图像220)之间的旋转矩阵和平移向量,确定初始图像n相对于基准图像的第一位姿信息。
[0154]
类似地,可以确定任意一个匹配图像对中的图像相对于基准图像的第一位姿信息。
[0155]
在本公开的一些实施例中,多个初始图像可以被划分为多个图像组,每个图像组中包括至少一个匹配图像对中至少之一,并且每个图像组中的不同匹配图像对之间存在相匹配的特征点,不同图像组之间不存在相匹配的特征点。
[0156]
例如,对于一个图像组中的多个初始图像,该多个初始图像是相关联的,而不同图像组之间是不关联的。例如,初始图像1和初始图像2之间存在相匹配的特征点,初始图像2和初始图像3之间存在相匹配的特征点,初始图像4和初始图像5之间存在相匹配的特征点,但是,初始图像4和初始图像5都不与初始图像1和初始图像2和初始图像3中的任何一个存在相匹配的特征点,也就是初始图像1和初始图像3通过初始图像2相关联,而初始图像4和初始图像5都不与初始图像1、初始图像2和初始图像3之间的任意一个存在相匹配的特征点。因此,初始图像1和初始图像2和初始图像3可以作为一个图像组,初始图像4和初始图像5可以作为一个图像组。
[0157]
例如,每个图像组中的每个初始图像与图像组中的至少一个初始图像之间存在相匹配的特征点。例如,至少一个图像组中包括第一图像组,该第一图像组中包括n个初始图
像,对于n个初始图像中的每个初始图像而言,该第一图像组中的其他n

1个初始图像中的至少一个初始图像与该初始图像之间存在相匹配的特征点。例如,至少一个图像组还包括第二图像组,第二图像组和第一图像组之间不存在相匹配的特征点。
[0158]
在本公开的一些实施例中,例如,在步骤s20,将多个初始图像可以是一个图像组,也就是说,多个初始图像是相关联的,对于多个初始图像中的任意一个初始图像都存在另一个初始图像与该初始图像之间存在相匹配的特征点。例如,在本公开的一些实施例中,n个初始图像分别为初始图像1~初始图像n,初始图像1和初始图像2之间存在相匹配的特征点,初始图像 2和初始图像3之间存在相匹配的特征点,
……
,初始图像n

1和初始图像 n,以及初始图像n和初始图像1之间存在相匹配的特征点。
[0159]
图5b示出了本公开至少一实施例提供的步骤s512的方法流程图。
[0160]
如图5b所示,步骤s512可以包括步骤s5121和步骤s5122。
[0161]
步骤s5121:针对每个网格,在网格所属的初始图像与基准图像属于同一个图像组的情形中,基于网格对应的映射矩阵和基准图像,确定网格相对于基准图像的第一位姿信息。
[0162]
下面结合图5c并且以两个图像组为例来说明步骤s41以及下文中的步骤或方法。
[0163]
图5c示出了本公开至少一实施例提供的两个图像组的示意图。
[0164]
如图5c所示,两个图像组分别为图像组510和图像组520,图像组510 中包括初始图像311、初始图像312、初始图像313、
……
。图像组520中包括初始图像321、
……

[0165]
对于步骤s5121,例如,选择图像组510中的初始图像311作为基准图像。
[0166]
例如,初始图像312与初始图像311为一个匹配图像对,初始图像312 为网格化图像。针对初始图像312中的每个网格,利用步骤s40提供的方法可以得到每个网格对应的映射矩阵,从而可以利用映射矩阵恢复初始图像 312中的每个网格相对于基准图像(即,初始图像311)的第一位姿信息(即,旋转矩阵和平移向量)。例如,初始图像312与初始图像313为一个匹配图像对,初始图像313为网格化图像。针对初始图像313中的每个网格,利用步骤s40提供的方法可以得到每个网格对应的映射矩阵,从而可以利用映射矩阵恢复初始图像313中的每个网格相对于初始图像312的位姿信息,从而可以再根据初始图像312中的每个网格相对于初始图像311的第一位姿信息来确定初始图像313中的每个网格相对于初始图像311的第一位姿信息。依次类推,可以得的图像组310中每个网格的第一位姿信息。
[0167]
在本公开的一些实施例中,例如,通过对映射矩阵进行分解可以恢复第一位姿信息。例如,利用数值法或者解析法对映射矩阵进行分解而得到匹配图像对中的两个初始图像之间的旋转矩阵和平移向量。然后,根据多个匹配图像对将图像组中每个初始图像都转换成相对于基准位姿的第一位姿信息。
[0168]
步骤s5122:在网格所属的初始图像与基准图像不属于同一个图像组的情形中,确定网格所属的初始图像所在的图像组与基准图像所在的图像组之间的位姿关系,并且基于位姿关系和网格对应的映射矩阵,确定网格相对于基准图像的第一位姿信息。
[0169]
在本公开的一些实施例中,例如,确定网格所属的初始图像所在的图像组与基准图像所在的图像组之间的位姿关系,包括:基于网格所属的初始图像所在的图像组和基准图像所在的图像组中分别包括的至少一个初始图像对应的构建位姿信息,确定网格所属的初始图像所在的图像组与基准图像所在的图像组之间的位姿关系。构建位姿信息包括传感
器构建的图像采集装置采集每个初始图像的过程中所采用的位姿。
[0170]
在本公开的一些实施例中,多个初始图像是通过图像采集装置获得的,所述图像采集装置包括传感器,图像处理方法在前述实施例的基础上还可以包括:获取传感器构建的构建位姿信息,构建位姿信息包括图像采集装置采集每个初始图像的过程中所采用的位姿,以便根据构建位姿信息确定不同图像组之间的位姿关系。
[0171]
例如,图像采集装置可以是包含摄像头的移动端。在本公开的实施例中,传感器可以包括安装在移动端的摄像头、陀螺仪等硬件,还可以包括对摄像头、陀螺仪的数据进行处理的软件。
[0172]
在本公开的一些实施例中,例如,传感器可以是同步定位与地图绘制传感器,同步定位与地图绘制传感器通过同步定位与地图绘制(simultaneouslocalization and mapping,slam)算法构建图像采集装置采集每个初始图像的过程中所采用的位姿。例如,传感器可以是惯性传感器(inertialmeasurement unit,imu),imu可以通过移动端中的9轴传感器(包括3轴加速度计、3轴陀螺仪、3轴磁力计)构建图像采集装置采集每个初始图像的过程中所采用的位姿。
[0173]
在本公开的另一些实施例中,传感器包括第一传感器和第二传感器,获取多个初始图像分别对应的位姿信息,包括:获取第一位姿数据和第二位姿数据,以及融合第一位姿数据和第二位姿数据而得到多个初始图像分别对应的构建位姿信息。第一位姿数据为第一传感器构建的图像采集装置采集每个初始图像所采用的位姿,第二位姿数据为第二传感器构建的图像采集装置采集所述每个初始图像所采用的位姿。通过将第一位姿数据和第二位姿数据进行数据融合而得到多个初始图像分别对应的构建位姿信息可以提高构建位姿信息的准确性和稳定性,从而提高拼接图像的质量。
[0174]
在本公开的一些实施例中,例如,第一传感器可以是上述同步定位与地图绘制传感器,第二传感器可以是上述imu。
[0175]
可以理解的是,第一传感器为上述同步定位与地图绘制传感器,第二传感器为上述imu仅为本公开提供的一种实施例,本领域技术人员可以采用任何可以获取位姿信息的传感器来获得第一位姿数据和第二位姿数据。
[0176]
在本公开的一些实施例中,融合第一位姿数据和第二位姿数据,得到多个初始图像分别对应的构建位姿信息,包括:利用扩展卡尔曼滤波器融合第一位姿数据和第二位姿数据,以得到多个初始图像分别对应的构建位姿信息。利用扩展卡尔曼滤波器对第一位姿数据和第二位姿数据进行扩展卡尔曼滤波(extended kalman filter,ekf)可以使得第一位姿数据和第二位姿数据的融合效率较高。
[0177]
当然,本领域技术人员也可以采用其他不同于ekf的数据融合方法,例如代数法、图像回归法等,或者直接对不同传感器构建的位姿数据进行紧耦合。本公开对第一位姿数据和第二位姿数据的数据融合方法不做限定。
[0178]
例如,不同图像组包括第一图像组和第二图像组,第一图像组包括初始图像1~初始图像n,第二图像组包括初始图像x1~初始图像xn,则可以根据构建位姿信息确定初始图像1~初始图像n中的任意一个初始图像i与初始图像x1~初始图像xn中的任意一个初始图像xk之间的位姿关系。初始图像i和初始图像xk之间的位姿关系作为第一图像组和第二图像组之间的位姿关系。
[0179]
例如,在图5c所示的情景中,在步骤s5122可以根据构建位姿信息确定初始图像311和初始图像321之间的位姿关系,从而将初始图像311和初始图像321之间的位姿关系作为图像组310和图像组320之间的位姿关系。
[0180]
在本公开的一些实施例中,基于不同图像组中分别包括的至少一个初始图像对应的构建位姿信息,确定不同图像组之间的位姿关系,可以包括:确定构建位姿信息中分别属于不同图像组的两个初始图像各自的构建位姿信息(例如,分别为第一构建位姿和第二构建位姿),然后计算第一构建位姿和第二构建位姿之间的单应性矩阵,以根据单应性矩阵恢复第二构建位姿相对于第一构建位姿的旋转矩阵和平移向量,或者根据单应性矩阵恢复第一构建位姿相对于第二构建位姿的旋转矩阵和平移向量。
[0181]
对于上文中提到的单独的初始图像也可以根据构建位姿信息,确定单独的初始图像与基准图像之间的位姿关系。
[0182]
在步骤s5122,在确定网格所属的初始图像所在的图像组与基准图像所在的图像组之间的位姿关系之后,可以基于位姿关系和网格对应的映射矩阵,确定网格相对于基准图像的第一位姿信息。
[0183]
例如,在图5c所示的情景中,例如对于第二图像组320中的初始图像 321而言,由于基准图像为第一图像组310中的初始图像311,因此,需要先确定第一图像组310和第二图像组320之间的位姿关系,然后根据第一图像组310和第二图像组320之间的位姿关系,将初始图像321中的网格对应的映射矩阵转换成相对于基准图像(即,初始图像311)的第一位姿信息。而第一图像组310和第二图像组320之间的位姿关系,例如可以根据上文描述的构建位姿信息确定。例如可以根据构建位姿信息确定初始图像311和初始图像321之间的位姿关系并且作为第一图像组310和第二图像组320之间的位姿关系。
[0184]
步骤s513:基于每个网格相对于基准图像的第一位姿信息,确定每个网格的目标位姿信息。
[0185]
在本公开的一些实施例中,对每个网格相对于基准图像的第一位姿信息与构建位姿信息进行数据融合而得到每个网格的目标位姿信息。
[0186]
例如,将每个网格相对于基准图像的第一位姿信息和该网格所属的初始图像对应的构建位姿信息进行数据融合而得到每个网格的目标位姿信息。
[0187]
在本公开的一些实施例中,对每个网格相对于基准图像的第一位姿信息与构建位姿信息进行数据融合而得到每个网格的目标位姿信息,包括:将构建位姿信息转换到以基准图像为基准的坐标系中而获得第二位姿信息;对第二位姿信息与第一位姿信息进行数据融合而得到融合筛选结果;以及基于融合筛选结果确定所述目标位姿信息。
[0188]
在本公开的一些实施例中,例如,利用ekf将构建位姿信息与第一位姿信息进行数据融合而得到融合筛选结果。
[0189]
在本公开的一些实施例中,数据融合可以进一步包括数据筛选。例如可以对第二位姿信息与第一位姿信息进行打分,以从第二位姿信息与第一位姿信息中筛选出融合筛选结果。例如,若第一位姿信息的分数高于第二信息的分数,则可以将第一位姿信息作为融合筛选结果。例如,对于包括初始图像 a和初始图像b的匹配图像对,根据第二位姿信息将初始图像b映射到初始图像a中而得到初始图像b的第一映射结果,根据第一位姿信息,将初始图像b映射到初始图像a中而得到初始图像b的第二映射结果,然后比较第一映射结果和第
二映射结果分别与初始图像a之间的差异,并且根据差异对第一位姿信息和第二位姿信息进行打分,打分所得到的分数与映射结果与初始图像的差异负相关。
[0190]
在本公开的一些实施例中,对于每个初始图像对都可以利用上述方法从第一位姿信息和第二位姿信息中筛选出一个比较精确的位姿信息作为数据筛选的结果。
[0191]
在本公开的一些实施例中,例如,基于融合筛选结果确定目标位姿信息,可以包括:利用参数优化方法对融合筛选结果处理而得到目标位姿信息。
[0192]
参数优化方法用于对融合筛选结果进行进一步的优化,从而可以进一步提高目标位姿信息的准确度,进而可以提高图像拼接的质量,使得图像拼接得到拼接图像更加自然。
[0193]
参数优化方法例如可以是光束平差法(bundle adjustment,ba)。当然,本领域技术人员也可以利用其它的参数优化方法对融合筛选结果进行优化而得到目标位姿信息。
[0194]
图6a示出了本公开至少一实施例提供的图4中步骤s52的方法流程图。
[0195]
如图6a所示,步骤s52可以包括步骤s521~s523。
[0196]
步骤s521:基于每个网格对应的目标位姿信息,将每个网格转换到世界坐标系中而获得每个网格在世界坐标系中的世界坐标信息。
[0197]
在本公开的一些实施例中,例如对于每个网格,可以利用目标位姿信息,将网格中的每个像素点由像素平面坐标系转换到世界坐标系,从而得到该网格在世界坐标系中的世界坐标信息。网格在世界坐标系中的世界坐标信息即为网格中每个像素点在世界坐标系中的世界坐标。将网格中每个像素点由像素平面坐标系转换到世界坐标系可以按照相机标定方法进行转换。
[0198]
例如,在相机标定过程中使用到4个坐标系,分别为世界坐标系、相机坐标系、图像物理坐标系和像素平面坐标系。根据相机标定方法中该4个坐标系之间的转换关系可以得到像素点在像素平面坐标系中的坐标与像素点在世界坐标系中的世界坐标满足如下转换关系:
[0199][0200][0201][0202]
其中,r为旋转矩阵,t为平移向量,(u,v)为像素点在像素平面坐标系中的像素坐标,z
c
为像素点在相机坐标系中的z轴坐标,dx可以为相机在x 方向上的每行像素数与相机的x方向的尺寸的比值,dy可以为相机在y方向上的每行像素数与相机的y方向的尺寸的比值,(u0,v0)可以是图像物理坐标系的原点在图像像素坐标系中的图像坐标,f可以是相机的
焦距,(x
w
, y
w
,z
w
)是像素点在世界坐标系中的世界坐标,m1为相机内参,m2为相机外参。
[0203]
相机外参m2确定了相机在三维空间中的位姿(即,位置和朝向)。
[0204]
在本公开的一些实施例中,对于网格中的每个像素点可以根据上述转换关系将每个像素点在像素平面坐标系中的像素坐标转换为世界坐标系中的世界坐标。例如,对于一个网格而言,将该网格对应的目标位姿信息(即, r和t)和网格中的每个像素点的像素坐标代入到上述转换关系中,从而利用上述转换关系计算出每个像素点在世界坐标系中的世界坐标。
[0205]
步骤s522:根据每个网格的世界坐标信息,确定每个网格在曲面投影中的曲面坐标信息。
[0206]
如上所述,曲面投影例如可以包括球面投影、柱面投影等,本公开不限定曲面投影的类型。在下文中以球面投影为例来说明步骤s522的方法。
[0207]
例如,对于每个网格,将网格中的每个像素点的世界坐标转换为在球面投影中的球面坐标。每个网格在球面投影中的曲面坐标信息即为每个网格中的每个像素点在球面投影中的球面坐标。
[0208]
图6b示出了本公开一些实施例提供的一种球面投影的示意图。
[0209]
例如,球面坐标系的原点在球面的中心,并且球面投影为单位球体形成的球面。
[0210]
如图6b所示,世界坐标系中的像素点(x
w
,y
w
,z
w
)在球面投影中的球面坐标为(x

,y

,z

)。
[0211]
在图6b所示的球面投影中,将像素点由世界坐标归一化为球面坐标可以按照如下的公式进行计算:
[0212][0213]
步骤s523:将每个网格在曲面投影中的曲面坐标信息转换为投影信息。
[0214]
在本公开的一些实施例中,投影信息包括初始图像中像素点的经度和维度。
[0215]
在本公开的一些实施例中,为了将三维的球面坐标表示为平面坐标,设立了两个变量θ和θ是z轴和射线在zx平面的投影线的夹角,顺时针为负,是y轴和射线的夹角,顺时针为负。
[0216]
球面坐标和平面坐标之间的转换关系如下式所示:
[0217][0218]
根据上式可以计算出θ和其中,θ为投影信息中的经度,为投影信息中的纬度。
[0219]
图6a所描述的实施例将位姿信息转换为初始图像在曲面投影中的投影信息可以至少部分地消除多个初始图像之间的平移带来的影响,并且不需要对初始图像进行放大或者压缩等处理,从而可以保证图像的清晰度。
[0220]
图7a示出了本公开至少一实施例提供的图4中步骤s53的方法流程图。
[0221]
如图7a所示,步骤s53可以包括步骤s61和步骤s62。
[0222]
步骤s61:确定目标像素画布的尺寸。
[0223]
在本公开的一些实施例中,目标像素画布的尺寸可以是本领域技术人员根据实际需求而设定的。
[0224]
例如,步骤s61确定目标像素画布的尺寸可以包括:获取图像采集装置的采集参数,确定多个初始图像的数量,并确定多个初始图像中每两个相邻的初始图像之间的旋转角度,基于视场角和旋转角度,确定每两个相邻的初始图像之间的重叠区域,以及基于数量、重叠区域和图像尺寸,确定目标像素画布的尺寸。
[0225]
在本公开的一些实施例中,采集参数包括图像采集装置生成的图像的图像尺寸和图像采集装置的视场角。
[0226]
图像采集装置生成的图像的图像尺寸和视场角是图像采集装置本身确定的。例如,图像采集装置生成的图像尺寸可以是h高
×
w宽,w和h均为大于0的整数。例如,w为1024,h为512。图像采集装置的视场角fov例如可以为60
°

[0227]
例如,图像采集装置的采集参数可以通过直接读取固化到图像采集装置中的参数表来获得。或者,图像采集装置的采集参数也可以是本领域技术人员预设设置的。
[0228]
在本公开的一些实施例中,每两个相邻的初始图像之间的旋转角度可以通过上述的目标位姿信息来确定,也就是通过旋转矩阵r来确定。
[0229]
图7b和图7c示出了本公开至少一实施例提供的确定目标像素画布的尺寸的方法示意图。
[0230]
下面以两个相邻的初始图像为第一初始图像和第二初始图像为例来说明上述实施例。例如,如图7b所示,相机的视场角fov为60
°
,若相机从采集第一初始图像到采集第二初始图像,相机的旋转角度为30
°
,则相机采集第一初始图像的视场和采集第二初始图像的视场存在重叠部分(如图7b 阴影部分)。根据相机的视场角fov为60
°
和旋转角度可以估计出重叠部分占据相机整个视场的1/2,因此,该两个相邻的初始图像之间的重叠区域占据每个初始图像的1/2。如图7c所示,在该实施例中,第一初始图像和第二初始图像之间的重叠区域为区域a(即,横线组成的填充区域)。也就是说,区域a对应的图像内容既是第一初始图像中的内容也是第二初始图像中的内容,并且在该实施例中,在第一初始图像中,区域a对应的像素区域大约占据第一初始图像中全部像素区域的1/2,以及在第二初始图像中,区域a对应的像素区域大约占据第二初始图像中全部像素区域的1/2。
[0231]
例如,第一初始图像和第二初始图像的重叠区域为区域a,一个图像的图像尺寸为h高
×
w宽,则第一初始图像和第二初始图像确定的目标像素画布的尺寸可以是h高
×
3w/2宽或者是稍微大于h高
×
3w/2宽。
[0232]
例如,如果多个初始图像的数量为n,相机的视场角fov为60
°
,每两个初始图像之间相机的旋转角度为30
°
,则目标像素画布的尺寸可以为h高
×
(n

1)w/2宽或者是稍微大于h高
×
(n

1)w/2宽。
[0233]
步骤s62:针对每个初始图像,基于目标像素画布的尺寸和初始图像所在的匹配图像对所对应的每个网格在曲面投影中的投影信息,确定每个网格中的像素点在目标像素画布中的位置,从而将每个网格映射到目标像素画布中而生成目标图像。
[0234]
在本公开的一些实施例中,对于每个初始图像,像素点在目标像素画布中的位置通过如下公式计算得到:
[0235]
[0236][0237]
其中,c为每个像素点在目标像素画布中的列,r为每个像素点在目标像素画布中的行,θ为像素点的经度,为像素点的纬度,i
w
为目标像素画布的宽度,i
h
为目标像素画布的高度。
[0238]
图7d和图7e分别示出了第一初始图像和第二初始图像分别映射到目标像素画布中而生成的目标图像401和目标图像402的示意图。
[0239]
如图7d所示,目标图像401包括目标像素画布411和位于目标像素画布411中的第一初始图像421。
[0240]
目标像素画布411的尺寸为i
h
×
i
w
,则根据上述c和r的计算公式可以确定第一初始图像421映射到该目标像素画布中的位置,从而将第一初始图像421映射到该位置从而生成目标图像401。
[0241]
如图7e所示,目标图像402包括目标像素画布431和位于目标像素画布431中的第二初始图像441。
[0242]
目标像素画布431和目标像素画布411的尺寸和形状均相同。例如,目标像素画布431和目标像素画布411均是根据上文参考图7a描述的方法而确定的尺寸。根据上述c和r的计算公式可以确定第二初始图像441映射到该目标像素画布中的位置,从而将第二初始图像441映射到该位置从而生成目标图像402。
[0243]
类似地,多个初始图像中的其他初始图像也可以按照上述方法分别映射到目标像素画布中从而得到多个目标图像。
[0244]
在本公开的一些实施例中,对于步骤s70将多个目标图像进行融合而得到拼接图像,包括:对多个目标图像进行加权融合而得到拼接图像。
[0245]
图8a示出了本公开至少一实施例提供的对多个目标图像进行加权融合而得到拼接图像的方法流程图。
[0246]
图8b和8c示出了本公开至少一实施例提供的对多个目标图像进行加权融合而得到拼接图像的示意图。
[0247]
下面结合图8a、8b和图8c说明对多个目标图像进行加权融合而得到拼接图像的实施例。
[0248]
如图8a所示,该方法可以包括步骤s71~步骤s73。
[0249]
对于步骤s71:基于多个初始图像分别在目标像素画布中的位置,确定多个目标图像中每个目标图像的重叠区域和非重叠区域。
[0250]
在本公开的一些实施例中,重叠区域为每个目标图像与多个目标图像中除该目标图像以外的其他目标图像存在多个相匹配的特征点的区域,非重叠区域为目标图像中除重叠区域之外的区域。
[0251]
图8b和图8c分别示出了目标图像401和目标图像402的重叠区域。如图8b所示,由于图8b中的目标图像401中区域w中的多个特征点与目标图像402中的多个特征点相匹配,因此图8b中的区域w为重叠区域。类似地,由于图8c中的目标图像402中区域v中的多个特征点与目标图像 401中的多个特征点相匹配,因此图8c中的区域v为重叠区域。
[0252]
对于步骤s72:确定重叠区域中的像素点对应的权重。
[0253]
例如,对于目标图像401,确定重叠区域w中的每个像素点对应的权重,对于目标图像402,确定重叠区域v中的每个像素点对应的权重。
[0254]
在本公开的一些实施例中,步骤s72可以包括确定重叠区域中的像素点到初始图像中心的曼哈顿距离;以及基于曼哈顿距离,确定重叠区域中的像素点对应的权重。
[0255]
如图8b所示,对于目标图像401的重叠区域w中的一个像素点q,步骤s72确定像素点q到初始图像421的中心o1之间的曼哈顿距离s1。类似地,在目标图像402中,与像素点q相匹配的特征点为特征点p,步骤s72 确定像素点p到初始图像441的中心o2之间的曼哈顿距离s2,将曼哈顿距离s1和曼哈顿距离s2归一化,并且将归一化后的结果分别作为像素点q和像素点p的权重。
[0256]
对于步骤s73:基于重叠区域的像素点对应的权重,对多个目标图像进行加权融合而得到拼接图像。
[0257]
例如,对于目标图像401和目标图像402,将像素点q和像素点p分别对应的像素值进行加权融合而得到拼接图像中像素点(与像素点q和像素点 p相对应位置处的像素点)的像素值。
[0258]
图8d示出了将目标图像401和目标图像402进行拼接而得到的拼接图像的示意图。
[0259]
例如,对于多个目标图像中每个目标图像中的非重叠区域,将非重叠区域的像素的像素值直接作为拼接图像中该像素的像素值。例如,目标图像401 中除重叠区域w之外的非重叠区域(即,初始图像421中位于区域w左侧的区域)中每个像素点的像素值直接作为拼接图像中该像素点的像素值。也就是,如图8d所示,拼接图像中的区域h1是根据目标图像401中的非重叠区域得到的,则区域h1中的像素点的像素值为目标图像401中的非重叠区域中的像素值。类似地,拼接图像中的区域h3是根据目标图像402中的非重叠区域得到的,则区域h3中的像素点的像素值为目标图像402中的非重叠区域中的像素值。
[0260]
例如,对于重叠区域,将两个目标图像中重叠区域的像素的像素值进行加权平均计算,加权平均计算的结果可以作为拼接图像中该像素的像素值。如图8d所示,拼接图像中的区域h2中像素点的像素值是根据目标图像401 和目标图像402重叠区域的像素点的像素值进行加权平均计算而得到的。
[0261]
对于步骤s70,本领域技术人员也可以采用其他的图像融合方法将多个目标图像进行融合而得到拼接图像。例如可以采用泊松融合将多个目标图像进行融合而得到拼接图像。
[0262]
需要理解的是,图8d仅为一种多个初始图像中的两个初始图像进行拼接而得到拼接图像的示例,实际上,在图8d中的目标像素画布中除该两个初始图像拼接得到的拼接图像之外的区域还包括其他的初始图像拼接而成的结果。
[0263]
在本公开的一些实施例中,图像处理方法还可以包括对拼接图像进行剪裁。例如,对图8d中的拼接图像进行剪裁,以便将目标像素画布中多余的部分剪掉,即,将目标像素画布中未被拼接图像占据的部分裁掉。
[0264]
图9示出了本公开至少一实施例提供的另一种图像处理方法的流程图。
[0265]
如图9所示,该图像处理方法除包括图1中所描述的步骤s10~步骤s60 外,还进一步包括步骤s70。步骤s70例如可以在步骤s50之后并且在步骤 s60之前执行。
[0266]
步骤s70:对多个目标图像进行光照均匀化处理,使得多个目标图像的光照强度均
匀。
[0267]
在本公开的一些实施例中,例如利用高动态光照渲染(high

dynamicrange,hdr)技术对多个目标图像进行光照均匀化处理。当然,本领域技术人员也可以采用其他的图像处理方法对多个目标图像进行光照均匀化处理。
[0268]
在本公开的一些实施例中,实际拍摄的多个初始图像由于受到相机曝光的影响,导致图像序列的光照不统一,如果不进行光照处理,合成的拼接图像将会有明显的光照分割,即光照不统一的现象,这会影响用户体验,通过对多个目标图像的进行光照均匀化处理。可以使得图像的拼接更加自然,提高用户体验。
[0269]
图10a示出了本公开至少一实施例提供的另一种图像处理方法的流程图。
[0270]
如图10a所示,该图像处理方法在图1或者图9所描述的步骤的基础上,还可以进一步包括步骤s110~s130。步骤s110~s130例如可以在步骤s10 之前执行。
[0271]
步骤s110:获取图像采集装置的拍摄位姿。
[0272]
在本公开的一些实施例中,图像采集装置的拍摄位姿可以是用户选择的。例如,用户以一个拍摄位姿拿起移动端进行拍摄,此时移动端可以进行拍摄初始化,并且在拍摄初始化后,确定出移动端的拍摄位姿。例如,移动端可以为手机或平板电脑,也可以为其他适用的移动端设备。
[0273]
步骤s120:基于拍摄位姿,确定拍摄环境中的至少一个目标拍摄区域。
[0274]
在本公开的一些实施例中,至少一个目标拍摄区域可以是预先设置的。例如至少一个目标拍摄区域是根据要拍摄的环境和图像采集装置的视场角确定的。例如,图像采集装置的视场角为60
°
,相机采集两个相邻图像的视场角存在30
°
的重叠,则可以设计12个目标拍摄区域来引导用户拍摄环绕用户所在拍摄位置的一周的全景图。
[0275]
又例如,在拍摄全景图的场景中,根据移动端的当前位置,确定出一个球形区域,该球形区域的球心为当前位置,并且从球形区域中选定与水平面平行的至少一个圆形轨迹,以根据圆形轨迹确定出目标拍摄区域。圆形轨迹可以是球形区域中相当于赤道的圆,也可以是相当于南北回归线的圆,还可以是其他纬度的圆,各个圆形轨迹与水平面平行。
[0276]
需要说明的是,在采集过程中,球形区域可以不在移动端的图形用户界面中展示,球型区域的球心为移动端在实体空间的位置点。
[0277]
图10b示出了本公开至少一实施例提供的一种确定目标拍摄区域的示意图。
[0278]
如图10b所示,以移动端所在的当前位置为球心确定出一个球形区域。例如,从球形区域中选定与水平面平行的相当于南北回归线的两个圆形轨迹。两个圆形轨迹分别作为两个目标拍摄区域的基准线,然后每个基准线向外辐射预设的距离分别形成两个目标拍摄区域,即,在球形区域中选择两个区域作为目标拍摄区域。位于相机第一侧(远离地面的一侧)的第一目标拍摄区域用于对用户所处实体空间中相对上方的位置进行初始图像的采集;位于相机第二侧(靠近地面的一侧)的第二目标拍摄区域用于对用户所处实体空间中相对下方的位置进行初始图像的采集,这样可以完整地获取用户所处实体空间的全景信息。该方法可以使得全景信息的采集通过终端即可实现,克服了依赖于固定设备的问题,有效降低了采集成本,简化了采集流程。可以理解的是,目标拍摄区域可以是一个、两个或三个等,本公开对目标拍摄区域的数量不作限制。
[0279]
步骤s130:基于至少一个目标拍摄区域,显示提示信息,以提示用户分别在多个拍
摄点采集多个初始图像。
[0280]
例如,提示信息例如可以是图标。例如,可以在移动端的界面上展示第一图标和第二图标,第一图标为此时图像采集装置实际对准的当前位置,第二图像为根据目标拍摄区域确定的图像采集装置需要对准的目标位置,第一图标随着图像采集装置的拍摄位姿的改变而改变,直到第一图标和第二图像对齐(也即,重叠或部分重叠),则确定图像采集装置对准了目标位置,可以进行初始图像的采集。
[0281]
在本公开的一些实施例中,基于所述至少一个目标拍摄区域,显示提示信息,包括:基于至少一个目标拍摄区域,显示至少一个采集引导区域,至少一个采集引导区域分别与至少一个目标拍摄区域相对应;以及显示提示信息,提示信息指示了图像采集装置当前对准的参考拍摄点。在提示信息落入至少一个采集引导区域中的目标采集引导区域的情况下,图像采集装置当前对准的参考拍摄点为所述目标采集引导区域对应的目标拍摄区域中的拍摄点。
[0282]
图10c示出了本公开至少一实施例提供的显示提示信息的场景示意图。
[0283]
如图10c所示,该场景中包括电子设备1000,电子设备1000为前述的移动端,电子设备1000在进行初始图像的采集。在采集过程中,电子设备 1000的图形用户交互界面上显示有采集引导区域和采集准星。
[0284]
例如,采集引导区域可以为引导用户进行全景信息采集的区域。如图10c 所示,采集引导区域可以通过多个引导圈、引导环等标识出。随着移动端的移动,移动端可以在采集界面中展示一个采集引导区域,也可以展示多个采集引导区域。
[0285]
例如,提示信息为采集准星,采集准星可以为位于采集界面中用于对采集引导区域进行瞄准、定位的标识,以指示图像采集装置当前对准的参考拍摄点。
[0286]
采集准星作为一种瞄准、定位的标识可以是任意形状和大小,只要能起到提示的作用即可。如图10c所示,例如,采集准星可以是由两个半径不同的圆组成的圆环。
[0287]
在采集准星落入至少一个采集引导区域中的目标采集引导区域的情况下,图像采集装置当前对准的参考拍摄点为所述目标采集引导区域对应的目标拍摄区域中的拍摄点。
[0288]
采集准星可以在采集界面所呈现的采集对象上移动,用户或者图像采集装置可以通过判断采集准星是否全部落入采集引导区域,或判断采集准星的中心是否落入采集引导区域,确定是否开始采集初始图像。
[0289]
在本公开的一些实施例中,图像处理方法还包括:响应于图像采集装置的运动,控制提示信息在采集引导区域中按照与图像采集装置的运动方向相同的方向至少环绕一周,以采集多个初始图像。
[0290]
例如,控制采集准星在采集引导区域中按照与图像采集装置的运动方向相同的方向至少环绕一周,以采集多个初始图像。
[0291]
在本公开的一些实施例中,当用户控制移动端移动和/或转动,使得采集准星落入采集引导区域中,则随着移动端以固定的方向进行运动,移动端可以控制采集准星在采集引导区域中按照移动端的运动方向相同的方向进行移动,并在移动端中实时进行图像采集,获得多个初始图像,从而通过采集准星与采集引导区域,对用户进行全景信息采集进行引导,可以有效帮助用户对拍摄环境中的拍摄点进行信息采集,全景信息的采集通过移动端即可实现,克服了依赖于固定设备的问题,有效降低了采集成本,简化了采集流程。
[0292]
在本公开的一些实施例中,针对按照所述提示信息采集的所述多个初始图像中的每个初始图像,所述每个初始图像与相邻初始图像存在重叠区域,所述相邻初始图像为在与所述每个初始图像对应的拍摄点相邻的拍摄点所采集的初始图像。
[0293]
例如,对于每个初始图像,多个初始图像中都会存在至少一个不同于该初始图像的其他初始图像与该初始图像存在重叠区域。这样可以使得用户根据提示信息拍摄的多个初始图像可以形成闭环,即每相邻的两个初始图像之间存在重叠区域,并且第一个初始图像和最后一个初始图像之间存在重叠区域,从而可以保证拍摄到全景图像。
[0294]
在本公开的一些实施例中,图像处理方法在前述步骤的基础上还可以进一步包括:将拼接图像转换成三维图像,并且输出三维图像,以将三维图像作为全景图像展示。
[0295]
例如可以利用三维模型软件将拼接图像转换成三维图像。
[0296]
在本公开的一些实施例中,由于图像处理方法不用将采集的图像上传服务器而可以在移动端直接执行,因此三维图像也可以实时地显示于移动端,以供用户观看。
[0297]
在本公开的一些实施例中,上述图像处理方法可以应用于房间、车等场景中,以生成房间的全景图或者车的全景图。
[0298]
例如,在本公开的一些实施例中,图像处理方法可以包括如下步骤:首先,获取图像序列,图像序列包括多个初始图像,多个初始图像是通过对容纳空间进行图像采集而得到的。然后,获取多个初始图像分别对应的位姿信息;基于多个初始图像分别对应的位姿信息,确定多个初始图像中每个初始图像在曲面投影中的投影信息,并且根据投影信息将多个初始图像分别映射到目标像素画布中而生成多个目标图像,之后可以将多个目标图像进行融合而得到容纳空间的全景图。也即,执行上文参考图1所描述的方法。
[0299]
在本公开的一些实施例中,容纳空间,例如可以是房间、车等。
[0300]
在本公开的一些实施例中,对容纳空间进行图像采集可以是在容纳空间内,对容纳空间进行图像采集,或者也可以是在容纳空间外部,对容纳空间的进行图像采集。
[0301]
若在容纳空间内对容纳空间进行图像采集,根据上文描述的方法可以得到容纳空间内部的全景图。例如,通过对房间内部进行图像采集,根据上文描述的方法可以生成房间内部的全景图,从而可以展示房间内部的三维图像。例如,通过对车内进行图像采集,根据上文描述的方法可以生成车内的全景图,从而可以展示车内的三维图像。
[0302]
若在容纳空间的外部对容纳空间进行图像采集,根据上文描述的方法可以得到容纳空间外形的全景图。例如,通过在车外对车进行图像采集,根据上文描述的方法可以生成车的外形的全景图。
[0303]
图10d示出了本公开至少一实施例提供的生成拼接图像的效果示意图。
[0304]
如图10d所示,例如,用户利用移动端在房间内采集了多个初始图像。在图10d中以初始图像810~830示意性表示。
[0305]
例如,多个初始图像810~830是根据移动端(即,图像采集装置)的运动,控制采集准星在采集引导区域中按照与移动端的运动方向相同的方向至少环绕一周采集到的。
[0306]
例如,获取移动端的摄像头采集初始图像810~830时分别采用的位姿,然后基于初始图像810~830分别对应的位姿信息,确定初始图像810~830中每个初始图像的像素点在曲面投影中的经纬度,并且根据像素点在曲面投影中的经纬度,将初始图像810~830分别映射到目标像素画布中而分别生成目标图像811~813。接下来,将目标图像811~813进
行融合而得到拼接图像814,即房间的全景图。
[0307]
将拼接图像814进行三维转换即可得到房间的三维图,使得用户体验到 vr(virtual reality,虚拟现实)看房的效果。
[0308]
图10e示出了本公开至少一实施例提供的生成拼接图像的另一效果示意图。
[0309]
如图10e所示,例如,用户利用移动端在车内采集了多个初始图像。在图10e中以初始图像901~903示意性表示。
[0310]
例如,多个初始图像901~903是根据移动端(即,图像采集装置)的运动,控制采集准星在采集引导区域中按照与移动端的运动方向相同的方向至少环绕一周采集到的。
[0311]
例如,获取移动端的摄像头采集初始图像901~903时分别采用的位姿,然后基于初始图像901~903分别对应的位姿信息,确定初始图像901~903中每个初始图像的像素点在曲面投影中的经纬度,并且根据像素点在曲面投影中的经纬度,将初始图像901~903分别映射到目标像素画布中而分别生成目标图像911~913。接下来,将目标图像911~913进行融合而得到拼接图像914,即得到车内的全景图。
[0312]
将拼接图像914进行三维转换即可得到房间的三维图,使得用户体验到 vr(virtual reality,虚拟现实)看车的效果。
[0313]
图11示出了本公开至少一个实施例提供的一种图像处理装置1100的示意框图。
[0314]
如图11所示,该图像处理装置1100包括获取单元1110、特征点匹配单元1120、网格化单元1130、计算单元1140、映射单元1150和融合单元1160。
[0315]
获取单元1110配置为获取多个初始图像。获取单元1110例如可以执行图1描述的步骤s10。
[0316]
特征点匹配单元1120配置为将所述多个初始图像进行特征点匹配而获得至少一个匹配图像对。例如,至少一个匹配图像对中每个匹配图像对包括第一初始图像和第二初始图像,所述第一初始图像和第二初始图像为之间存在相匹配的特征点的不同初始图像。特征点匹配单元1120例如可以执行图 1描述的步骤s20。
[0317]
网格化单元1130配置为针对所述每个匹配图像对,选择所述匹配图像对中的所述第一初始图像和所述第二初始图像中的一个作为网格化图像,并且对所述网格化图像进行网格化处理,以将所述网格化图像划分为多个网格。网格化单元1130例如可以执行图1描述的步骤s30。
[0318]
计算单元1140配置为针对所述每个匹配图像对,基于所述第一初始图像和所述第二初始图像之间相匹配的特征点,计算所述多个网格中每个网格对应的映射矩阵。计算单元1140例如可以执行图1描述的步骤s40。
[0319]
映射单元1150配置为根据所述每个初始图像在所述曲面投影中的投影信息,将所述多个初始图像分别映射到目标像素画布中而生成多个目标图像。映射单元1150例如可以执行图1描述的步骤s50。
[0320]
融合单元1160配置为将所述多个目标图像进行融合而得到拼接图像。融合单元1160例如可以执行图1描述的步骤s60。
[0321]
例如,获取单元1110、特征点匹配单元1120、网格化单元1130、计算单元1140、映射单元1150和融合单元1160可以为硬件、软件、固件以及它们的任意可行的组合。例如,获取单元1110、特征点匹配单元1120、网格化单元1130、计算单元1140、映射单元1150和融合单
元1160可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
[0322]
需要说明的是,本公开的实施例中,图像处理装置1100的各个单元与前述的图像处理方法的各个步骤对应,关于图像处理装置1100的具体功能可以参考关于图像处理方法的相关描述,此处不再赘述。图11所示的图像处理装置1100的组件和结构只是示例性的,而非限制性的,根据需要,该图像处理装置1100还可以包括其他组件和结构。
[0323]
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的图像处理方法的指令。该电子设备使得图像的拼接不依赖于深度数据,降低了图像拼接对图像质量的要求和运算量,有助于在移动端实现图像拼接,不仅使得图像拼接的实现更加简单,成本更低,而且使得图像拼接的效果更好,更加自然。
[0324]
图12a为本公开一些实施例提供的一种电子设备的示意框图。如图12a 所示,该电子设备1200包括处理器1210和存储器1220。存储器1220用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器1210用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器 1210运行时可以执行上文所述的图像处理方法中的一个或多个步骤。存储器 1220和处理器1210可以通过总线系统和/或其它形式的连接机构(未示出) 互连。
[0325]
例如,处理器1210可以是中央处理单元(cpu)、图形处理单元(gpu) 或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(cpu)可以为x86或arm架构等。处理器1210可以为通用处理器或专用处理器,可以控制电子设备1200中的其它组件以执行期望的功能。
[0326]
例如,存储器1220可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram) 和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器 (rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd

rom)、usb存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器1210可以运行一个或多个计算机程序模块,以实现电子设备1200的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
[0327]
需要说明的是,本公开的实施例中,电子设备1200的具体功能和技术效果可以参考上文中关于图像处理方法的描述,此处不再赘述。
[0328]
图12b为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备1300例如适于用来实施本公开实施例提供的图像处理方法。电子设备 1300可以是终端设备等。需要注意的是,图12b示出的电子设备1300仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
[0329]
如图12b所示,电子设备1300可以包括处理装置(例如中央处理器、图形处理器等)1310,其可以根据存储在只读存储器(rom)1320中的程序或者从存储装置1380加载到随机访问存储器(ram)1330中的程序而执行各种适当的动作和处理。在ram 1330中,还存储有电
子设备1300操作所需的各种程序和数据。处理装置1310、rom 1320以及ram1330通过总线 1340彼此相连。输入/输出(i/o)接口1350也连接至总线1340。
[0330]
通常,以下装置可以连接至i/o接口1350:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1360;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置1370;包括例如磁带、硬盘等的存储装置1380;以及通信装置1390。通信装置1390可以允许电子设备1300与其他电子设备进行无线或有线通信以交换数据。虽然图12b 示出了具有各种装置的电子设备1300,但应理解的是,并不要求实施或具备所有示出的装置,电子设备1300可以替代地实施或具备更多或更少的装置。
[0331]
例如,根据本公开的实施例,上述图像处理方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述图像处理方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置 1390从网络上被下载和安装,或者从存储装置1380安装,或者从rom 1320 安装。在该计算机程序被处理装置1310执行时,可以实现本公开实施例提供的图像处理方法中限定的功能。
[0332]
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的图像处理方法。利用该计算机可读存储介质,可以使得图像的拼接不依赖于深度数据,降低了图像拼接对图像质量的要求和运算量,有助于在移动端实现图像拼接,不仅使得图像拼接的实现更加简单,成本更低,而且使得图像拼接的效果更好,更加自然。
[0333]
图13为本公开一些实施例提供的一种存储介质的示意图。如图13所示,存储介质1400用于存储非暂时性计算机可读指令1410。例如,当非暂时性计算机可读指令1410由计算机执行时可以执行根据上文所述的图像处理方法中的一个或多个步骤。
[0334]
例如,该存储介质1400可以应用于上述电子设备1200中。例如,存储介质1400可以为图12a所示的电子设备1200中的存储器1220。例如,关于存储介质1400的相关说明可以参考图12a所示的电子设备1200中的存储器1220的相应描述,此处不再赘述。
[0335]
有以下几点需要说明:
[0336]
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
[0337]
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
[0338]
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1