发明内容
本申请实施例提供了一种基于RGB相机与激光传感器的三维重建方法、装置及服务器,可以解决现有技术中利用计算机视觉的方法从二维图像中获取三维深度信息,根据三维深度信息重构出三维模型效果较差的问题。
第一方面,本申请实施例提供了一种基于RGB相机与激光传感器的三维重建方法,包括:
获取RGB-D图像,其中,所述RGB-D图像包括RGB图像和深度图像;
根据所述RGB-D图像生成点云;
对所述点云进行配准,得到目标点云;
根据所述目标点云进行场景几何结构恢复,得到三维模型。
在第一方面的一种可能的实现方式中,获取RGB-D图像,包括:
从RGB相机获取场景对象对应的RGB图像;
从激光传感器获取所述场景对象对应的深度图像;其中,所述RGB相机与所述激光传感器相对位置固定;
对所述RGB图像和所述深度图像进行配准,得到RGB-D图像。
在第一方面的一种可能的实现方式中,根据所述RGB-D图像生成点云,包括:
根据下式得到点云的三维坐标:
其中,(u,v)为RGB-D图中每个关键点的像素坐标,d为RGB-D图中每个关键点的深度值,K为RGB相机的内参,(X,Y,Z)为点云的三维坐标。
在第一方面的一种可能的实现方式中,对所述点云进行配准,得到目标点云,包括:
划分出所述点云中的基准点云和待配准点云;
根据下式对所述基准点云和待配准点云进行配准:
其中,
表示在基准点云坐标系中的三维点,
表示在待配
准点坐标系中的三维点,T表示相机的平移矩阵,R表示相机的旋转矩阵;
将所述基准点云和配准后的待配准点云作为所述目标点云。
在第一方面的一种可能的实现方式中,根据所述目标点云进行场景几何结构恢复,得到三维模型,包括:
基于所述RGB相机的位置,对所述目标点云进行三维重构,得到待处理三维模型;
根据所述RGB图像中的纹理信息,对所述待处理三维模型进行纹理贴图,得到所述三维模型。
在第一方面的一种可能的实现方式中,基于所述RGB相机的位置,对所述目标点云进行三维重构,得到待处理三维模型,包括:
将多个不同位置的RGB相机连接起来构成第一空间;
以每个目标点云为起点,所述目标点云对应的RGB相机为终点,形成的成一条虚拟直线,根据多个所述虚拟直线交织覆盖的空间构成第二空间;其中第一空间的空间范围大于所述第二空间;
剔除所述第一空间中的第二空间,将剩余空间作为目标空间,并基于图论最短路径算法对所述目标空间进行闭合处理;
根据所述RGB相机的位置,以及闭合处理后的所述目标空间,形成待处理三维模型。
在第一方面的一种可能的实现方式中,根据所述RGB图像中的纹理信息,对所述待处理三维模型进行纹理贴图,得到所述三维模型,包括:
提取所述RGB图像中的纹理信息;
根据预设的映射函数将所述纹理信息映射至所述所述待处理三维模型中对应的三角面,形成所述三维模型。
第二方面,本申请实施例提供了一种基于RGB相机与激光传感器的三维重建装置,包括:
获取模块,用于获取RGB-D图像,其中,所述RGB-D图像包括RGB图像和深度图像;
生成模块,用于根据所述RGB-D图像生成点云;
配准模块,用于对所述点云进行配准,得到目标点云;
几何结构恢复模块,用于根据所述目标点云进行场景几何结构恢复,得到三维模型。
在第二方面的一种可能实现的方式中,所述获取模块包括:
第一获取子模块,用于从RGB相机获取场景对象对应的RGB图像;
第二获取子模块,用于从激光传感器获取所述场景对象对应的深度图像;其中,所述RGB相机与所述激光传感器相对位置固定;
配准子模块,用于对所述RGB图像和所述深度图像进行配准,得到RGB-D图像。
在第二方面的一种可能实现的方式中,所述生成模块包括:
生成子模块,用于根据下式得到点云的三维坐标:
其中,(u,v)为RGB-D图中每个关键点的像素坐标,d为RGB-D图中每个关键点的深度值,K为RGB相机的内参,(X,Y,Z)为点云的三维坐标。
在第二方面的一种可能实现的方式中,所述配准模块包括:
划分子模块,用于划分出所述点云中的基准点云和待配准点云;
配准子模块,用于根据下式对所述基准点云和待配准点云进行配准:
其中,
表示在基准点云坐标系中的三维点,
表示在待配
准点坐标系中的三维点,T表示相机的平移矩阵,R表示相机的旋转矩阵;
生成子模块,用于将所述基准点云和配准后的待配准点云作为所述目标点云。
在第二方面的一种可能实现的方式中,所述几何恢复模块包括:
三维重构子模块,用于基于所述RGB相机的位置,对所述目标点云进行三维重构,得到待处理三维模型;
纹理贴图子模块,用于根据所述RGB图像中的纹理信息,对所述待处理三维模型进行纹理贴图,得到所述三维模型。
在第二方面的一种可能实现的方式中,所述三维重构子模块,包括:
第一构成单元,用于将多个不同位置的RGB相机连接起来构成第一空间;
第二构成单元,用于以每个目标点云为起点,所述目标点云对应的RGB相机为终点,形成的成一条虚拟直线,根据多个所述虚拟直线交织覆盖的空间构成第二空间;其中第一空间的空间范围大于所述第二空间;
剔除单元,用于剔除所述第一空间中的第二空间,将剩余空间作为目标空间,并基于图论最短路径算法对所述目标空间进行闭合处理;
生成单元,用于根据所述RGB相机的位置,以及闭合处理后的所述目标空间,形成待处理三维模型。
在第二方面的一种可能实现的方式中,所述纹理贴图子模块,包括:
提取单元,用于提取所述RGB图像中的纹理信息;
映射单元,用于根据预设的映射函数将所述纹理信息映射至所述所述待处理三维模型中对应的三角面,形成所述三维模型。
第三方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法。
本申请实施例与现有技术相比存在的有益效果是:
本申请实施例中,通过获取RGB-D图像,其中,RGB-D图像包括深度信息和纹理信息;根据RGB-D图像生成点云;对点云进行配准,得到目标点云;根据目标点云进行场景几何结构恢复,得到三维模型。可见,本申请通过设置的硬件装置(即激光传感器和RGB相机)直接获取包含深度信息和纹理信息的RGB-D图像,不需要另外对图像进行深度估计处理才可以得到深度信息,减少获取深度信息的误差,提高三维重建精度。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
需说明的是,本申请实施例的应用场景可以是通过存在标定关系且相对位置固定的RGB相机和激光相机在多个点位对场景对象进行拍摄得到RGB-D图像,根据RGB-D图像对场景对象进行三维重建。
下面将通过具体实施例对本申请实施例提供的技术方案进行介绍。
实施例一
参见图1,为本申请实施例提供的基于RGB相机与激光传感器的三维重建方法的流程示意图,作为示例而非限定,该方法可以应用于服务器,,该服务器分别与激光传感器以及RGB相机连接,该方法可以包括以下步骤:
步骤S102、获取RGB-D图像。
其中,RGB-D图像为场景对象(例如室内场景或者室外场景)对应的图像,RGB-D图像包括RGB图像和深度图像。可以理解的是,RGB图像是指具备红色、绿色、蓝色这三个颜色通道的图像,用以描述场景对象的表观、颜色以及纹理;深度图像类似于灰度图像,它的每个像素值是传感器距离场景对象的实际距离即深度值,用以描述场景对象的形状、尺度以及几何空间。
具体应用中,如图2所示,为本申请实施例提供的基于RGB相机与激光传感器的三维重建方法的图1中步骤S102的具体实现流程示意图,获取RGB-D图像包括:
步骤S202、从RGB相机获取场景对象对应的RGB图像。
步骤S204、从激光传感器获取场景对象对应的深度图像。其中,RGB相机与激光传感器相对位置固定。
需说明的是,激光传感器和RGB相机在拍摄场景对象前需要进行标定,例如采用张正友标定法进行标定。
步骤S206、对RGB图像和深度图像进行配准,得到RGB-D图像。
其中,图像配准是指将不同时间、不同传感器(成像设备)或不同条件下(天候、照度、摄像位置和角度等)获取的两幅或多幅图像进行匹配、叠加的过程,本申请实施例的RGB图像和深度图像之间的图像配准是指将RGB相机拍摄得到的RGB图像中的像素点和激光传感器扫描到的深度图像中的像素点一一对应。
具体地,可以采用预设算法计算RGB图像和深度图像分别和同一模板图像之间的相似值,找到最佳相似值后,将最佳相似值对应RGB图像和深度图像作为配准后的RGB-D图像。其中,预设算法包括但是不限于:平均绝对差算法、绝对误差算法、误差平方或者算法或者平均误差平方。
步骤S104、根据RGB-D图像生成点云。
具体应用中,根据下式得到点云的三维坐标:
其中,(u,v)为RGB-D图中每个关键点的像素坐标,d为RGB-D图中每个关键点的深度值,K为RGB相机的内参,(X,Y,Z)为点云的三维坐标。需说明的是,关键点是指图像中表征具有特征性质的像素点,深度值是指像素点到场景对象的距离,内参可以由通过张正友标定法计算得到。
可以理解的是,根据RGB-D图像生成点云的过程实质上是将像素坐标系转换为世界坐标系的过程。
步骤S106、对点云进行配准,得到目标点云。
可以理解的是,点云配准的原理是:每个点云都是根据不同视角拍摄的RGD-图像生成的,由于视角不同,那么视角对应的世界坐标系就不同,需要将不同世界坐标系下的点云统一到同一个世界坐标系,后续才可以根据同一个世界坐标系的点云得到三维模型。
具体应用中,对点云进行配准,得到目标点云,包括:
S106-1、划分出点云中的基准点云和待配准点云。
具体应用中,将第一视角点对应的点云作为基准点云,将后续视角点对应的点云作为待配准点云。示意性地,如图8所示,中间聚合在一起的白色点是由点云组成的三维模型,围绕在三维模型周围的白色点是不同拍摄点位,每个拍摄点位与对应的点云之间只有一个视角点,第一视角点是指第一拍摄点位与对应的点云之间形成的视角点,第二视角点是指第二拍摄点与对应的点云之间形成的视角点。
S106-2、根据下式对基准点云和待配准点云进行配准。
其中,
表示在基准点云坐标系中的三维点,
表示在待配
准点坐标系中的三维点,T表示相机的平移矩阵,R表示相机的旋转矩阵。需说明的是相机是
指本申请实施例的RGB相机,RGB相机的平移矩阵和旋转矩阵可以根据迭代最近点
(Iterative Closest Point,ICP)对RGB进行相机位姿估计,得到RGB相机的平移矩阵和旋
转矩阵。
S106-3、将基准点云和配准后的待配准点云作为目标点云。
可以理解的是,本申请将第一视角点对应的点云作为基准点云,结合相机的外参对基准点云和待配准点云进行配准,相对于现有技术中需要对上一个视角点对应的点云和下一个视角点对应的点云之间进行一一进行计算才得到目标点云,不需要耗费大量的计算资源。
步骤S108、根据目标点云进行场景几何结构恢复,得到三维模型。
具体应用中,如图3所示,为本申请实施例提供的基于RGB相机与激光传感器的三维重建方法的图1中步骤S108的具体实现流程示意图,根据目标点云进行场景几何结构恢复,得到三维模型,包括:
步骤S302、基于RGB相机的位置,对目标点云进行三维重构,得到待处理三维模型。
其中,RGB相机的位置是根据RGB相机的位置传感器预先获取的。
具体应用中,如图4所示,为本申请实施例提供的基于RGB相机与激光传感器的三维重建方法的图3中步骤S302的具体实现流程示意图,基于RGB相机的位置,对目标点云进行三维重构,得到待处理三维模型,包括:
步骤S402、将多个不同位置的RGB相机连接起来构成第一空间。
步骤S404、以每个目标点云为起点,目标点云对应的RGB相机为终点,形成的成一条虚拟直线,根据多个所述虚拟直线交织覆盖的空间构成第二空间。
其中,第一空间的空间范围大于所述第二空间。
步骤406、剔除第一空间中的第二空间,将剩余空间作为目标空间。
步骤S408、基于图论最短路径算法对目标空间进行闭合处理,并将闭合处理后的目标空间作为待处理三维模型。
示例性地,步骤S402-步骤S408得到的待处理三维模型的过程可以参考图8,待处理三维模型为图8中中间聚合在一起的白色点,可见,待处理三维模型中将点云连接起来就可以初步形成了多个平面即三角片。
本申请实施例中,可以根据RGB相机位置直接得到待处理三维模型,相对于现有技术中需要用到大量计算资源来进行三维重构出待处理三维模型。
步骤S304、根据RGB图像中的纹理信息,对待处理三维模型进行纹理贴图,得到三维模型。
具体应用中,如图5所示,为本申请实施例提供的基于RGB相机与激光传感器的三维重建方法的图4中步骤S304的具体流程示意图,根据RGB图像中的纹理信息,对待处理三维模型进行纹理贴图,得到三维模型,包括:
步骤S502、提取RGB图像中的纹理信息。
具体应用中,通过计算RGB图像中灰度值,得到RGB图像的共生矩阵,然后确定出该共生矩阵中符合预设阈值范围内的特征矩阵,将该特征矩阵作为纹理信息。其中,该特征矩阵可以反映图像灰度关于方向、相邻间隔、变化幅度等综合信息。
步骤S504、根据预设的映射函数将纹理信息映射至待处理三维模型中对应的三角面,形成三维模型。
其中,预设的映射函数可以是正向映射函数或者逆向映射函数。
示例性地,如图9所示,中间聚合在一起的白色点是三维模型,相对于图8中中间聚合在一起的白色点即待处理三维模型,三维模型中每个三角片有对应的纹理信息。
本申请实施例中,通过获取RGB-D图像,其中,RGB-D图像包括深度信息和纹理信息;根据RGB-D图像生成点云;对点云进行配准,得到目标点云;根据目标点云进行场景几何结构恢复,得到三维模型。可见,本申请通过设置的硬件装置(即激光传感器和RGB相机)直接获取包含深度信息和纹理信息的RGB-D图像,不需要另外对图像进行深度估计处理才可以得到深度信息,减少获取深度信息的误差,提高三维重建精度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的基于RGB相机与激光传感器的三维重建方法,图6示出了本申请实施例提供的基于RGB相机与激光传感器的三维重建装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图6,该装置包括:
获取模块61,用于获取RGB-D图像,其中,所述RGB-D图像包括RGB图像和深度图像;
生成模块62,用于根据所述RGB-D图像生成点云;
配准模块63,用于对所述点云进行配准,得到目标点云;
几何结构恢复模块64,用于根据所述目标点云进行场景几何结构恢复,得到三维模型。
在一种可能实现的方式中,所述获取模块包括:
第一获取子模块,用于从RGB相机获取场景对象对应的RGB图像;
第二获取子模块,用于从激光传感器获取所述场景对象对应的深度图像;其中,所述RGB相机与所述激光传感器相对位置固定;
配准子模块,用于对所述RGB图像和所述深度图像进行配准,得到RGB-D图像。
在一种可能实现的方式中,所述生成模块包括:
生成子模块,用于根据下式得到点云的三维坐标:
其中,(u,v)为RGB-D图中每个关键点的像素坐标,d为RGB-D图中每个关键点的深度值,K为RGB相机的内参,(X,Y,Z)为点云的三维坐标。
在一种可能实现的方式中,所述配准模块包括:
划分子模块,用于划分出所述点云中的基准点云和待配准点云;
配准子模块,用于根据下式对所述基准点云和待配准点云进行配准:
其中,
表示在基准点云坐标系中的三维点,
表示在待配
准点坐标系中的三维点,T表示相机的平移矩阵,R表示相机的旋转矩阵;
生成子模块,用于将所述基准点云和配准后的待配准点云作为所述目标点云。
在一种可能实现的方式中,所述几何恢复模块包括:
三维重构子模块,用于基于所述RGB相机的位置,对所述目标点云进行三维重构,得到待处理三维模型;
纹理贴图子模块,用于根据所述RGB图像中的纹理信息,对所述待处理三维模型进行纹理贴图,得到所述三维模型。
在一种可能实现的方式中,所述三维重构子模块,包括:
第一构成单元,用于将多个不同位置的RGB相机连接起来构成第一空间;
第二构成单元,用于以每个目标点云为起点,所述目标点云对应的RGB相机为终点,形成的成一条虚拟直线,根据多个所述虚拟直线交织覆盖的空间构成第二空间;其中第一空间的空间范围大于所述第二空间;
剔除单元,用于剔除所述第一空间中的第二空间,将剩余空间作为目标空间,并基于图论最短路径算法对所述目标空间进行闭合处理;
生成单元,用于根据所述RGB相机的位置,以及闭合处理后的所述目标空间,形成待处理三维模型。
在一种可能实现的方式中,所述纹理贴图子模块,包括:
提取单元,用于提取所述RGB图像中的纹理信息;
映射单元,用于根据预设的映射函数将所述纹理信息映射至所述所述待处理三维模型中对应的三角面,形成所述三维模型。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图7为本申请实施例提供的服务器的结构示意图。如图7所示,该实施例的服务器7包括:至少一个处理器70、存储器71以及存储在所述存储器71中并可在所述至少一个处理器70上运行的计算机程序72,所述处理器70执行所述计算机程序72时实现上述任意各个方法实施例中的步骤。
所述服务器7可以是云端服务器等计算设备。该服务器可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是服务器7的举例,并不构成对服务器7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),该处理器70还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71在一些实施例中可以是所述服务器7的内部存储单元,例如服务器7的硬盘或内存。所述存储器71在另一些实施例中也可以是所述服务器6的外部存储设备,例如所述服务器7上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述服务器7的内部存储单元也包括外部存储设备。所述存储器71用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到服务器的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。