掌桥专利:专业的专利平台
掌桥专利
首页

三维点云投影位姿求解器训练方法、确定方法及装置

文献发布时间:2024-04-18 20:01:55


三维点云投影位姿求解器训练方法、确定方法及装置

技术领域

本发明涉及计算机视觉技术领域,尤其涉及一种三维点云投影位姿求解器训练方法、确定方法及装置。

背景技术

自动驾驶、特定三维模型可视化、影视动画、3D渲染、感知环境三维信息变化的多功能传感器(如富能传感器)等应用领域均有点云注册的急迫需求。

在实现本发明构思的过程中,发明人发现相关技术中至少存在如下问题:传统点云注册方法需要较多点云数据,计算难度大,难以实现快速配准,局限性大,难以大规模应用。

在实现本发明构思的过程中,发明人发现相关技术中至少存在如下问题:传统点云注册方法需要较多点云数据,计算难度大,难以实现快速配准,局限性大,难以大规模应用。

发明内容

鉴于上述问题,本发明提供了一种三维点云投影位姿求解器训练方法、确定方法及装置。

根据本发明的第一个方面,提供了一种三维点云投影位姿求解器训练方法,包括:

获取多个位姿映射关系样本,其中,每个上述位姿映射关系样本包括第一目标图像的二维拍摄位姿和与上述第一目标图像对应的目标第一三维点云投影位姿,上述第一目标图像是利用二维拍摄位姿采集目标场景的信息得到的,上述目标第一三维点云投影位姿是与上述关于目标场景的三维点云数据对上述第一目标图像进行投影得到的;

针对上述多个位姿映射关系样本中的每个位姿映射关系,将上述位姿映射关系包括的第一目标图像的二维拍摄位姿作为输入,上述位姿映射关系包括的与上述第一目标图像对应的目标第一三维点云投影位姿作为标签,对上述三维点云投影位姿求解器进行训练;

在上述三维点云投影位姿求解器输出的预测三维点云投影位姿与上述目标第一三维点云投影位姿之间的偏差满足预设条件的情况下,将当前训练得到的上述三维点云投影位姿求解器作为目标三维点云投影位姿求解器。

本发明的第二方面提供了一种三维点云投影位姿确定方法,包括:

将第三目标图像的二维拍摄位姿输入目标三维点云投影位姿求解器中,得到与上述第三目标图像对应的目标三维点云投影位姿,其中,上述第三目标图像是利用二维拍摄位姿采集得到的,上述目标三维点云投影位姿求解器是根据上述的训练方法得到的。

本发明的第三方面提供了一种三维点云投影位姿求解器训练装置,包括:

获取模块,用于获取多个位姿映射关系样本,其中,每个上述位姿映射关系样本包括第一目标图像的二维拍摄位姿和与上述第一目标图像对应的目标第一三维点云投影位姿,上述第一目标图像是利用二维拍摄位姿采集目标场景的信息得到的,上述目标第一三维点云投影位姿是与关于目标场景的三维点云数据对上述第一目标图像进行投影得到的;

训练模块,用于针对上述多个位姿映射关系样本中的每个位姿映射关系,将上述位姿映射关系包括的第一目标图像的二维拍摄位姿作为输入,上述位姿映射关系包括的与上述第一目标图像对应的目标第一三维点云投影位姿作为标签,对上述三维点云投影位姿求解器进行训练;

目标三维点云投影位姿求解器得到模块,用于在上述三维点云投影位姿求解器输出的预测三维点云投影位姿与上述目标第一三维点云投影位姿之间的偏差满足预设条件的情况下,将当前训练得到的上述三维点云投影位姿求解器作为目标三维点云投影位姿求解器。

本发明的第四方面提供了一种三维点云投影位姿确定装置,包括:

得到模块,将第三目标图像的二维拍摄位姿输入目标三维点云投影位姿求解器中,得到与上述第三目标图像对应的目标三维点云投影位姿,其中,上述第三目标图像是利用二维拍摄位姿采集得到的,上述目标三维点云投影位姿求解器是根据上述的训练方法得到的。

本发明的第五方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法。

本发明的第六方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法。

本发明的第七方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法。

根据本发明的实施例 ,由于目标三维点云投影位姿求解器,是通过针对多个位姿映射关系样本中的每个位姿映射关系,将位姿映射关系包括的第一目标图像的二维拍摄位姿作为输入,位姿映射关系包括的与第一目标图像对应的目标第一三维点云投影位姿作为标签,对三维点云投影位姿求解器进行训练得到的,因此,在利用采集第一目标图像的的第一传感器,对目标场景再次采集二维图像后,可以将再次采集的二维图像输入目标三维点云投影位姿求解器中,在不需要对三维点云数据进行处理的情况下,简单、精准、快速的得到与再次采集的二维图像对应的目标三维点云投影位姿。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述内容以及其他目的、特征和优点将更为清楚,在附图中:

图1示出了根据本发明实施例的三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法的应用场景图;

