相机定位及神经网络的训练方法和装置与流程

文档序号:19310687发布日期:2019-12-03 23:29阅读:286来源:国知局
相机定位及神经网络的训练方法和装置与流程

本公开涉及机器学习技术,具体涉及相机定位及神经网络的训练方法和装置。



背景技术:

随着人们生活水平的提高,人们出行已经离不开地图和汽车。最近计算机视觉的发展为生活提供了巨大的便利,无论地图导航还是汽车,都需要通过相机拍摄到的图像来进行定位。此外,机器人的导航也离不开基于视觉的相机定位方法,因此相机定位是计算机视觉领域中重要的工作。其可以应用在自动驾驶和机器人以及地图导航等多项任务上并具有重要的意义。

传统的相机定位方法中,有相对定位的方法,即根据两张图像中的相对位姿和其中一张图像的相机绝对位姿,来得到另一张图像的相机绝对位姿。但是目前这种相对定位的定位精度较低。



技术实现要素:

有鉴于此,本公开至少提供一种相机定位及神经网络的训练方法和装置,以提高相机定位的精度。

第一方面,提供一种相机定位方法,所述方法包括:

在图像数据库中检索得到查询图像的初始配对图像;所述图像数据库中的图像对应的相机绝对位姿已知;

获取所述初始配对图像与查询图像的预测相机相对位姿;根据所述预测相机相对位姿,确定所述查询图像的相机估计位姿;

根据所述查询图像的相机估计位姿,由所述图像数据库检索得到所述查询图像的新配对图像;

预测所述新配对图像和查询图像的相机相对位姿;

基于所述新配对图像和查询图像的相机相对位姿、以及所述新配对图像的相机绝对位姿,确定所述查询图像的相机绝对位姿。

在一些实施例中,所述在图像数据库中检索得到查询图像的初始配对图像之前,所述方法还包括:获取已知地理数据库,所述已知地理数据库包括相机绝对位姿已知的多张图像;由所述已知地理数据库中选取预定地理区域对应的图像,构建所述图像数据库。

在一些实施例中,所述在图像数据库中检索得到查询图像的初始配对图像之前,所述方法还包括:通过设置有采集相机的采集智能终端,在预定地理区域采集多张图像;确定采集的各图像分别对应的相机绝对位姿;根据采集的所述多张图像及其相机绝对位姿,构建所述预定地理区域对应的图像数据库。

在一些实施例中,所述图像数据库的各图像对应的预定地理区域,是如下任一类型的区域:地图导航区域、智能驾驶定位区域或机器人导航区域。

在一些实施例中,所述在图像数据库中检索得到查询图像的初始配对图像,包括:接收待进行相机定位的所述查询图像;提取所述查询图像的图像特征;根据所述查询图像的图像特征,由所述图像数据库中检索得到所述查询图像的初始配对图像。

在一些实施例中,所述相机定位方法由相机定位装置执行,所述相机定位装置包括相机定位神经网络;所述相机定位神经网络包括:共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络;所述共享子网络分别与所述粗检索子网络、细检索子网络和相对位姿回归子网络连接;所述查询图像、所述初始配对图像和所述新配对图像,均先经过所述共享子网络进行提取图像特征的处理,分别得到共享处理后的图像;所述在图像数据库中检索得到查询图像的初始配对图像之前,所述方法还包括:共享处理后的所述查询图像经过粗检索子网络的处理,得到所述查询图像的图像特征,以根据所述图像特征检索所述初始配对图像;所述获取所述初始配对图像与查询图像的预测相机相对位姿,包括:共享处理后的所述初始配对图像和查询图像经过所述细检索子网络的处理,由所述细检索子网络输出两者的预测相机相对位姿;所述预测所述新配对图像和查询图像的相机相对位姿,包括:共享处理后的所述新配对图像和所述查询图像经过所述相对位姿回归子网络的处理,由所述相对位姿回归子网络输出两者的相机相对位姿。

在一些实施例中,所述相对位姿回归子网络包括解码网络部分和回归网络部分;所述共享处理后的所述新配对图像和所述查询图像经过所述相对位姿回归子网络的处理,由所述相对位姿回归子网络输出两者的相机相对位姿,包括:所述共享处理后的新配对图像与查询图像的图像对,输入所述相对位姿回归子网络,经过所述相对位姿回归子网络中的解码网络部分的处理后,得到图像对中每张图像的图像特征;将所述新配对图像与查询图像的图像特征拼接,得到拼接特征;所述拼接特征经过所述相对位姿回归子网络的回归网络部分的处理后,输出预测的查询图像和新配对图像的相机相对位姿。

在一些实施例中,所述细检索子网络包括解码网络部分和回归网络部分;所述共享处理后的所述初始配对图像和查询图像经过所述细检索子网络的处理,由所述细检索子网络输出两者的预测相机相对位姿,包括:所述共享处理后的初始配对图像与查询图像的图像对,输入所述细检索子网络,经过所述细检索子网络中的解码网络部分的处理后,得到图像对中每张图像的图像特征;将所述初始配对图像与查询图像的图像特征拼接,得到拼接特征;所述拼接特征经过所述细检索子网络的回归网络部分的处理后,输出预测的查询图像和初始配对图像的预测相机相对位姿。

在一些实施例中,在所述共享处理后的所述查询图像经过粗检索子网络的处理,得到所述查询图像的图像特征之前,所述方法还包括:使用预训练的相机定位神经网络中的共享子网络和粗检索子网络,对所述图像数据库中的每张图像提取图像特征;对所述每张图像标注所述图像特征,以使得根据所述图像特征进行图像检索。

在一些实施例中,所述在图像数据库中检索得到所述查询图像的初始配对图像,包括:检索得到所述查询图像的多个初始配对图像,以根据所述多个初始配对图像得到多个所述新配对图像;所述确定所述查询图像的相机绝对位姿,包括:分别根据所述多个新配对图像的每一张新配对图像得到查询图像的相机绝对位姿,并根据多个所述相机绝对位姿得到所述查询图像的相机绝对位姿。

第二方面,提供一种相机定位神经网络的训练方法,所述方法包括:

获取多组图像对,每一组图像对包括一个查询图像和一个配对图像,且所述配对图像和查询图像分别具有对应的相机绝对位姿,所述图像对还具有相对位姿的标注信息;

通过相机定位神经网络对于任一图像对,预测所述查询图像和配对图像之间的相机相对位姿;基于所述相对位姿和配对图像的相机绝对位姿,确定所述查询图像的相机估计位姿;

根据所述查询图像的相机估计位姿,由图像数据库中检索所述查询图像的新配对图像,所述新配对图像与所述查询图像构成新图像对;

通过相机定位神经网络预测所述新图像对中的查询图像与新配对图像的相机相对位姿;基于所述相机相对位姿的预测信息与标注信息之间的差异,调整所述相机定位神经网络的网络参数。

在一些实施例中,所述相机定位神经网络包括:共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络;所述共享子网络分别与所述粗检索子网络、细检索子网络和相对位姿回归子网络连接;