图2示出了根据本发明实施例的三维点云投影位姿求解器训练方法的流程图;

图3示出了根据本发明实施例的获取多个位姿映射关系样本的流程图;

图4示出了将关于目标场景的三维点云数据向第一目标图像进行投影的过程的示意图;

图5示出了根据本发明实施例的三维点云投影位姿确定方法的流程图;

图6示出了根据本发明实施例的三维点云投影位姿求解器训练装置的结构框图;

图7示出了根据本发明实施例的三维点云投影位姿确定装置的结构框图;

图8示出了根据本发明实施例的适于实现三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法的电子设备的方框图。

具体实施方式

以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

点云注册是三维计算机视觉和摄影测量的一个基本问题。在得到不同坐标系下的几组三维点云数据的情况下,注册的目的是找到使所有的三维点云数据最好地对齐到一个共同的坐标系中的投影位姿变换。例如,点云注册可以为:将关于目标场景的三维点云数据投影到利用二维拍摄位姿采集目标场景的信息得到的第一目标图像所在的坐标系中,其中,关于目标场景的三维点云数据所在的坐标系和第一目标图像所在的坐标系不同。

相关技术中,传统点云注册方法需要较多点云数据,计算难度大,难以实现快速配准,局限性大,难以大规模应用。

为了至少部分地解决相关技术中存在的技术问题,本发明的实施例提供了一种三维点云投影位姿求解器训练方法、确定方法及装置,可以应用于计算机视觉技术领域。

本发明的实施例提供了一种三维点云投影位姿求解器训练方法,包括:获取多个位姿映射关系样本,其中,每个位姿映射关系样本包括第一目标图像的二维拍摄位姿和与第一目标图像对应的目标第一三维点云投影位姿,第一目标图像是利用二维拍摄位姿采集目标场景的信息得到的,目标第一三维点云投影位姿是与关于目标场景的三维点云数据对第一目标图像进行投影得到的;针对多个位姿映射关系样本中的每个位姿映射关系,将位姿映射关系包括的第一目标图像的二维拍摄位姿作为输入,位姿映射关系包括的与第一目标图像对应的目标第一三维点云投影位姿作为标签,对三维点云投影位姿求解器进行训练;在三维点云投影位姿求解器输出的预测三维点云投影位姿与目标第一三维点云投影位姿之间的偏差满足预设条件的情况下,将当前训练得到的三维点云投影位姿求解器作为目标三维点云投影位姿求解器。

图1示出了根据本发明实施例的三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法的应用场景图。

如图1所示,根据该实施例的应用场景可以包括第一终端设备101、第二终端设备102、第三终端设备103、网络104和服务器105。网络104用以在第一终端设备101、第二终端设备102、第三终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用第一终端设备101、第二终端设备102、第三终端设备103中的至少一个通过网络104与服务器105交互,以接收或发送消息等。第一终端设备101、第二终端设备102、第三终端设备103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

第一终端设备101、第二终端设备102、第三终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对用户利用第一终端设备101、第二终端设备102、第三终端设备103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。

需要说明的是,本发明实施例所提供的三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法一般可以由服务器105执行。相应地,本发明实施例所提供的三维点云投影位姿求解器训练装置和三维点云投影位姿确定装置一般可以设置于服务器105中。本发明实施例所提供的三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法也可以由不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群执行。相应地,本发明实施例所提供的三维点云投影位姿求解器训练装置和三维点云投影位姿确定装置也可以设置于不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

以下将基于图1描述的场景,通过图2~图5对公开实施例的三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法进行详细描述。

图2示出了根据本发明实施例的三维点云投影位姿求解器训练方法的流程图。

如图2所示,该实施例的三维点云投影位姿求解器训练方法包括操作S210~操作S230。

在操作S210,获取多个位姿映射关系样本,其中,每个位姿映射关系样本包括第一目标图像的二维拍摄位姿和与第一目标图像对应的目标第一三维点云投影位姿,第一目标图像是利用二维拍摄位姿采集目标场景的信息得到的,目标第一三维点云投影位姿是与关于目标场景的三维点云数据对第一目标图像进行投影得到的。

根据本发明的实施例,多个位姿映射关系中包括与多个第一目标图像对应的多个二维拍摄位姿和与多个第一目标图像对应的多个目标第一三维点云投影位姿,且多个二维拍摄位姿和多个目标第一三维点云投影位姿一一对应。

根据本发明的实施例,第一目标图像为二维图像。与多个第一目标图像对应的二维拍摄位姿各不相同。

根据本发明的实施例,多个位姿映射关系样本的数量可以根据实际情况进行选择,在此不作限定。例如,多个位姿映射关系样本的数量可以为100、1000或10000等。

根据本发明的实施例,第一目标图像和关于目标场景的三维点云数据来自不同的传感器。