所述查询图像、所述初始配对图像和所述新配对图像,均先经过所述共享子网络进行提取图像特征的处理,分别得到共享处理后的图像;所述获取多组图像对之后,所述方法还包括:共享处理后的所述查询图像和配对图像经过粗检索子网络的处理,得到所述查询图像和配对图像之间的图像关系参数;共享处理后的所述配对图像和查询图像经过所述细检索子网络的处理,由所述细检索子网络输出两者的预测相机相对位姿;共享处理后的所述新配对图像和所述查询图像经过所述相对位姿回归子网络的处理,由所述相对位姿回归子网络输出两者的相机相对位姿;所述调整所述相机定位神经网络的网络参数,包括:根据所述图像关系参数的预测信息和标注信息的差异、所述细检索子网络输出的相机相对位姿的预测信息和标注信息的差异、以及所述相对位姿回归子网络输出的相机相对位姿的预测信息和标注信息的差异,调整所述共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络的网络参数。

在一些实施例中,所述得到所述查询图像和配对图像之间的图像关系参数,包括:根据一组图像对中的查询图像和配对图像的旋转位姿,确定预测的所述查询图像和配对图像的相机位姿的相对角度偏移量作为所述图像关系参数。

在一些实施例中,所述得到所述查询图像和配对图像之间的图像关系参数,包括:将同一查询图像对应的多个图像对按照回归相对位姿的难易程度进行分组;分别获取不同分组中各图像对的图像特征距离;根据所述图像特征距离,得到难样本挖掘损失的预测值,所述难样本挖掘损失用于表示不同分组中的任意图像特征距离之间的关系。

第三方面,提供一种相机定位装置,所述装置包括:

初始检索模块,用于在图像数据库中检索得到查询图像的初始配对图像;所述图像数据库中的图像对应的相机绝对位姿已知;

初始预测模块,用于获取所述初始配对图像与查询图像的预测相机相对位姿;根据所述预测相机相对位姿,确定所述查询图像的相机估计位姿;

重新检索模块,用于根据所述查询图像的相机估计位姿,由所述图像数据库检索得到所述查询图像的新配对图像;

重新预测模块,用于预测所述新配对图像和查询图像的相机相对位姿;

定位确定模块,用于基于所述新配对图像和查询图像的相机相对位姿、以及所述新配对图像的相机绝对位姿,确定所述查询图像的相机绝对位姿。

在一些实施例中,所述装置还包括:第一图像获取模块,用于在图像数据库中检索得到查询图像的初始配对图像之前,获取已知地理数据库,所述已知地理数据库包括相机绝对位姿已知的多张图像;由所述已知地理数据库中选取预定地理区域对应的图像,构建所述图像数据库。

在一些实施例中,所述装置还包括:第二图像获取模块,用于在图像数据库中检索得到查询图像的初始配对图像之前,通过设置有采集相机的采集智能终端,在预定地理区域采集多张图像;确定采集的各图像分别对应的相机绝对位姿;根据采集的所述多张图像及其相机绝对位姿,构建所述预定地理区域对应的图像数据库。

在一些实施例中,所述图像数据库的各图像对应的预定地理区域,是如下任一类型的区域:地图导航区域、智能驾驶定位区域或机器人导航区域。

在一些实施例中,所述初始检索模块,具体用于:接收待进行相机定位的所述查询图像;提取所述查询图像的图像特征;根据所述查询图像的图像特征,由所述图像数据库中检索得到所述查询图像的初始配对图像。

在一些实施例中,所述相机定位装置包括相机定位神经网络;所述相机定位神经网络包括:共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络;所述共享子网络分别与所述粗检索子网络、细检索子网络和相对位姿回归子网络连接;所述共享子网络,用于对所述查询图像、所述初始配对图像和所述新配对图像,分别进行提取图像特征的处理,分别得到共享处理后的图像;所述初始检索模块,在用于检索得到查询图像的初始配对图像之前,还用于:对共享处理后的所述查询图像经过粗检索子网络的处理,得到所述查询图像的图像特征,以根据所述图像特征检索所述初始配对图像;所述初始预测模块,在用于获取所述初始配对图像与查询图像的预测相机相对位姿时,包括:对共享处理后的所述初始配对图像和查询图像经过所述细检索子网络的处理,由所述细检索子网络输出两者的预测相机相对位姿;所述重新预测模块,在用于预测所述新配对图像和查询图像的相机相对位姿时,包括:对共享处理后的所述新配对图像和所述查询图像经过所述相对位姿回归子网络的处理,由所述相对位姿回归子网络输出两者的相机相对位姿。

在一些实施例中,所述相对位姿回归子网络包括解码网络部分和回归网络部分;所述重新预测模块,具体用于:对所述共享处理后的新配对图像与查询图像的图像对,输入所述相对位姿回归子网络,经过所述相对位姿回归子网络中的解码网络部分的处理后,得到图像对中每张图像的图像特征;将所述新配对图像与查询图像的图像特征拼接,得到拼接特征;所述拼接特征经过所述相对位姿回归子网络的回归网络部分的处理后,输出预测的查询图像和新配对图像的相机相对位姿。

在一些实施例中,所述细检索子网络包括解码网络部分和回归网络部分;所述初始预测模块,具体用于:对所述共享处理后的初始配对图像与查询图像的图像对,输入所述细检索子网络,经过所述细检索子网络中的解码网络部分的处理后,得到图像对中每张图像的图像特征;将所述初始配对图像与查询图像的图像特征拼接,得到拼接特征;所述拼接特征经过细检索子网络的回归网络部分的处理后,输出预测的查询图像和初始配对图像的相机相对位姿。

在一些实施例中,所述初始检索模块,还用于:在所述共享处理后的所述查询图像经过粗检索子网络的处理,得到所述查询图像的图像特征之前,使用预训练的相机定位神经网络中的共享子网络和粗检索子网络,对所述图像数据库中的每张图像提取图像特征;对所述每张图像标注所述图像特征,以使得根据所述图像特征进行图像检索。

在一些实施例中,所述在图像数据库中检索得到所述查询图像的初始配对图像,包括:检索得到所述查询图像的多个初始配对图像,以根据所述多个初始配对图像得到多个所述新配对图像;所述定位确定模块,具体用于:分别根据所述多个新配对图像的每一张新配对图像得到查询图像的相机绝对位姿,并根据多个所述相机绝对位姿得到所述查询图像的相机绝对位姿。

第四方面,提供一种相机定位神经网络的训练装置,所述装置包括:

图像获得模块,用于获取多组图像对,每一组图像对包括一个查询图像和一个配对图像,且所述配对图像和查询图像分别具有对应的相机绝对位姿,所述图像对还具有相对位姿的标注信息;

相对预测模块,用于通过相机定位神经网络对于任一图像对,预测所述查询图像和配对图像之间的相机相对位姿;

估计位姿模块,用于基于所述相对位姿和配对图像的相机绝对位姿,确定所述查询图像的相机估计位姿;

新图像模块,用于根据所述查询图像的相机估计位姿,由图像数据库中检索所述查询图像的新配对图像,所述新配对图像与所述查询图像构成新图像对;

位姿预测模块,用于通过相机定位神经网络预测所述新图像对中的查询图像与新配对图像的相机相对位姿;

参数调整模块,用于基于所述相机相对位姿的预测信息与标注信息之间的差异,调整所述相机定位神经网络的网络参数。

在一些实施例中,所述相机定位神经网络包括:共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络;所述共享子网络分别与所述粗检索子网络、细检索子网络和相对位姿回归子网络连接;所述共享子网络,用于对所述查询图像、所述初始配对图像和所述新配对图像,均先经过所述共享子网络进行提取图像特征的处理,分别得到共享处理后的图像;所述装置还包括:初始检索模块,用于对共享处理后的所述查询图像和配对图像经过粗检索子网络的处理,得到所述查询图像和配对图像之间的图像关系参数;所述相对预测模块,具体用于:对共享处理后的所述配对图像和查询图像经过细检索子网络的处理,由所述细检索子网络输出两者的相对位姿的预测信息;所述位姿预测模块,具体用于:共享处理后的所述新配对图像和所述查询图像经过所述相对位姿回归子网络的处理,由所述相对位姿回归子网络输出两者的相对位姿的预测信息;所述参数调整模块,在用于调整所述相机定位神经网络的网络参数时,包括:根据所述图像关系参数的预测信息和标注信息的差异、所述细检索子网络输出的相对位姿预测信息和标注信息的差异、以及所述相对位姿回归子网络输出的相对位姿预测信息和标注信息的差异,调整所述共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络的网络参数。

在一些实施例中,所述初始检索模块,在用于得到所述查询图像和配对图像之间的图像关系参数时,包括:根据一组图像对中的查询图像和配对图像的旋转位姿,确定预测的所述查询图像和配对图像的相机位姿的相对角度偏移量作为所述图像关系参数。

在一些实施例中,所述初始检索模块,在用于得到所述查询图像和配对图像之间的图像关系参数时,包括:将同一查询图像对应的多个图像对按照回归相对位姿的难易程度进行分组;分别获取不同分组中各图像对的图像特征距离;根据所述图像特征距离,得到难样本挖掘损失的预测值,所述难样本挖掘损失用于表示不同分组中的任意图像特征距离之间的关系。

第五方面,提供一种电子设备,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开任一实施例所述的相机定位方法,或者实现本公开任一实施例所述的相机定位神经网络的训练方法。

第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例所述的相机定位方法,或者实现本公开任一实施例所述的相机定位神经网络的训练方法。

本公开实施例提供的相机定位及神经网络的训练方法和装置,通过在获得初始配对图像之后,又根据该初始配对图像获得查询图像的估计位姿,并基于估计位姿进行检索,使得检索到的新配对图像与查询图像的位姿更加接近,而位姿偏差较小的图像对用来做相对位姿预测将更为准确,进而相机定位结果也更准确。

附图说明

为了更清楚地说明本公开一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了本公开至少一个实施例提供的一种相机定位方法的流程图;

图2示出了本公开至少一个实施例提供的一种相机定位神经网络的训练流程;

图3示出了本公开至少一个实施例提供的另一种相机定位神经网络的训练流程;

图4示出了本公开至少一个实施例提供的两张图像的视角重合度的示意;

图5示出了本公开至少一个实施例提供的一种相机定位方法的流程图;

图6示出了本公开至少一个实施例提供的采用本公开提供的相机定位方法得到定位结果的效果对比示意;

图7示出了本公开至少一个实施例提供的一种相机定位装置的示意图;

图8示出了本公开至少一个实施例提供的一种相机定位装置的示意图;

图9示出了本公开至少一个实施例提供的一种相机定位装置的示意图;

图10示出了本公开至少一个实施例提供的一种相机定位装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本公开一个或多个实施例中的技术方案,下面将结合本公开一个或多个实施例中的附图,对本公开一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。

假设当前有一张图像,该图像是由相机拍摄,例如,可以是由机器人上设置的相机拍摄得到,或者,也可以是由车辆上设置的相机拍摄得到。本公开实施例的“相机定位”即在确定相机的绝对位姿,如从世界坐标系或者该相机坐标系本身来看相机是在何种位姿状态下拍摄得到的该图像。当相机定位后,也同时可以实现了对机器人或车辆等相机所在设备的定位。这是一种通过相机拍摄到的图像进行定位的方式。

本公开提供的相机定位方法,是一种“相对定位”的定位方式。例如,某一相机拍摄了图像f1和图像f2,其中,这两张图像对应着不同的相机位姿,那么,可以将各自图像对应的相机位姿称为图像的“相机绝对位姿”,将两张图像对应的相机位姿之间的差异或对应关系称为该两张图像的“相机相对位姿”。

上述示例的图像f1和图像f2,如果待定位的是图像f1的相机绝对位姿,图像f2的相机绝对位姿是已知,两张图像之间的相机绝对位姿也已知,那么就可以根据该两张图像之间的相机绝对位姿和图像f2的相机绝对位姿,确定得到图像f1的相机绝对位姿。这可以称为一种“相对定位”的定位方式。本公开的相机定位方法,即要确定某一图像的相机绝对位姿,而且是按照上述的相对定位方式进行定位。由上述也可以看到,准确的得到两张图像之间的“相机相对位姿”,对相机定位尤为重要。

图1示出了本公开至少一个实施例提供的一种相机定位方法的流程图,如图1所示,该方法可以包括如下处理:

在步骤100中,在图像数据库中检索得到查询图像的初始配对图像;所述图像数据库中的图像对应的相机绝对位姿已知。

本步骤中,所述的图像数据库中包括预定地理区域的多张图像。例如,该预定地理区域可以是根据实际业务产品的需要确定的区域,比如,在机器人导航的场景中,该预定地理区域可以是预定的机器人导航区域;又比如,在自动驾驶场景中,该预定地理区域可以是预定的智能驾驶定位区域;在其他的场景中,还可以是地图导航区域等其他区域。所述的图像数据库中的多张图像是在上述预定地理区域采集的。

该图像数据库的构建,可以有多种方式。示例性的,可以通过设置有采集相机的采集智能终端在预定地理区域采集多张图像,并确定该采集的各图像分别对应的相机绝对位姿;根据采集的所述多张图像及其相机绝对位姿,构建该预定地理区域对应的图像数据库。或者还可以是,由已知地理数据库中选取预定地理区域对应的图像构建该图像数据库,并且各图像的相机绝对位姿是已知。

本步骤中,所述查询图像即待进行相机定位的图像。上述获取的图像数据库可以用于检索获得查询图像的初始配对图像,以用于后续步骤根据该初始配对图像和查询图像继续处理进行定位。