例如,第一目标图像可以利用第一传感器对目标场景进行采集得到。关于目标场景的三维点云数据可以利用第二传感器对目标场景进行多次采集得到。第一传感器和第二传感器可以均为多功能传感器。例如,可以均为富能传感器。

在操作S220,针对多个位姿映射关系样本中的每个位姿映射关系,将位姿映射关系包括的第一目标图像的二维拍摄位姿作为输入,位姿映射关系包括的与第一目标图像对应的目标第一三维点云投影位姿作为标签,对三维点云投影位姿求解器进行训练。

根据本发明的实施例,可以通过循环执行以下操作,实现对三维点云投影位姿求解器的训练:可以针对多个位姿映射关系样本中的第i位姿映射关系,将第i位姿映射关系包括的第一目标图像的二维拍摄位姿输入三维点云投影位姿求解器中,根据三维点云投影位姿求解器输出的预测三维点云投影位姿和第i位姿映射关系中的与第一目标图像对应的目标第一三维点云投影位姿之间的关联关系,对三维点云投影位姿求解器的参数进行更新,并递增i,其中,i为大于等于1的整数。

根据本发明的实施例,可以利用多个位姿映射关系样本对三维点云投影位姿求解器训练一轮,也可以训练多轮。

在操作S230,在三维点云投影位姿求解器输出的预测三维点云投影位姿与目标第一三维点云投影位姿之间的偏差满足预设条件的情况下,将当前训练得到的三维点云投影位姿求解器作为目标三维点云投影位姿求解器。

根据本发明的实施例,可以通过计算预测三维点云投影位姿与目标第一三维点云投影位姿中之间的均方根误差,得到预测三维点云投影位姿与目标第一三维点云投影位姿之间的偏差。

根据本发明的实施例,可以在三维点云投影位姿求解器输出的预测三维点云投影位姿与目标第一三维点云投影位姿之间的偏差小于预设阈值的情况下,将当前训练得到的三维点云投影位姿求解器作为目标三维点云投影位姿求解器。

根据本发明的实施例,预设阈值可以根据实际情况进行选择,在此不作限定。例如,预设阈值可以为0.001。

根据本发明的实施例,由于目标三维点云投影位姿求解器,是通过针对多个位姿映射关系样本中的每个位姿映射关系,将位姿映射关系包括的第一目标图像的二维拍摄位姿作为输入,位姿映射关系包括的与第一目标图像对应的目标第一三维点云投影位姿作为标签,对三维点云投影位姿求解器进行训练得到的,因此,在利用采集第一目标图像的的第一传感器,对目标场景再次采集二维图像后,可以将再次采集的二维图像输入目标三维点云投影位姿求解器中,在不需要对三维点云数据进行处理的情况下,简单、精准、快速的得到与再次采集的二维图像对应的目标三维点云投影位姿。

根据本发明的实施例,在获取多个位姿映射关系样本之前,需要先获取关于目标场景的三维点云数据。

根据本发明的实施例,可以通过携带北斗定位芯片、或IMU(惯性传感器,InertialMeasurement Unit)、GPS(全球定位系统,Global Positioning System)芯片的无人机获取关于目标场景的三维点云数据。

根据本发明的实施例,利用携带北斗定位芯片、或IMU、GPS芯片的无人机获取关于目标场景的三维点云数据,可以包括以下步骤:1)根据实际情况规划无人机航线、初始化无人机相应参数;2)控制无人机完成航行拍摄任务;3)获取关于目标场景的原始三维点云数据;4)采用特定的点云压缩方法对关于目标场景的原始三维点云数据进行点云数据压缩;5)获取压缩后的点云数据,得到关于目标场景的三维点云数据。

根据本发明的实施例,特定的点云压缩方法可以为传统方法,也可以为深度学习方法。

根据本发明的实施例,在获取多个位姿映射关系样本之前,需要先获取多个第一目标图像和第一目标图像的二维拍摄位姿。

根据本发明的实施例,可以调整第一传感器的位姿,利用第一传感器的图像采集模块,采集与三维点云数据对应的目标场景相同的场景下的不同角度的二维图像,得到多个第一目标图像。

根据本发明的实施例,图像采集模块可以为可见光图像采集模块,也可以为红外线图像采集模块。

根据本发明的实施例,在利用第一传感器对目标场景进行采集第一目标图像之前,可以对第一传感器进行标定,得到标定好的第一传感器,然后利用标定好的第一传感器对目标场景进行采集第一目标图像。

根据本发明的实施例,在调整标定好的第一传感器的位姿,采集第一目标图像的情况下,可以根据标定结果及采集得到的第一目标图像,得到标定好的第一传感器相对于初始标定位置的位姿,可以将标定好的第一传感器相对于标定好的第一传感器的初始标定位置的位姿,确定为第一目标图像的二维拍摄位姿。