实际使用时,针对某个地理区域,可以预先建立该地理区域对应的图像数据库,并确定每张图像的相机绝对位姿是已知。这样,当车辆或机器人或其他类型设备上设置的相机在该区域内采集到图像,该图像就可以作为查询图像,并基于该查询图像来检索图像数据库获得配对图像,进而确定查询图像的相机绝对位姿。后续步骤将继续描述如何根据检索到的初始配对图像记性相机定位。

在步骤102中,获取所述初始配对图像与查询图像的预测相机相对位姿;根据所述预测相机相对位姿,确定所述查询图像的相机估计位姿。

本步骤中,可以预测初始配对图像与查询图像这一图像对的相机绝对位姿,可以称为预测相机相对位姿。在确定该预测相机相对位姿后,其中,初始配对图像的相机绝对位姿是已知,则根据初始配对图像的相机绝对位姿以及所述预测相机相对位姿,可以得到查询图像的相机估计位姿。该相机估计位姿相当于一个估计的查询图像绝对位姿。

在步骤104中,根据所述查询图像的相机估计位姿,由所述图像数据库检索得到所述查询图像的新配对图像;

本步骤中,重新由图像数据库中检索用于与查询图像配对的图像。由于本次检索是根据步骤102中得到的查询图像的相机估计位姿检索,使得该检索到的新配对图像在相机绝对位姿上将与查询图像更为接近。

在步骤106中,预测所述新配对图像和查询图像的相机相对位姿。

本步骤中,可以预测新配对图像和查询图像两者之间的相机相对位姿。由于新配对图像和初始配对图像相比,新配对图像与查询图像的相机绝对位姿更为接近,所以新配对图像和查询图像两者之间预测的相机相对位姿也更准确。

在步骤108中,基于所述新配对图像和查询图像的相机相对位姿、以及所述新配对图像的相机绝对位姿,确定所述查询图像的相机绝对位姿。

其中,本公开实施例提供的相机定位流程相对于传统的相机定位流程,增加的部分包括:根据初始配对图像和查询图像获得预测相对位姿,并获取查询图像的估计位姿后重新检索新配对图像,基于新配对图像预测相对位姿。而传统方式在检索到初始配对图像之后,就直接根据初始配对图像和查询图像预测两者的相机绝对位姿,并根据相机绝对位姿计算查询图像的相机绝对位姿了。

也就是说,如果将“检索与查询图像配对的配对图像”的过程称为“检索阶段”,那么本公开的相机定位方法对该检索阶段进行了改进,采用了“两阶段检索法”,第一阶段是根据图像特征进行检索初始配对图像,第二阶段是根据估计位姿检索新配对图像。这种新的检索方式由于是基于估计位姿进行检索,检索到的新配对图像与查询图像的位姿更加接近,而位姿偏差较小的图像对用来做相机绝对位姿预测将更为准确,进而相机定位结果也更准确。

本实施例的相机定位方法,通过在获得初始配对图像之后,又根据该初始配对图像获得查询图像的估计位姿,并基于估计位姿进行检索,使得检索到的新配对图像与查询图像的位姿更加接近,而位姿偏差较小的图像对用来做相对位姿预测将更为准确,进而相机定位结果也更准确。

图1所示的相机定位方法,可以基于神经网络实现,神经网络的类型可包括但不限于卷积神经网络、循环神经网络或深度神经网络等。本公开可以提供一种相机定位神经网络,借助该神经网络执行上述的相机定位方法。

该相机定位神经网络的网络结构中可以包括:用于提取图像特征的结构部分、用于通过回归预测一个图像对的相机相对位姿的结构部分,等。例如,该相机定位神经网络可以包括:共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络。每种子网络可基于构建神经网络用的一个或多个网络子单元(如卷积层、非线性层、池化层等等)按照一定的方式堆叠连接而得。其中,共享子网络可以分别与所述粗检索子网络、细检索子网络和相对位姿回归子网络连接,该共享子网络属于粗检索子网络、细检索子网络和相对位姿回归子网络所共享的子网络。

该共享子网络可以对图像进行提取图像特征的处理,处理后的图像可以通过上述的粗检索子网络、细检索子网络和相对位姿回归子网络分别处理。比如,共享处理后的图像可以通过粗检索子网络得到图像的图像特征,以根据该图像特征检索初始配对图像。又比如,共享处理后的一个图像对(如,初始配对图像与查询图像)可以通过细检索子网络预测初始配对图像与查询图像之间的预测相对位姿;又比如,还可以将共享处理后的一个图像对(如新配对图像和查询图像)通过相对位姿回归子网络预测该图像对的相机相对位姿。其中,初始配对图像或者新配对图像在输入细检索子网络或者相对位姿回归子网络之前,都先经过共享子网络的提取图像特征的处理,得到共享处理后的对应图像。

上述的相机定位神经网络中不同的子网络部分都可以在网络训练阶段进行参数的训练调整,以得到较好的输出结果。

图2将示例一个相机定位神经网络的训练流程:

神经网络的训练需要说明的是,在实际实施中,神经网络的训练在如下处理之外,还可以包括其他网络部分的训练。

在步骤200中,获取用于训练所述神经网络的多组图像对,每一组图像对包括一个查询图像和一个配对图像。

本步骤中,可以准备一些用于训练神经网络的图像对,每一图像对中都包括两张图像。可以将其中一张图像称为“查询图像”(即待进行相机定位的图像),另一张称为“配对图像”。查询图像在训练过程中是固定不变的(也可以称为锚点图像),而配对图像在训练过程中可以变动,例如后续可以变更为新配对图像。

此外,用于与查询图像配对的配对图像、以及查询图像的相机绝对位姿都是已知的。该相机绝对位姿可以包括旋转r的三个自由度的位姿、以及平移t的三个自由度的位姿,共6个自由度的位姿。例如,可以将查询图像的相机绝对位姿表示为r1,t1,将配对图像的相机绝对位姿表示为r2、t2。

基于上述的查询图像和配对图像的相机绝对位姿,还可以得到这两张图像的相机绝对位姿,旋转和平移的相机绝对位姿分别表示为δq和δt。该获得的两张图像的相机绝对位姿可以称为相对位姿的标注信息,用于与后续步骤得打的相对位姿的预测信息结合,作为网络参数调整的依据。

在步骤202中,对于任一图像对,预测所述查询图像和配对图像之间的相机相对位姿。

例如,可以利用回归模型,将查询图像和配对图像的图像特征作为输入,通过回归输出两张图像之间的相机相对位姿。本步骤得到的预测相机相对位姿是查询图像和配对图像的相机绝对位姿的预测信息。

在步骤204中,基于所述相机相对位姿和配对图像的相机绝对位姿,确定所述查询图像的相机估计位姿。

在步骤206中,根据所述查询图像的相机估计位姿,检索所述查询图像的新配对图像,所述新配对图像与所述查询图像构成新图像对。

本步骤将根据相机估计位姿,重新检索用于与查询图像配对的新配对图像。这里的检索是基于位姿的检索,根据相机估计位姿去数据库中检索与该估计位姿最接近的一张图像,称为新配对图像。

在步骤208中,预测所述新图像对中的查询图像与新配对图像的相机相对位姿。本步骤中得到的相机绝对位姿是查询图像与新配对图像的相机绝对位姿的预测信息。

在步骤210中,基于所述相机绝对位姿的预测信息与标注信息之间的差异,调整网络参数。

本步骤中,可以基于查询图像与配对图像的预测相机相对位姿和标注信息、以及查询图像与新配对图像的相机绝对位姿的预测信息与标注信息,分别得到各自的相机绝对位姿的损失值,并根据该损失值调整网络参数。

例如,可以通过细检索子网络预测步骤202中的查询图像和配对图像的预测相机相对位姿,并基于所述预测相机相对位姿的预测信息与标注信息,得到相机绝对位姿的损失值,调整所述细检索子网络的网络参数。依据的损失函数如下:

其中,表示平移的相对位姿预测信息,表示旋转的相对位姿预测信息。δt表示平移的相对位姿标注信息,δq表示旋转的相对位姿标注信息。如上所述,标注信息可以是在步骤200中计算得到的,而预测信息可以是在步骤202中预测得到的。上述公式(1)使用的是l1范数。

又例如,可以通过位姿回归子网络预测步骤208中的查询图像与新配对图像的相机绝对位姿,并基于所述相机绝对位姿的预测信息与标注信息,得到相对位姿的损失值,调整所述位姿回归子网络的网络参数。依据的损失函数如下:

其中,表示平移的相对位姿预测信息(relativetranslation),表示旋转的相对位姿预测信息(relativerotation)。δ′t表示平移的相对位姿标注信息,δ′q表示旋转的相对位姿标注信息。如上所述,标注信息可以是在步骤200中计算得到的,而预测信息可以是在步骤208中预测得到的。上述公式(2)与公式(1)基本相同,区别只是在于位姿回归子网络和细检索子网络输入的图像对不同,细检索子网络输入的是查询图像和初始配对图像,位姿回归子网络输入的是查询图像和新配对图像,所以在相对位姿的符号表示上与公式(1)进行了区分。

本实施例的训练方法,通过在检索查询图像的配对图像时,是基于估计位姿进行检索,检索到的新配对图像与查询图像的位姿更加接近,而位姿偏差较小的图像对用来做相机绝对位姿预测将更为准确,进而相机定位结果也更准确。

进一步的,上述图2的流程训练得到了细检索子网络和位姿回归子网络,可以将这两个子网络与粗检索子网络结合,按照图1的流程进行相机定位,其中,粗检索子网络可以采用现有的“相对定位”方式中使用的网络获取查询图像的图像特征。可选的,还可以对粗检索子网络也进行改进,以使得粗检索子网络在输出检索用的图像特征时更加准确,初始配对图像的检索准确性也提高。

基于此,图3示例了另一种相机定位神经网络的训练方法,请参见图3,其中,该神经网络包括三个训练分支,如下:

icr(image-basedcoarseretrievalmodule)模块也称为粗检索子网络,用于基于图像特征检索得到初始配对图像。

pfr(pose-basedfineretrievalmodule)模块也称为细检索子网络,用于基于位姿检索得到新配对图像。

prp(preciserelativeposeregressionmodule)模块也称为位姿回归子网络,用于基于新配对图像和查询图像进行精准的相对位姿回归,得到新配对图像和查询图像的相机绝对位姿。

在本实施例的方法中,对icr模块、pfr模块和pfp模块都进行了训练,并且,还通过结合使用多种损失函数,使得icr模块的图像检索的准确性也得到提高。此外,在训练该神经网络时,是直接采用图像对进行训练,所以训练过程中的icr模块不需要再检索配对图像;并且,在训练阶段,icr和pfr模块是并行训练,而在网络应用过程中这两个模块是先后执行,比如先根据icr模块检索查询图像的初始配对图像,再通过pfr模块预测该初始配对图像和查询图像之间的相机相对位姿。

上述的icr模块和pfr模块是用于检索配对图像的检索部分,通过检索部分的检索,获取到用于与查询图像配对的配对图像,本公开提供的训练方法,将通过对icr模块和pfr模块的训练,使得在神经网络的实际应用阶段能够通过这些模块获取到更为准确的配对图像,使得配对图像和查询图像的位姿尽可能的接近,以提高相对位姿回归效果。prp模块将基于检索部分的检索结果,回归得到配对图像和查询图像之间的相机绝对位姿。

在该训练过程中,预先准备好用于训练的“图像对”,并且icr处理后不需要检索。每一个图像对中都包括两张图像,其中的每张图像都标注旋转和平移两方面的相机绝对位姿。此外,本实施例中对于icr模块的训练采用了视角重合损失、角度偏移损失和难样本挖掘损失。因此,还计算了每个图像对的视角重合度标注信息、角度偏移标注信息。该视角重合度和角度偏移的预测信息后续可以通过icr模块直接预测得到。

其中,视角重合度的标注信息可以按照如下方式计算:

相机内参为k,图像对中的两张图像的像素坐标分别为x1和x2,这两张图像的深度信息为d1和d2。

其中,f是相机的焦距,(px,py)是相机中心点的坐标。

对于图像对中的两张图像,如果将第一张图像的像素先投影到三维空间中,再投影到第二张图像中,那么,第一张图像中的某像素在经过上述投影后在第二张图像中的对应像素位置可以表示如下:

计算第一张图像的像素经过投影后落在了第二张图像的像素范围内的比例,即可以称为视角重合度d。当使用视角重合损失训练icr模块时,上述的任一图像对中的两张图像都存在视角重合。

本实施例中,对于任一图像对,如果将该图像对中的两张图像的其中一张称为“第一张图像”,另一张称为“第二张图像”。计算的标注信息包括:第一张图像投影到第二张图像的视角重合度,表示为d1;还包括:第二张图像投影到第一张图像的视角重合度,表示为d2。

图4示例了两张图像的视角重合度,其中,图4中的最上面一行表示四组图像对,每一组图像对包括两张图像,且该两张图像的视角重合度的数值分别是0.76、0.22、0.12和0.42,该数值是一张图像投影到另一张图像时,像素落在该另一张图像范围内的比例。该比例也是图4中示意的两个视锥之间的重合度。

角度偏移的标注信息可以按照如下方式计算:

对于任一图像对,其中的两张图像对应着两个相机位姿,这两个相机位姿的相对角度偏移可以按照如下公式计算:

准备好用于训练的图像对以及上述标注信息之后,结合图3说明该神经网络的训练过程:

其中,图3中的anchorimage可以称为训练时的查询图像,该查询图像是在训练过程中固定不变的图像,而配对图像是变化的,比如由初始配对图像更新为新配对图像。targetimages(coarse)是初始确定的用于与查询图像配对的图像,也可以暂且称为初始配对图像。每一张查询图像可以具有多张初始配对图像。此外,sharedencoder是三个训练分支的共享编码模块,对于要输入该三个训练分支的图像,都采用该相同的encoder模块进行处理,所以图3中示出的三个sharedencoder可以认为具有相同的网络参数。