根据本发明的实施例,在利用第一传感器对目标场景进行采集第一目标图像之前,也可以不对第一传感器进行标定。在这种情况下,由于在调整第一传感器的位姿后,采集得到的多个第一目标图像均不相同,因此,可以根据多个第一目标图像本身,对与多个第一目标图像分别对应的二维拍摄位姿进行区分。因此,进一步的,可以将第一目标图像本身,确定为第一目标图像的二维拍摄位姿,使每个位姿映射关系样本包括第一目标图像本身和与第一目标图像对应的目标第一三维点云投影位姿。

根据本发明的实施例,第一目标图像的二维拍摄位姿的确定方法可以根据实际情况进行选择,在此不作限定。

根据本发明的实施例,在得到关于目标场景的三维点云数据和与多个第一目标图像对应的第一目标图像的二维拍摄位姿后,可以根据如图3所示的操作流程图,根据关于目标场景的三维点云数据和与多个第一目标图像对应的第一目标图像的二维拍摄位姿,得到如图2所示的操作S210中的多个位姿映射关系样本。

图3示出了根据本发明实施例的获取多个位姿映射关系样本的流程图。

如图3所示,获取多个位姿映射关系样本的流程包括操作S310~操作S340。

在操作S310,按照多个第一三维点云投影位姿,对关于目标场景的三维点云数据分别进行投影,得到多个第一投影图像,其中,每个第一投影图像与一个第一三维点云投影位姿相对应。

根据本发明的实施例,多个第一三维点云投影位姿表征将三维点云数据向各个方向及不同深度进行投影的投影位姿。

根据本发明的实施例,通过按照多个第一三维点云投影位姿,对关于目标场景的三维点云数据分别进行投影,得到多个第一投影图像,可以得到多个与涵盖的投影位姿范围较广的多个第一三维点云投影位姿对应的多个第一投影图像。

在操作S320,针对多个第一目标图像中的每个第一目标图像,基于多个第一投影图像和第一目标图像,确定与第一目标图像相对应的第一三维点云子数据。

根据本发明的实施例,第一三维点云子数据表征三维点云数据中的在采集第一目标图像的视场内的点云数据。

根据本发明的实施例,可以先得到多个第一投影图像中与第一目标图像最匹配的第一投影图像,然后根据最匹配的第一投影图像及第一目标图像,确定与第一目标图像相对应的第一三维点云子数据。

在操作S330,按照多个第二三维点云投影位姿,对第一三维点云子数据分别进行投影,得到多个第二投影图像,其中,每个第二投影图像与一个第二三维点云投影位姿相对应。

根据本发明的实施例,可以以与第一三维点云子数据对应的第一三维点云投影位姿为基准,根据多个预设位姿参数修正阈值,小范围内改变与第一三维点云子数据对应的第一三维点云投影位姿,得到多个第二三维点云投影位姿。

根据本发明的实施例,多个第二三维点云投影位姿涵盖的投影位姿范围小于多个第一三维点云投影位姿涵盖了投影位姿范围。

根据本发明的实施例,由于多个第二三维点云投影位姿是基于与第一三维点云子数据对应的第一三维点云投影位姿得到的,且多个第二三维点云投影位姿涵盖的投影位姿范围小于多个第一三维点云投影位姿涵盖了投影位姿范围,使得按照多个第二三维点云投影位姿,对第一三维点云子数据分别进行投影,得到多个第二投影图像,可以得到相较于多个第一投影图像,与第一目标图像更匹配的多个第二投影图像。

在操作S340,基于多个第二投影图像和第一目标图像,确定与第一目标图像相对应的目标第一三维点云投影位姿,并生成第一目标图像的二维拍摄位姿和目标第一三维点云投影位姿之间的位姿映射关系,得到多个位姿映射关系样本。

根据本发明的实施例,可以先得到多个第二投影图像中与第一目标图像最匹配的第二投影图像,然后根据最匹配的第二投影图像及第一目标图像,确定与第一目标图像相对应的第二三维点云子数据。

根据本发明的实施例,通过按照多个第一三维点云投影位姿,对关于目标场景的三维点云数据分别进行投影,得到多个第一投影图像,针对多个第一目标图像中的每个第一目标图像,基于多个第一投影图像和第一目标图像,确定与第一目标图像相对应的第一三维点云子数据,实现在较大的投影位姿范围内,简单快速得到位于采集第一目标图像的视场内的第一三维点云子数据,然后按照多个第二三维点云投影位姿,对第一三维点云子数据分别进行投影,得到多个第二投影图像,基于多个第二投影图像和第一目标图像,确定与第一目标图像相对应的目标第一三维点云投影位姿,实现根据多个投影范围更精细的第二三维点云投影位姿,简单快捷的得到精准度较高的目标第一三维点云投影位姿,并生成较精准的第一目标图像的二维拍摄位姿和目标第一三维点云投影位姿之间的位姿映射关系,得到多个精准度位姿映射关系样本。

根据本发明的实施例,针对如图3所示的操作S320,针对多个第一目标图像中的每个第一目标图像,基于多个第一投影图像和第一目标图像,确定与第一目标图像相对应的第一三维点云子数据,可以包括如下操作:

将第一目标图像和多个第一投影图像分别进行特征匹配,得到匹配度最高的第一目标投影图像和特征点匹配对集合,其中,特征点匹配对集合包括用于表征第一目标投影图像和第一目标图像之间匹配的多个像素点对;

根据与第一目标投影图像对应的第一三维点云投影位姿,对特征点匹配对集合包括的多个像素点对进行反投影,得到第一三维点云子数据。

根据本发明的实施例,可以先对第一目标图像和多个第一投影图像分别进行特征提取,然后对与第一目标图像对应的特征和与多个第一投影图像分别对应的特征进行距离匹配,得到匹配度最高的第一目标投影图像。

例如,计算与第一目标图像对应的特征和与多个第一投影图像分别对应的特征之间的余弦相似度,将与余弦相似度最高的第一投影图像的特征对应的第一投影图像,作为匹配度最高的第一目标投影图像。

例如,可以先调整第一传感器的位姿,将此时第一传感器的二维拍摄位姿记为δ,让第一传感器拍摄二维图像,得到第一目标图像。此时第一目标图像的二维拍摄位姿为δ,将得到的第一目标图像记为Image(δ)。

将关于目标场景的三维点云数据按不同的多个第一三维点云投影位姿(或视角)进行二维投影,将此时的投影位姿记为の

图4示出了将关于目标场景的三维点云数据向第一目标图像进行投影的过程的示意图。

如图4所示,在将关于目标场景的三维点云数据按照多个第一三维点云投影位姿向第一目标图像进行投影的过程中,三维点云数据会经过如图4所示的刚体变换,即经过旋转矩阵的旋转变换及平移矩阵的平移变换变换,实现将三维点云数据从世界坐标系转换到相机坐标系。