如图3所示,对于查询图像以及对应的多张初始配对图像,都经过sharedencoder模块的处理后,均输入icr模块和pfr模块。需要注意的是,该查询图像和每一初始配对图像组成的图像对,既输入icr模块,也输入pfr模块,也就是说,icr模块和pfr模块的输入是相同的,都是查询图像以及初始配对图像组成的图像对,并且,图像对的数量可以是满足训练要求的多组。

icr模块和pfr模块是并行训练的两个训练分支,如下我们分别说明这两个模块的训练:

对于icr模块,本实施例以三个损失函数训练,包括:视角重合损失函数、角度偏移损失函数和难样本挖掘损失函数。icr模块在训练阶段包括两部分,一部分是解码网络部分icrdecoder,另一部分是回归网络部分regressor。其中的解码网络部分仍然是对图像进行特征提取,得到用于检索用的图像特征,当然训练阶段icr模块不涉及检索。需要说明的是,icr模块在训练阶段包括上述两个部分icrdecoder(可以称为解码网络部分)和regressor(可以称为回归网络部分),但是在训练完成后的神经网络的实际应用阶段,icr模块可以只包括icrdecoder。回归网络部分regressor在该训练阶段用于根据图像特征直接预测得到损失函数计算所需要的图像关系参数:视角重合度的预测信息、以及相对角度偏移的预测信息。而难样本挖掘损失函数的损失值的计算,是根据icrdecoder输出的图像特征计算即可,可以不经过回归网络部分regressor的处理,该难样本挖掘损失函数的损失值也可以称为图像关系参数。

例如,查询图像和初始配对图像组成的图像对都经过解码网络部分的处理后,可以分别得到查询图像的图像特征、以及初始配对图像的图像特征。将该查询图像的图像特征和初始配对图像的图像特征进行拼接(concat)后,输入回归网络部分regressor。该icr模块的回归网络部分可以输出视角重合度的预测信息和相对角度偏移的预测信息。并根据该预测信息和之前获得的标注信息,计算损失值:

其中,公式(7)是采用l2范数计算视角重合度损失,d1是第一张图像投影到第二张图像的视角重合度的标注信息,d2是第二张图像投影到第一张图像的视角重合度的标注信息。是第一张图像投影到第二张图像的视角重合度的预测信息,是第二张图像投影到第一张图像的视角重合度的预测信息。

其中,公式(8)是采用l2范数计算角度偏移损失,α是图像对中两张图像之间的相对角度偏移的标注信息,是图像对中两张图像之间的相对角度偏移的预测信息。

如上,对于输入icr模块的多组图像对,每一组图像对都可以计算出两张图像的角度偏移损失以及视角重合度损失。其中,上述通过回归网络部分预测得到的视角重合度的预测信息和角度偏移(也可以叫相对角度偏移量)的预测信息可以称为两张图像的图像关系参数。

对于难样本挖掘损失的计算,可以是将用于训练的多组图像对进行分组。分组可以是按照回归相对位姿的难易程度进行分组,例如,如果一组图像对中的两张图像的视角重合度越高,就越容易进行相机绝对位姿回归,这里的越容易指的是相对位姿回归的准确度就更高;如果两张图像的相机绝对位姿的相差程度越小,越容易进行相对位姿回归。根据上述准则,可以将上述用于训练的多组图像对分成easy、moderate和hard三组,其中的easy组的图像对能够更容易的进行相对位姿回归,这些图像对的视角重合度更高,绝对位姿的相差程度更小;其他两组的相对位姿回归会越来越难。

请继续参见图3所示,每一组图像对的两张图像经过icrdecoder的处理后,可以得到每张图像的图像特征。在上述的分成easy、moderate和hard三组的基础上,还可以将训练集的图像对分成多个batch,每个batch设定包括n张查询图像,那么,对于其中的每一张查询图像,可以由上述easy、moderate和hard三组中分别随机抽取一张该查询图像的初始配对图像。比如,以其中一张查询图像p为例,p-p1是一组图像对,并且,该图像对“p-p1”位于easy组中;p-p2是另一组图像对,该图像对“p-p2”位于moderate组中;p-p3是又一组图像对,该图像对“p-p3”位于hard组中;该p1、p2、p3是对应同一查询图像p的三张初始配对图像。而上述的p-p1、p-p2、p-p3图像对都属于同一batch;batch中的其他查询图像也按照上述相同的方式抽取不同分组中的初始配对图像。这种batch的抽样组建方式可以称为“batchhardsampling”。可选的,easy、moderate和hard三组的划分可以是在初始构建训练集时执行,而这里的“batchhardsampling”形成batch也可以是在图像对经过icrdecoder后执行。

基于上述组建的batch,可以计算难样本挖掘损失,该难样本挖掘损失用于表示不同分组中的任意图像特征距离之间的关系:

如上公式(9),ltriplet是难样本挖掘损失,分别代表第i个anchor图像和其对应的easy,moderate,hard图像的图像特征,该图像特征就是图3中的icrdecoder得到的图像特征。其中,β是图像特征距离的阈值,(z)+=max(z,0)是一个最大化函数(maximumfunction)。

在依据该难样本挖掘损失调整icr模块的网络参数时,调整的目的是希望任意两个easy的图像对比moderate图像对的距离近,任意moderate图像对比hard图像对的距离近。这种分别获取不同分组(easy、moderate、hard)中各图像对的图像特征距离,并根据该不同分组中各图像对的图像特征距离得到难样本挖掘损失的预测值,该难样本挖掘损失表示也可以称为获取查询图像和配对图像间的图像关系参数,这种图像关系参数是一种图像对中图像特征距离之间的关系的考量,例如,easy的图像对比moderate图像对的距离近。依据公式(9)的含义,在模型训练完成时,上述的难样本挖掘损失值ltriplet是0,在模型的训练过程中,可以通过调整网络参数,使得该难样本挖掘损失值趋近于0。

如上,本实施例中,粗检索子网络(icr模块)使用了三种损失函数,视角重合度损失函数、角度偏移损失函数和难样本挖掘损失函数。实际实施中,icr模块可以使用更多类型的损失函数,也可以使用更少数量的损失函数,不局限于这三种损失。例如,可以只计算视角重合度损失用于调整icr网络参数,或者,也可以计算视角重合度损失和角度偏移损失。不再详举。

再接着看pfr模块的损失函数的计算:请参见图3,用于训练的多组图像对在pfr模块可以不用进行easy、hard等不同分组的划分,直接通过pfrdecoder的处理后,得到图像对两张图像的图像特征。对于任一图像对,将该图像对中两张图像的图像特征进行拼接(concat)后,输入pfr网络的回归网络部分regressor,就可以直接输出对于该图像对中两张图像的相机绝对位姿的预测信息。该相机绝对位姿的预测信息包括平移的相对位姿预测信息和旋转的相对位姿预测信息标注信息已经在前述的步骤200中计算得到,根据公式(1)计算pfr模块的相对位姿的损失值即可。

请继续参见图3,pfr模块预测输出的相对位姿预测信息可以用于对targetimages(coarse)进行更新,即更新查询图像的配对图像。例如,可以根据pfr模块预测到的相机绝对位姿以及图像对中初始配对图像的相机绝对位姿,得到查询图像的估计位姿。基于该估计位姿,可以由数据库中检索与该估计位姿最接近的图像,作为查询图像的新配对图像。需要说明的是,“数据库”中可以包括数量众多的很多图像,在训练前获取的多组图像对,可以是随机的由该数据库中选择一些图像与查询图像进行配对,从而组成图像对用于icr和pfr模块的训练。而此处在pfr模块预测出相机绝对位姿后进行重新检索(pose-basedretrieval),由上述数据库中检索一些新的图像用于与查询图像配对,这些新配对图像与之前的初始配对图像可以是不同的。

新配对图像(targetimages(fine))是基于位姿检索得到,相比于初始配对图像(targetimages(coarse)),与查询图像做相对位姿回归将更加准确。请继续参见图3,新配对图像与查询图像的图像对输入prp模块,经过prpdecoder的处理后得到图像对中每张图像的图像特征,将一对图像对的图像特征拼接(concat)后,经过prp模块的回归regressor,直接预测输出查询图像和新配对图像的相机绝对位姿,包括平移的相机绝对位姿和旋转的相机绝对位姿。再根据公式(2)计算相对位姿的损失值即可。

如上详细说明了icr、pfr和pfp三个网络分支的损失函数的计算以及各自的网络结构,其中可以看到,该三个分支网络具有共享的编码器模块sharedencoder,而各分支网络的网络参数要各自调整。在调整参数时,可以是根据上述的视角重合度损失、角度偏移损失、难样本挖掘损失、相对位姿损失进行网络参数的调整,如下,定义整体的损失函数为:

l=lfrustum+langle+ltriplet+lpfr+lprp......(10)

在训练过程中可以经过多次迭代和参数调整,直至上述的各种损失值达到预定的数值范围或者达到预设的迭代次数时,结束训练。

应用相机定位神经网络进行相机定位

训练完成的神经网络中,icr模块中包括icrdecoder,而不再包括图3中所示的回归网络部分。将训练完成的神经网络应用于相机定位时,其流程原理可以结合参见图1的示意。

此外,在应用该神经网络之前,可以使用训练完成的网络中的sharedencoder和icrdecoder对数据库中的每张图像提取图像特征。在该数据库中,每张图像都可以标注其相机绝对位姿以及上述提取的图像特征,该图像特征用于检索使用。

图5为本公开提供的一种相机定位方法的流程图,如图5所示,该方法可以包括:

在步骤500中,接收一个待进行相机定位的查询图像。

本步骤中,所述的查询图像可以是待进行相机定位的图像。

在步骤502中,根据所述查询图像的图像特征,检索得到所述查询图像的初始配对图像。

本步骤中,将查询图像经过encoder-decoder的编解码处理后,得到图像特征。根据该图像特征由数据库中检索得到初始配对图像,该初始配对图像与查询图像组成图像对。

在步骤504中,基于所述初始配对图像与查询图像的预测相对位姿,得到所述查询图像的相机估计位姿。

本步骤中,将初始配对图像和查询图像组成的图像对输入pfr模块,预测得到这两张图像的相机绝对位姿。并且,根据该预测的相机绝对位姿以及初始配对图像的相机绝对位姿,得到查询图像的相机估计位姿。

在步骤506中,根据所述查询图像的相机估计位姿,检索得到所述查询图像的新配对图像。

本步骤中,根据相机估计位姿由数据库中检索得到新配对图像,该新配对图像与查询图像组成新图像对。

在步骤508中,预测所述新配对图像和查询图像的相机相对位姿。

本步骤可以由pfp模块根据上述的新图像对,预测得到新配对图像和查询图像的相机相对位姿。

在步骤510中,基于所述新配对图像和查询图像的相机相对位姿、以及所述新配对图像的相机绝对位姿,得到所述查询图像的相机绝对位姿。

本实施例的相机定位方法,通过在基于图像特征检索配对图像之后,又执行根据预测的相对位姿估计查询图像的位姿,进行一次基于位姿的检索,更新后的新图像对中的两张图像具有更加接近的位姿,从而相对位姿回归的效果更好,查询图像的相机定位结果也更准确。

图6示例了采用本公开提供的相机定位方法得到定位结果的效果对比,如图6所示,其中的绿线表示真实的相机轨迹,而红线是模型预测得到的预测相机轨迹。通过posenet、mapnet++等不同的模型进行相机定位,可以发现本公开的方法(ours)得到的相机轨迹与真实轨迹最为贴近,即本公开方法的相机定位效果更好,定位结果更准确。

本公开训练得到的用于相机定位的神经网络,可以应用于多种场景,例如,地图导航、自动驾驶系统中的定位或者机器人导航等,不论何种场景,都是可以根据相机拍摄的图像进行相机定位,从而实现对相机所在的设备的定位。

图7是本公开提供的一种相机定位装置的示意图,该装置可以包括:初始检索模块71、初始预测模块72、重新检索模块73、重新预测模块74和定位确定模块75。

初始检索模块71,用于在图像数据库中检索得到查询图像的初始配对图像;所述图像数据库中的图像对应的相机绝对位姿已知;

初始预测模块72,用于获取所述初始配对图像与查询图像的预测相机相对位姿;根据所述预测相机相对位姿,确定所述查询图像的相机估计位姿;

重新检索模块73,用于根据所述查询图像的相机估计位姿,由所述图像数据库检索得到所述查询图像的新配对图像;

重新预测模块74,用于预测所述新配对图像和查询图像的相机相对位姿;

定位确定模块75,用于基于所述新配对图像和查询图像的相机相对位姿、以及所述新配对图像的相机绝对位姿,确定所述查询图像的相机绝对位姿。

在一个例子中,如图8所示,该装置还可以包括:第一图像获取模块76,用于在图像数据库中检索得到查询图像的初始配对图像之前,获取已知地理数据库,所述已知地理数据库包括相机绝对位姿已知的多张图像;由所述已知地理数据库中选取预定地理区域对应的图像,构建所述图像数据库。

在一个例子中,该装置还可以包括:第二图像获取模块77,用于在图像数据库中检索得到查询图像的初始配对图像之前,通过设置有采集相机的采集智能终端,在预定地理区域采集多张图像;确定采集的各图像分别对应的相机绝对位姿;根据采集的所述多张图像及其相机绝对位姿,构建所述预定地理区域对应的图像数据库。

在一个例子中,所述图像数据库的各图像对应的预定地理区域,是如下任一类型的区域:地图导航区域、智能驾驶定位区域或机器人导航区域。

在一个例子中,所述初始检索模块71,具体用于:接收待进行相机定位的所述查询图像;提取所述查询图像的图像特征;根据所述查询图像的图像特征,由所述图像数据库中检索得到所述查询图像的初始配对图像。