由图4可知,将Image(P,の

根据本发明的实施例,将Image(P,の

公式(1)为世界坐标系到相机坐标系的刚体变换。

(1)

其中,c表征相机坐标系,

公式(2)为相机坐标系到图像坐标系的刚体变换。

(2)

其中,

公式(3)为图像坐标系到像素坐标系的变换。

(3)

其中,

公式(4)为公式(1)至(3)合成的总的转换公式。

(4)

根据本发明的实施例,通过将第一目标图像和多个第一投影图像分别进行特征匹配,得到匹配度最高的第一目标投影图像和特征点匹配对集合,根据与第一目标投影图像对应的第一三维点云投影位姿,对特征点匹配对集合包括的多个像素点对进行反投影,得到第一三维点云子数据,实现通过第一目标图像和多个第一投影图像进行粗匹配,快速得到第一目标投影图像和特征点匹配对集合,进而再对特征点匹配对集合包括的多个像素点对进行反投影后,可以快速得到第一三维点云子数据,快速得到位于采集第一目标图像的视场内的第一三维点云子数据。

根据本发明的实施例,针对如图3所示的操作S340,基于多个第二投影图像和第一目标图像,确定与第一目标图像相对应的目标第一三维点云投影位姿,可以包括如下操作:

将第一目标图像和多个第二投影图像分别进行特征匹配,得到匹配度最高的第二目标投影图像;

将与第二目标投影图像对应的第二三维点云投影位姿确定为目标第一三维点云投影位姿。

根据本发明的实施例,可以先对第一目标图像和多个第二投影图像分别进行特征提取,然后对与第一目标图像对应的特征和与多个第二投影图像分别对应的特征进行距离匹配,得到匹配度最高的第二目标投影图像。

例如,计算与第一目标图像对应的特征和与多个第二投影图像分别对应的特征之间的余弦相似度,将与余弦相似度最高的第二投影图像的特征对应的第二投影图像,作为匹配度最高的第二目标投影图像。

例如,将第一三维点云子数据基于不同的多个第二三维点云投影位姿(或视角)对第一目标图像进行投影,得到不同的多个第二投影图像Image(P,ξ

将这些多个第二投影图像与第一传感器拍摄的第一目标图像进行特征匹配。具体的匹配过程可以采用距离匹配,距离越小,表明第二投影图像Image(P,ξ

此时,第一目标图像的二维拍摄位姿与点云投影的目标第一三维点云投影位姿ξ

根据本发明的实施例,通过将第一目标图像和多个第二投影图像分别进行特征匹配,得到匹配度最高的第二目标投影图像,将与第二目标投影图像对应的第二三维点云投影位姿确定为目标第一三维点云投影位姿,实现对第一目标图像和多个第二投影图像进行精细匹配,快速精确的得到第二目标投影图像,进而将与第二目标投影图像对应的第二三维点云投影位姿确定为目标第一三维点云投影位姿,可以快速精确的得到目标第一三维点云投影位姿。

根据本发明的实施例,在得到与多个第一目标图像的二维拍摄位姿对应的目标第一三维点云投影位姿后,可以建立映射关系组R(δ

在获取多个位姿映射关系样本后,还可以针对多个位姿映射关系样本中的每个位姿映射关系,将位姿映射关系包括的与第一目标图像对应的目标第一三维点云投影位姿作为输入,将位姿映射关系包括的第一目标图像的二维拍摄位姿作为标签,对二维拍摄位姿求解器进行训练;在二维拍摄位姿求解器输出的预测二维拍摄位姿与第一目标图像的二维拍摄位姿之间的偏差满足预设条件的情况下,将当前训练得到的二维拍摄位姿求解器作为目标二维拍摄位姿求解器,以便可以根据目标二维拍摄位姿求解器对与三维点云数据对应的三维点云投影位姿进行预测。

根据本发明的实施例,对于那些没有出现过的第一传感器拍摄位姿,或者那些没有出现过的点云投影的位姿,也可以基于映射关系组R(δ

根据本发明的实施例,针对如图2所示的三维点云投影位姿求解器训练方法还包括:

将第二目标图像和多个第一目标图像分别进行特征匹配,得到与第二目标图像对应的匹配度在预设阈值范围内的多个第一匹配图像,其中,第二目标图像是利用二维拍摄位姿采集目标场景的信息得到的;

根据与多个第一匹配图像分别对应的多个目标第一三维点云投影位姿,对关于目标场景的三维点云数据进行投影,得到多个第三投影图像;

将第二目标图像和多个第三投影图像分别进行匹配,得到匹配度最高的第二匹配图像;

将与第二匹配图像对应的目标第一三维点云投影位姿确定为与第二目标图像对应的目标第二三维点云投影位姿;

基于第二目标图像的二维拍摄位姿和与第二目标图像对应的目标第二三维点云投影位姿之间的位姿映射关系,更新多个位姿映射关系样本。

根据本发明的实施例,可以利用第一传感器对目标场景进行采集,得到第二目标图像。

根据本发明的实施例,可以先计算与第二目标图像和多个第三投影图像分别对应的特征,然后计算与第二目标图像对应的特征和与多个第三投影图像分别对应的特征之间的余弦相似度,得到余弦相似度最高的与第三投影图像对应的特征,将与该特征对应的第三投影图像作为匹配度最高的第二匹配图像。

相关技术中,先前的点云注册方法,通常在第一传感器(相机)位姿调整不够精准的情况下,会造成得到的与第二目标图像对应的点云数据存在较多噪声,点云注册的精确较低。

根据本发明的实施例,通过将第二目标图像和多个第一目标图像分别进行特征匹配,得到与第二目标图像对应的匹配度在预设阈值范围内的多个第一匹配图像,根据与多个第一匹配图像分别对应的多个目标第一三维点云投影位姿,对关于目标场景的三维点云数据进行投影,得到多个第三投影图像,将第二目标图像和多个第三投影图像分别进行匹配,得到匹配度最高的第二匹配图像,将与第二匹配图像对应的目标第一三维点云投影位姿确定为与第二目标图像对应的目标第二三维点云投影位姿,可以实现在第二目标图像的二维拍摄位姿与第一目标图像的二维拍摄位姿不完全一致且相差较小的情况下,根据已经存在的位姿映射关系样本,快速得到相对精确的与第二目标图像对应的目标第二三维点云投影位姿,进而可以基于第二目标图像的二维拍摄位姿和与第二目标图像对应的目标第二三维点云投影位姿之间的位姿映射关系,更新多个位姿映射关系样本,快速增加多个位姿映射关系样本中的位姿映射关系。

根据本公开的实施例,在基于第二目标图像的二维拍摄位姿和与第二目标图像对应的目标第二三维点云投影位姿之间的位姿映射关系,更新多个位姿映射关系样本后,可以将第二目标图像的二维拍摄位姿作为更新后的第一目标图像的二维拍摄位姿,将目标第二三维点云投影位姿作为更新后的目标第一三维点云投影位姿,继续对三维点云投影位姿求解器进行训练。

根据本发明的实施例,针对如图2所示的操作S220,对三维点云投影位姿求解器进行训练,可以包括如下操作:

将位姿映射关系包括的第一目标图像的二维拍摄位姿输入三维点云投影位姿求解器,输出预测三维点云投影位姿;

根据预测三维点云投影位姿和目标第一三维点云投影位姿,计算损失值;

根据损失值,更新三维点云投影位姿求解器的参数。

根据本发明的实施例,可以计算预测三维点云投影位姿和目标第一三维点云投影位姿之间的均方误差,将该均方误差作为损失值。

根据本发明的实施例,通过循环将位姿映射关系包括的第一目标图像的二维拍摄位姿输入三维点云投影位姿求解器,输出预测三维点云投影位姿,根据预测三维点云投影位姿和目标第一三维点云投影位姿,计算损失值,根据损失值,更新三维点云投影位姿求解器的参数,

可以使三维点云投影位姿求解器充分学习到第一目标图像的二维拍摄位姿和目标第一三维点云投影位姿之间的映射关系,使三维点云投影位姿求解器输出的预测三维点云投影位姿越来越接近目标第一三维点云投影位姿。

图5示出了根据本发明实施例的三维点云投影位姿确定方法的流程图。

如图5所示,该实施例的三维点云投影位姿确定方法包括操作S510。

在操作S510,将第三目标图像的二维拍摄位姿输入目标三维点云投影位姿求解器中,得到与第三目标图像对应的目标三维点云投影位姿,其中,第三目标图像是利用二维拍摄位姿采集得到的,目标三维点云投影位姿求解器是根据上述训练方法得到的。

根据本发明的实施例,可以利用获取第一目标图像的二维拍摄位姿的方法,获取第三目标图像的二维拍摄位姿。

根据本发明的实施例,获取第三目标图像和获取第一目标图像的传感器可以相同,也可以不同。

根据本发明的实施例,在获取第三目标图像和获取第一目标图像的传感器相同的情况下,可以调整第一传感器的位姿,对目标场景进行采集,得到第三目标图像和第三目标图像的二维拍摄位。与第三目标图像对应的目标三维点云投影位姿求解器和与第一目标图像对应的目标三维点云投影位姿求解器相同。

根据本发明的实施例,在获取第三目标图像和获取第一目标图像的传感器不相同的情况下,可以调整第三传感器的位姿,对目标场景进行采集,得到第三目标图像和第三目标图像的二维拍摄位。其中,第一传感器、第二传感器和第三传感器可以均为多功能传感器。例如,可以均为富能传感器。第一传感器、第二传感器和第三传感器采集的目标场景相同,即与第一目标图像、第二目标图像、第三目标图像和三维点云数据对应的目标场景相同。

根据本发明的实施例,与第三目标图像对应的目标场景和与用于训练目标三维点云投影位姿求解器的多个位姿映射关系样本对应的目标场景相同。

根据本发明的实施例,由于目标三维点云投影位姿求解器,是通过针对多个位姿映射关系样本中的每个位姿映射关系,将位姿映射关系包括的第一目标图像的二维拍摄位姿作为输入,位姿映射关系包括的与第一目标图像对应的目标第一三维点云投影位姿作为标签,对三维点云投影位姿求解器进行训练得到的,第三目标图像是利用二维拍摄位姿采集目标场景得到的,通过将第三目标图像的二维拍摄位姿输入目标三维点云投影位姿求解器中,可以在不需要对三维点云数据进行处理的情况下,简单、精准、快速的得到与第三目标图像对应的目标三维点云投影位姿。

需要说明的是,本发明实施例中的流程图所示的操作除非明确说明不同操作之间存在执行的先后顺序,或者不同操作在技术实现上存在执行的先后顺序,否则,多个操作之间的执行顺序可以不分先后,多个操作也可以同时执行。

基于上述三维点云投影位姿求解器训练方法,本发明还提供了一种三维点云投影位姿求解器训练装置。以下将结合图6对该装置进行详细描述。

图6示出了根据本发明实施例的三维点云投影位姿求解器训练装置的结构框图。

如图6所示,该实施例的三维点云投影位姿求解器训练装置600包括获取模块610、训练模块620和目标三维点云投影位姿求解器得到模块630。

获取模块610,用于获取多个位姿映射关系样本,其中,每个位姿映射关系样本包括第一目标图像的二维拍摄位姿和与第一目标图像对应的目标第一三维点云投影位姿,第一目标图像是利用二维拍摄位姿采集目标场景的信息得到的,目标第一三维点云投影位姿是与关于目标场景的三维点云数据对第一目标图像进行投影得到的。在一实施例中,获取模块610可以用于执行前文描述的操作S210,在此不再赘述。

训练模块620,用于针对多个位姿映射关系样本中的每个位姿映射关系,将位姿映射关系包括的第一目标图像的二维拍摄位姿作为输入,位姿映射关系包括的与第一目标图像对应的目标第一三维点云投影位姿作为标签,对三维点云投影位姿求解器进行训练。在一实施例中,训练模块620可以用于执行前文描述的操作S220,在此不再赘述。

目标三维点云投影位姿求解器得到模块630,用于在三维点云投影位姿求解器输出的预测三维点云投影位姿与目标第一三维点云投影位姿之间的偏差满足预设条件的情况下,将当前训练得到的三维点云投影位姿求解器作为目标三维点云投影位姿求解器。在一实施例中,目标三维点云投影位姿求解器得到模块630可以用于执行前文描述的操作S230,在此不再赘述。

根据本发明的实施例,获取模块610包括第一得到子模块、第一确定子模块、第二得到子模块和第三得到子模块。

第一得到子模块,用于按照多个第一三维点云投影位姿,对关于目标场景的三维点云数据分别进行投影,得到多个第一投影图像,其中,每个第一投影图像与一个第一三维点云投影位姿相对应。

第一确定子模块,用于针对多个第一目标图像中的每个第一目标图像,基于多个第一投影图像和第一目标图像,确定与第一目标图像相对应的第一三维点云子数据。

第二得到子模块,按照多个第二三维点云投影位姿,对第一三维点云子数据分别进行投影,得到多个第二投影图像,其中,每个第二投影图像与一个第二三维点云投影位姿相对应。

第三得到子模块,基于多个第二投影图像和第一目标图像,确定与第一目标图像相对应的目标第一三维点云投影位姿,并生成第一目标图像的二维拍摄位姿和目标第一三维点云投影位姿之间的位姿映射关系,得到多个位姿映射关系样本。

根据本发明的实施例,第一确定子模块包括第一得到单元和第二得到单元。

第一得到单元,用于将第一目标图像和多个第一投影图像分别进行特征匹配,得到匹配度最高的第一目标投影图像和特征点匹配对集合,其中,特征点匹配对集合包括用于表征第一目标投影图像和第一目标图像之间匹配的多个像素点对。

第二得到单元,用于根据与第一目标投影图像对应的第一三维点云投影位姿,对特征点匹配对集合包括的多个像素点对进行反投影,得到第一三维点云子数据。

根据本发明的实施例,第三得到子模块包括第三得到单元和确定单元。

第三得到单元,用于将第一目标图像和多个第二投影图像分别进行特征匹配,得到匹配度最高的第二目标投影图像。

确定单元,用于将与第二目标投影图像对应的第二三维点云投影位姿确定为目标第一三维点云投影位姿。

根据本发明的实施例,三维点云投影位姿求解器训练装置还包括第一得到模块、第二得到模块、第三得到模块、确定模块和更新模块。

第一得到模块,用于将第二目标图像和多个第一目标图像分别进行特征匹配,得到与第二目标图像对应的匹配度在预设阈值范围内的多个第一匹配图像,其中,第二目标图像是利用二维拍摄位姿采集目标场景的信息得到的。

第二得到模块,用于根据与多个第一匹配图像分别对应的多个目标第一三维点云投影位姿,对关于目标场景的三维点云数据进行投影,得到多个第三投影图像。

第三得到模块,用于将第二目标图像和多个第三投影图像分别进行匹配,得到匹配度最高的第二匹配图像。

确定模块,用于将与第二匹配图像对应的目标第一三维点云投影位姿确定为与第二目标图像对应的目标第二三维点云投影位姿。

更新模块,用于基于第二目标图像的二维拍摄位姿和与第二目标图像对应的目标第二三维点云投影位姿之间的位姿映射关系,更新多个位姿映射关系样本。

根据本发明的实施例,训练模块包括输出子模块、计算子模块和更新子模块。

输出子模块,用于将位姿映射关系包括的第一目标图像的二维拍摄位姿输入三维点云投影位姿求解器,输出预测三维点云投影位姿。

计算子模块,用于根据预测三维点云投影位姿和目标第一三维点云投影位姿,计算损失值。

更新子模块,用于根据损失值,更新三维点云投影位姿求解器的参数。

根据本发明的实施例,获取模块610、训练模块620和目标三维点云投影位姿求解器得到模块630中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,获取模块610、训练模块620和目标三维点云投影位姿求解器得到模块630中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块610、训练模块620和目标三维点云投影位姿求解器得到模块630中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图7示出了根据本发明实施例的三维点云投影位姿确定装置的结构框图。

如图7所示,该实施例的三维点云投影位姿确定装置700包括得到模块710。

得到模块710,将第三目标图像的二维拍摄位姿输入目标三维点云投影位姿求解器中,得到与第三目标图像对应的目标三维点云投影位姿,其中,第三目标图像是利用二维拍摄位姿采集得到的,目标三维点云投影位姿求解器是根据上述训练方法得到的。在一实施例中,得到模块710可以用于执行前文描述的操作S510,在此不再赘述。

根据本发明的实施例,与第三目标图像对应的目标场景和与用于训练目标三维点云投影位姿求解器的多个位姿映射关系样本对应的目标场景相同。

图8示出了根据本发明实施例的适于实现三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法的电子设备的方框图。

如图8所示,根据本发明实施例的电子设备包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 803中,存储有电子设备操作所需的各种程序和数据。处理器 801、ROM 802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本发明实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本发明实施例的方法流程的各种操作。

根据本发明的实施例,电子设备还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备还可以包括连接至输入/输出(I/O)接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出(I/O)接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。

根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本发明的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。

本发明的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本发明实施例所提供的三维点云投影位姿求解器训练方法和三维点云投影位姿确定方法。

在该计算机程序被处理器801执行时执行本发明实施例的系统/装置中限定的上述功能。根据本发明的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本发明实施例的系统中限定的上述功能。根据本发明的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

根据本发明的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本发明的各个实施例中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。

以上对本发明的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本发明的范围由所附各个实施例及其等同物限定。不脱离本发明的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本发明的范围之内。

技术分类

06120116571514