在一个例子中,所述相机定位装置包括相机定位神经网络;所述相机定位神经网络包括:共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络;所述共享子网络分别与所述粗检索子网络、细检索子网络和相对位姿回归子网络连接;

所述共享子网络,用于对所述查询图像、所述初始配对图像和所述新配对图像,分别进行提取图像特征的处理,分别得到共享处理后的图像;

所述初始检索模块71,在用于检索得到查询图像的初始配对图像之前,还用于:对共享处理后的所述查询图像经过粗检索子网络的处理,得到所述查询图像的图像特征,以根据所述图像特征检索所述初始配对图像;

所述初始预测模块72,在用于获取所述初始配对图像与查询图像的预测相机相对位姿时,包括:对共享处理后的所述初始配对图像和查询图像经过所述细检索子网络的处理,由所述细检索子网络输出两者的预测相机相对位姿;

所述重新预测模块73,在用于预测所述新配对图像和查询图像的相机相对位姿时,包括:对共享处理后的所述新配对图像和所述查询图像经过所述相对位姿回归子网络的处理,由所述相对位姿回归子网络输出两者的相机相对位姿。

在一个例子中,所述相对位姿回归子网络包括解码网络部分和回归网络部分;所述重新预测模块73,具体用于:对所述共享处理后的新配对图像与查询图像的图像对,输入所述相对位姿回归子网络,经过所述相对位姿回归子网络中的解码网络部分的处理后,得到图像对中每张图像的图像特征;将所述新配对图像与查询图像的图像特征拼接,得到拼接特征;所述拼接特征经过所述相对位姿回归子网络的回归网络部分的处理后,输出预测的查询图像和新配对图像的相机相对位姿。

在一个例子中,所述细检索子网络包括解码网络部分和回归网络部分;所述初始预测模块72,具体用于:对所述共享处理后的初始配对图像与查询图像的图像对,输入所述细检索子网络,经过所述细检索子网络中的解码网络部分的处理后,得到图像对中每张图像的图像特征;将所述初始配对图像与查询图像的图像特征拼接,得到拼接特征;所述拼接特征经过细检索子网络的回归网络部分的处理后,输出预测的查询图像和初始配对图像的相机相对位姿。

在一个例子中,所述初始检索模块71,还用于:在所述共享处理后的所述查询图像经过粗检索子网络的处理,得到所述查询图像的图像特征之前,使用预训练的相机定位神经网络中的共享子网络和粗检索子网络,对所述图像数据库中的每张图像提取图像特征;对所述每张图像标注所述图像特征,以使得根据所述图像特征进行图像检索。

在一个例子中,所述在图像数据库中检索得到所述查询图像的初始配对图像,包括:检索得到所述查询图像的多个初始配对图像,以根据所述多个初始配对图像得到多个所述新配对图像;

所述定位确定模块75,具体用于:分别根据所述多个新配对图像的每一张新配对图像得到查询图像的相机绝对位姿,并根据多个所述相机绝对位姿得到所述查询图像的相机绝对位姿。

图9提供一种相机定位神经网络的训练装置,如图9所示,该装置可以包括:图像获得模块91、相对预测模块92、估计位姿模块93、新图像模块94、位姿预测模块95和参数调整模块96。

图像获得模块91,用于获取多组图像对,每一组图像对包括一个查询图像和一个配对图像,且所述配对图像和查询图像分别具有对应的相机绝对位姿,所述图像对还具有相对位姿的标注信息;

相对预测模块92,用于通过相机定位神经网络对于任一图像对,预测所述查询图像和配对图像之间的相机相对位姿;

估计位姿模块93,用于基于所述相对位姿和配对图像的相机绝对位姿,确定所述查询图像的相机估计位姿;

新图像模块94,用于根据所述查询图像的相机估计位姿,由图像数据库中检索所述查询图像的新配对图像,所述新配对图像与查询图像构成新图像对;

位姿预测模块95,用于通过相机定位神经网络预测所述新图像对中的查询图像与新配对图像的相机相对位姿;

参数调整模块96,用于基于所述相机相对位姿的预测信息与标注信息之间的差异,调整所述相机定位神经网络的网络参数。

在一个例子中,如图10所示,相机定位神经网络包括:共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络;所述共享子网络分别与所述粗检索子网络、细检索子网络和相对位姿回归子网络连接;所述共享子网络,用于对所述查询图像、所述初始配对图像和所述新配对图像,均先经过所述共享子网络进行提取图像特征的处理,分别得到共享处理后的图像;所述装置还包括:初始检索模块97,用于对共享处理后的所述查询图像和配对图像经过粗检索子网络的处理,得到所述查询图像和配对图像之间的图像关系参数;所述相对预测模块92,具体用于:对共享处理后的所述配对图像和查询图像经过细检索子网络的处理,由所述细检索子网络输出两者的相对位姿预测信息;所述位姿预测模块95,具体用于:共享处理后的所述新配对图像和所述查询图像经过所述相对位姿回归子网络的处理,由所述相对位姿回归子网络输出两者的相对位姿预测信息;所述参数调整模块96,在用于调整所述相机定位神经网络的网络参数时,包括:根据所述图像关系参数的预测信息和标注信息的差异、所述细检索子网络输出的相对位姿预测信息和标注信息的差异、以及所述相对位姿回归子网络输出的相对位姿预测信息和标注信息的差异,调整所述共享子网络、粗检索子网络、细检索子网络和相对位姿回归子网络的网络参数。

在一个例子中,所述初始检索模块97,在用于得到所述查询图像和配对图像之间的图像关系参数时,包括:根据一组图像对中的查询图像和配对图像的旋转位姿,确定预测的所述查询图像和配对图像的相机位姿的相对角度偏移量作为所述图像关系参数。

在一个例子中,所述初始检索模块97,在用于得到所述查询图像和配对图像之间的图像关系参数时,包括:将同一查询图像对应的多个图像对按照回归相对位姿的难易程度进行分组;分别获取不同分组中各图像对的图像特征距离;根据所述图像特征距离,得到难样本挖掘损失的预测值,所述难样本挖掘损失用于表示不同分组中的任意图像特征距离之间的关系。

本公开实施例还提供了一种电子设备,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开实施例任一所述的相机定位方法,或者实现本公开实施例任一所述的相机定位神经网络的训练方法。

本领域技术人员应明白,本公开一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本公开一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开实施例还提供一种计算机可读存储介质,该存储介质上可以存储有计算机程序,所述程序被处理器执行时实现本公开实施例任一所述的相机定位方法,或者实现本公开实施例任一所述的相机定位神经网络的训练方法。

本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本公开中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本公开中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本公开中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。

本公开中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如fpg多(现场可编程门阵列)或多sic(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。

适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pd多)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cdrom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。

虽然本公开包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本公开内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

以上所述仅为本公开一个或多个实施例的较佳实施例而已,并不用以限制本公开一个或多个实施例,凡在本公开一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开一个或多个实施例保护的范围之内。

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