一种三维模型重建方法及装置与流程

文档序号:17470747发布日期:2019-04-20 05:48阅读:156来源:国知局
一种三维模型重建方法及装置与流程

本发明涉及计算机视觉三维重建领域,具体涉及一种三维模型重建方法及装置。



背景技术:

三维重建技术是指利用相机,投影仪,激光扫描仪等设备直接或间接的获取待重建物体的景深数据,再通过点云拼接等技术来建立物体的三维模型。三维重建技术作为计算机视觉技术中一个重要的分支,在增强现实、文物保护、工业自动化以及机器人应用等方面都具有广泛的应用。

现有技术中,已经存在多种三维重建方法,其中包括立体视觉法、结构光法和飞行时间法(timeofflight,简称tof)。立体视觉法是一种常用的三维重建方法,包括直接利用测距器获取距离信息、通过一幅图像推测三维信息和利用不同视点上的两幅或多幅图像恢复三维信息等三种方式,通过模拟人类视觉系统,基于视差原理获取图像对应点之间的位置偏差,恢复出三维信息,双目立体视觉重建是其典型的应用,但是,采用立体视觉法进行三维重建,运算量偏大,在基线距离较大的情况下,重建精度明显降低。结构光法通过向表面光滑无特征的物体发射具有特征点的光线,依据光源中的立体信息辅助提取物体的深度信息;该方法可以利用投影仪向目标物体投射可编码的光束,生成特征点,然后根据投射模式与投射光的几何图案,通过三角测量原理计算相机光心与特征点之间的距离,由此便可获取生成特征点的深度信息,实现模型重建。但是,结构光法要求投影的结构光与待测物体的测量距离较近,因为待测物体距离相机越远,物体上的投影图案会越大,从而导致获取的图像的精度也越差,相对应的三维重建的精度也越差,再有该方法在物体重建时易受光滑平面反光的影响,从而会进一步降低重建的精度。tof指的是在光速及声速一定的前提下,通过测量发射信号与接收信号的飞行时间间隔来获得距离的方法,发射信号可以是超声波,也可以是红外线等,但是,tof相机的分辨率非常低,而且tof相机容易受到环境因素的影响,如混合像素、外界光源等,导致景物深度不准确,导致三维重建的精度低。同时,上述几种三维重建方法在采集到数据之后需要进行点云拼接,而拼接过程需要获取点云之间的位姿关系,而点云之间的位姿需要借助于外部设备之间的位置关系来获取,如相机与相机之间的位置关系或者相机与投影仪之间的位置关系,然而上述方法获取的位姿关系都不够精确从而会影响最终三维模型拼接的精度。



技术实现要素:

针对上述现有技术中的缺陷,本发明提出一种三维模型重建方法及装置,能够至少部分的解决现有技术中的问题。

一方面,本发明提出一种三维模型重建方法,包括:

获取目标物体的第一预设数量的单格点投影图像,所述单格点投影图像是基于预设的单格点投影图像采集规则获得的;

对各个所述单格点投影图像进行格点检测,获得若干数量的格点;其中,所述格点与所述单格点投影图像一一对应;

基于所述若干数量的格点对所述目标物体进行三维重建,获得所述目标物体的三维模型。

另一方面,本发明提供一种三维模型重建装置,包括:

获取单元,用于获取目标物体的第一预设数量的单格点投影图像,所述单格点投影图像是基于预设的单格点投影图像采集规则获得的;

检测单元,用于对各个所述单格点投影图像进行格点检测,获得若干数量的格点;其中,所述格点与所述单格点投影图像一一对应;

重建单元,用于基于所述若干数量的格点对所述目标物体进行三维重建,获得所述目标物体的三维模型。

再一方面,本发明提供一种电子设备,包括:处理器、存储器和通信总线,其中:

所述处理器和所述存储器通过所述通信总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上述各实施例提供的三维模型重建方法。

又一方面,本发明提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上述实施例提供的三维模型重建方法。

本发明提供的三维模型重建方法及装置,由于能够以预设的单格点投影图像采集规则获取第一预设数量的单格点投影图像,并对各个单格点投影图像进行格点检测,获得若干数量的格点,与单格点投影图像一一对应,然后基于若干数量的格点对目标物体进行三维重建,获得目标物体的三维模型,提高了三维模型重建的精度。

附图说明

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

图1为本发明一实施例提供的三维模型重建方法的流程示意图;

图2a为本发明一实施例提供的采集单格点投影图像的示意图;

图2b为本发明另一实施例提供的采集单格点投影图像的示意图;

图3a为本发明一实施例提供的空白图像的示意图;

图3b为本发明一实施例提供的用于融合的单格点图像的示意图;

图3c为本发明一实施例提供的单格点融合图像的示意图;

图4为本发明另一实施例提供的三维模型重建方法的流程示意图;

图5为本发明又一实施例提供的三维模型重建方法的流程示意图;

图6为本发明再一实施例提供的三维模型重建方法的流程示意图;

图7为本发明一实施例提供的三维模型重建装置的结构示意图;

图8为本发明一实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明一实施例提供的三维模型重建方法的流程示意图,如图1所示,本发明提供的三维模型重建方法,包括:

s101、获取目标物体的第一预设数量的单格点投影图像,所述单格点投影图像是基于预设的单格点投影图像采集规则获得的;

具体地,基于预设的单格点投影图像采集规则,利用投影仪将单格点融合图像投影到目标物体上,通过多台相机采集所述单格点融合图像投影到所述目标物体上的投影,可以获得第一预设数量的单格点投影图像。三维模型重建装置可以获取所述目标物体的第一预设数量的单格点投影图像。其中,所述单格点融合图像是将与所述投影仪的分辨率大小相同的空白图像和一个预设的单格点图像融合之后获得的;所述相机的数量根据实际需要进行配置,本发明实施例不做限定;所述第一预设数量根据实际需要进行设置,本发明实施例不做限定。可理解的是,所述目标物体是需要进行三维重建的物体,本发明提供的三维模型重建方法适用于大场景中无纹理物体的全视角三维重建。

s102、对各个所述单格点投影图像进行格点检测,获得若干数量的格点;其中,所述格点与所述单格点投影图像一一对应;

具体地,所述三维模型重建装置在获得所述第一预设数量的单格点投影图像之后,对各个所述单格点投影图像进行格点检测,获得若干数量的格点,由于所述单格点投影图像可能没有检测出格点,所以所述格点的数量小于或者等于所述单格点投影图像的数量,每个所述格点与一个所述单格点投影图像对应,并且所述格点与所述单格点投影图像是一一对应的。

例如,所述三维模型重建装置对所述单格点投影图像进行格点检测,获得所述单格点投影图像的第四预设数量的潜在角点,然后获得以每个所述潜在角点为中心的预设区域的灰度变化的二次函数,并根据每个所述潜在角点对应的灰度变化的二次函数计算获得每个所述潜在角点对应的实对称矩阵的行列式,再获取所述单格点投影图像的所述第四预设数量的潜在角点对应的实对称矩阵的行列式最小值,若判断获知所述最小值小于阈值,则将所述最小值对应的潜在角点作为所述单格点投影图像对应的格点。其中,所述第四预设数量和所述阈值根据实际经验进行设置,本发明实施例不做限定。

s103、基于所述若干数量的格点对所述目标物体进行三维重建,获得所述目标物体的三维模型。

具体地,所述三维模型重建装置在获得所述若干数量的格点之后,可以根据各个所述格点对应的单格点投影图像对应的投影编号和拍摄位置编号进行格点匹配,获得任意两个所述拍摄位置编号共同对应的格点,然后获取第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点,并获取所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点的三维空间点,构成初始的三维空间点云,接着以所述初始的三维空间点云为基础,利用剩余的两个所述拍摄位置编号共同对应的格点,对所述初始三维空间点云进行扩展,获得所述目标物体的三维空间点云;其中,所述剩余的两个所述拍摄位置编号共同对应的格点是任意两个所述拍摄位置编号共同对应的格点中去除所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点之后剩余的格点;再基于所述目标物体的三维空间点云,获得所述目标物体的三维模型。其中,所述投影编号和拍摄位置编号是预设的。

本发明提供的三维模型重建方法,由于能够以预设的单格点投影图像采集规则获得目标物体第一预设数量的单格点投影图像,并对各个单格点投影图像进行格点检测,获得若干数量的格点,其中格点与单格点图像一一对应,使每个格点都具有唯一的投影编号从而保证了格点的唯一性,进而降低了格点的误匹配率;然后基于若干数量的该格点对目标物体进行三维重建,可以减少三维空间点的错误率,从而获得高精度的三维模型,提高三维模型重建的精度。

在上述各实施例的基础上,进一步地,所述单格点投影图像采集规则包括:

在每个投影视角下利用投影仪投影第二预设数量的不同单格点融合图像至所述目标物体的表面,第三预设数量的相机在所述投影视角下分别采集每个所述单格点融合图像的投影,获得对应的单格点投影图像,每个所述单格点投影图像对应一个拍摄位置编号和一个投影编号,所述拍摄位置编号与所述相机的拍摄位置一一对应,所述投影仪每次投影对应唯一的所述投影编号;其中,在所有的投影视角下,应具有至少一台拍摄位置不变的相机作为基准位置相机;当所述投影仪由一个所述投影视角变换到另一个所述投影视角时,除了所述基准位置相机位置保持不变,对处于投影公共区域的相机应至少一台所述相机保持拍摄位置不变;所述单格点融合图像是将与所述投影仪的分辨率大小相同的空白图像和一个预设的单格点图像融合之后获得的。

具体地,为了对所述目标物体进行三维重建,首先要获得所述目标物体的重建数据,可以采用一台投影仪投影所述单格点融合图像到所述目标物体上,再利用多台所述相机,例如8台相机,对所述目标物体上的投影进行图像采集,获得对应的单格点投影图像,采集到的单格点投影图像可以存储到计算机中,在图像采集的过程中,所述目标物体的位置保持不变。为了保证对所述目标物体图像采集的全面性,需要根据实际情况调整投影仪投影视角的位置,使得不同投影视角下采集到的所有单格点投影图像能够覆盖目标物体整个表面,所述投影仪的每个投影位置对应一个投影视角,所述目标物体需要的投影视角的数量根据实际情况确定。所述投影仪每次投影一张所述单格点融合图像到所述目标物体上时,要使所有观测到该投影视角图像的相机都能够采集到单格点融合图像在目标物体上的投影,从而获得所述单格点融合图像在所述目标物体上的单格点图像的投影,所述投影仪在图像采集的过程中保持静止。由于投影仪每次投影一个所述单格点融合图像,所述单格点融合图像投影到所述目标物体上时最终只能获得所述目标物体在该投影视角下的一个像素点位置,保证了所述单格点投影图像检测的格点的唯一性,能够降低误匹配率以及点云的错误率,但是由于在进行三维重建时需要获取较多的像素点,因此若要获取所述目标物体在一个所述投影视角下的多个像素点就需要投影多张所述单格点融合图像。在一个所述投影视角下,所有能够观测到该投影视角的相机分别采集第二预设数量的单格点融合图像在所述目标物体上的投影,所述第二预设数量与所述目标物体的表面的复杂程度和需要重建的目标物体的三维模型的精度有关,所述第二预设数量越大,越容易获得高精度的三维模型,同时需要处理的数据量就越大,进行三维重建花费的时间也越多。

在图像采集过程中,对于采集到的每张所述单格点投影图像设置一个对应的拍摄位置编号和一个投影编号,所述拍摄位置编号与所述相机的拍摄位置一一对应,相同的所述拍摄位置获得的所述单格点投影图像对应相同的所述拍摄位置编号,在所述投影仪的投影视角发生改变时,部分所述相机的拍摄位置也会发生改变,会将部分所述相机移动到新的拍摄位置,新的拍摄位置会对应唯一的一个拍摄位置编号,即使新的拍摄位置与原来的一个拍摄位置使用的是同一个所述相机。所述投影仪每次投影对应唯一的所述投影编号,也就是说,各个所述相机采集同一次所述单格点融合图像在所述目标物体上的投影时,各个所述相机所获得的各个所述单格点投影图像对应的所述投影编号相同。所述投影仪在各个不同的所述投影视角分别投影各个所述单格点融合图像时,始终有一个所述相机作为基准位置相机保持拍摄位置且不会随投影视角的改变而改变。并且在改变所述投影视角时,相邻投影视角下采用交替共享使用相机的方式进行图像采集,即在改变投影视角时应保持相邻的投影视角存在投影公共区域且保证至少有一台相机作为公共相机能够观测到两投影视角的公共区域,其中,投影公共区域是指两个相邻投影视角中的交集部分;同时,在改变投影视角时,公共区域的相机也要保持位置不变,并作为共享相机为两个投影视角所共用,在相邻的投影视角下采用交替共享使用相机的目的是为后续三维空间点云扩展做铺垫。其中,所述单格点融合图像是将与所述投影仪的分辨率大小相同的空白图像和一个预设的单格点图像融合之后获得的,所述单格点图像指的是只含有单个格点的图像,为了获得所述第二预设数量的不同单格点融合图像,在图像融合时可以采用高斯分布的方法进行图像融合。其中,所述第二预设数量根据实际经验进行设置,本发明实施例不做限定;所述拍摄位置编号和所述投影编号根据实际需要进行设置,本发明实施例不做限定。可理解的是,为了提高所述单格点投影图像采集的精度,所述相机可以采用工业相机。

例如,图2a为本发明一实施例提供的采集单格点投影图像的示意图,如图2a所示,g为所述目标物体,p为所述投影仪,c1,c2,c3,c4,c5,c6表示所述相机,采用6个所述相机拍摄所述单格点融合图像在目标物体g上的投影,每个所述相机都能拍摄到上述投影的全部或者部分,受投影区域和所述目标物体的大小的影响,并不是采集到的每个所述单格点投影图像都包含所述单格点图像。图2b为本发明另一实施例提供的采集单格点投影图像的示意图,如图2b所示,目标物体g的位置不变,投影仪p的投影视角发生改变,由图2a所示的投影视角改变为如图2b所示的投影视角,相机c1为所述基准位置相机,相机c4和c5为所述公用相机,相机c2、c3和c6的拍摄位置发生改变。相机c1、c4和c5,由于拍摄位置没有发生改变,所以相机c1在图2a所示的拍摄视角下拍摄获得的各个所述单格点投影图像对应的拍摄位置编号和在图2b所示的拍摄视角下拍摄获得的各个所述单格点投影图像对应的拍摄位置编号相同,相机c4和c5也与相机c1的情况一样。相机c2、c3和c6,由于拍摄位置发生改变,所以相机c2在图2a所示的拍摄视角下拍摄获得的各个所述单格点投影图像对应的拍摄位置编号和在图2b所示的拍摄视角下拍摄获得的各个所述单格点投影图像对应的拍摄位置编号不相同,相机c3和c6也与相机c2的情况一样。

图3a为本发明一实施例提供的空白图像的示意图,如图3a所示,图3a所示的空白图像为与所述投影仪的分辨率大小相同的空白图像,如果所述投影仪的分辨率为1024*768,那么所述空白图像的分辨率也为1024*768;图3b为本发明一实施例提供的用于融合的单格点图像的示意图,如图3b所示,以两个白色三角形和两个黑色三角形共有的点作为格点,图3b中的图像中只有一个所述格点,图3b中的图像称为单格点图像;图3c为本发明一实施例提供的单格点融合图像的示意图,如图3c所示,将图3a和图3b融合之后获得所述单格点融合图像。

图4为本发明另一实施例提供的三维模型重建方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,所述基于所述若干数量的格点对所述目标物体进行三维重建,获得所述目标物体的三维模型包括:

s1031、根据各个所述格点对应的单格点投影图像对应的投影编号和拍摄位置编号进行格点匹配,获得任意两个所述拍摄位置编号共同对应的格点;

具体地,格点匹配是指寻找两个所述单格点投影图像之间的格点的对应关系,所述三维模型重建装置在获得各个所述格点之后,由于所述格点与所述单格点投影图像一一对应,所述单格点投影图像对应一个所述拍摄位置编号和一个所述投影编号,所以每个所述格点对应一个所述拍摄位置编号和一个所述投影编号,将所述拍摄位置编号相同的格点存储在一起,构成拍摄位置合集,所述拍摄位置合集中包括的各个所述格点对应的投影编号,各个所述格点对应的投影编号都具有唯一性。将任意两个所述拍摄位置编号不同的拍摄位置合集中的各个所述格点对应的投影编号进行比较,可以获得两个不同拍摄位置编号中投影编号相同的格点,将上述对应的投影编号相同的格点作为两个不同拍摄位置编号共同对应的格点。同时,上述只是介绍了获取任意两个不同拍摄位置编号中共同格点的匹配方法,在对所有的拍摄位置编号中的格点进行匹配时,需要将每一个拍摄位置编号中的格点与其他剩余的所有拍摄位置编号中的格点依次进行匹配,直至所有的拍摄位置编号均匹配完成。采用这种匹配方式可以使后续点云扩展中获取的相机位姿更加精确。由于采用投影编号进行格点匹配,并且每个格点与所述单格点投影图像一一对应,可以极大的降低格点的误匹配。

例如,在对目标物体a采集所述单格点投影图像时,所述投影仪在4个不同的投影视角分别投影了1000个不同的所述单格点融合图像,利用6个所述相机进行对所述目标物体a上的投影进行图像采集,其中一个所述相机作为所述基准位置相机,当改变所述投影视角时,用2个所述相机作为所述公用相机,可以采集获得1000*6*4=24000张所述单格点投影图像,由于投影了4000次,有4000个不同的所述投影编号,有4个不同的所述投影视角,每次所述投影视角改变时,改变了3个所述相机的位置,总共有15个不同的所述拍摄位置编号。所述三维模型重建装置在对24000个所述单格点投影图像进行格点检测时,假设获得了22800个格点,其中,第一个所述投影视角下的6个所述拍摄位置编号分别为t1、t2、t3、t4、t5和t6,拍摄位置编号t2对应998个所述格点,拍摄位置编号t5对应990个所述格点。所述三维模型重建装置可以将拍摄位置编号t2对应的998个所述格点中的每个所述格点对应的投影编号分别与拍摄位置编号t5对应990个所述格点各自对应的投影编号进行比较,将对应的所述投影编号相同的格点,作为拍摄位置编号t2和拍摄位置编号t5共同对应的格点。所述三维模型重建装置可以获得15个不同的所述拍摄位置编号对应的格点,重复上述格点对应的投影编号的比较过程,将每一个所述拍摄位置编号对应的格点与剩余所有的拍摄位置编号对应的格点依次进行比较,并重复上述过程直至所有的拍摄位置都与其后续的拍摄位置编号中的格点比较结束,从而可以获得所述15个不同的所述拍摄位置编号中任意两个所述拍摄位置编号共同对应的格点。

s1032、获取第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点,并获取所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点的三维空间点,构成初始的三维空间点云;

具体地,在第一个所述投影视角下进行所述单格点投影图像采集时,可以记录每个所述相机的拍摄位置编号以及每张投影图像对应的投影编号。所述三维模型重建装置可以获得第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点,即统计第一个所述投影视角下的所有两个所述拍摄位置编号共同对应的格点的数量,获得共同对应的格点的数量最多的两个所述拍摄位置编号,然后根据第一个所述投影视角下的共同对应的格点的数量最多的两个拍摄位置编号对应的所述相机的内参数和外参数以及第一个所述投影视角下的共同对应的格点的数量最多的两个拍摄位置编号共同对应的格点,可以获得上述两个所述拍摄位置编号共同对应的格点的三维空间点,以第一个所述投影视角下所述的两个拍摄位置编号共同对应的格点的三维空间点构成初始的三维空间点云。其中,所述相机的内参数通过张正友相机标定方法获得;所述相机外参数的获取分为两个过程,首先,对于起始位置的两个相机而言,它们之间的外参数是通过分解本质矩阵(essentialmatrix)获得,而后续求加入相机的外参数则是通过pnp(perpective-n-point)方法获取。

例如,所述三维模型重建装置可以调用opencv的triangulatepoints函数,输入第一个所述投影视角下相机c1和相机c2的内参数和外参数,以及相机c1对应的拍摄位置编号和相机c2对应的拍摄位置编号共同对应的格点的像素坐标,可以获得各个相机c1对应的拍摄位置编号和相机c2对应的拍摄位置编号共同对应格点的三维坐标。

s1033、以所述初始的三维空间点云为基础,利用剩余的两个所述拍摄位置编号共同对应的格点,对所述初始三维空间点云进行扩展,获得所述目标物体的三维空间点云;其中,所述剩余的两个所述拍摄位置编号共同对应的格点是任意两个所述拍摄位置编号共同对应的格点中去除所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点之后剩余的格点;具体地,在获得初始的三维空间点云后,以第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点构成的初始的三维空间点云为基础,利用剩余的两个所述拍摄位置编号共同对应的格点,对所述初始的三维空间点云进行点云扩展,即可以依次获取剩余的每个相机拍摄编号对应的格点的三维空间点,并将依次获取的三维空间点添加到初始三维空间点云中,同时剔除重复的三维空间点,从而实现三维空间点云的扩展,最终获得所述目标物体完整的三维空间点云。其中,所述剩余的两个所述拍摄位置编号共同对应的格点是任意两个所述拍摄位置编号共同对应的格点中去除所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点之后剩余的格点。

s1034、基于所述目标物体的三维空间点云,获得所述目标物体的三维模型。

具体地,所述三维模型重建装置在获得所述目标物体的三维空间点云之后,对所述三维空间点云进行三角化,从而获得所述目标物体的三维模型。所述三维空间点云的三角化过程为现有技术,此处不进行赘述。

图5为本发明又一实施例提供的三维模型重建方法的流程示意图,如图5所示,在上述各实施例的基础上,进一步地,以所述初始的三维空间点云为基础,利用剩余的两个所述拍摄位置编号共同对应的格点,对所述初始的三维空间点云进行扩展,获得所述目标物体的三维空间点云包括:

s10331、将所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号作为初始位置编号合集,将除了所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号以外的所述拍摄位置编号作为剩余位置编号合集,并将所述第一个投影视角下的共同对应的格点的数量最多的两个拍摄位置编号共同对应的格点作为初始格点合集;

具体地,所述三维模型重建装置可以将所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号,作为初始位置编号合集。所述三维模型重建装置可以获得所有的拍摄位置编号,从所有的拍摄位置编号中去除所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号,剩余的所述拍摄位置编号可以构成剩余位置编号合集。所述三维模型重建装置将第一个投影视角下的两个拍摄位置编号共同对应的格点作为初始格点合集,同时可以将获取的初始格点合集中每一个格点的投影编号与其所对应的三维空间点云的编号为依据构建一个格点-三维空间点对应关系合集。

s10332、根据预设规则,更新所述初始位置编号合集和所述剩余位置编号合集;其中,所述预设规则为:获取所述剩余位置编号合集中的一个所述拍摄位置编号,并获取该拍摄位置编号与所述初始位置编号合集中一个所述拍摄位置编号共同对应的格点;获取该拍摄位置编号与所述初始位置编号合集中一个拍摄位置编号共同对应的格点,与所述初始格点合集的共同格点;若判断获知所述共同格点的数量大于或者等于3,则基于所述共同格点的三维坐标以及所述共同格点在该拍摄位置编号下的像素坐标,获得该拍摄位置编号对应的相机外参数;基于该拍摄位置编号对应的相机外参数、该拍摄位置编号对应的相机内参数以及该拍摄位置编号对应的剩余格点的像素坐标,获得该拍摄位置编号对应的剩余格点的三维坐标;其中,所述该拍摄位置编号对应的剩余格点为该拍摄位置编号对应的格点中除了所述共同格点以外的格点;将该拍摄位置编号添加到所述初始位置编号合集中,更新所述初始位置编号合集,将该拍摄位置编号从所述剩余位置编号合集中去除,更新所述剩余位置编号合集,将该拍摄位置编号对应的剩余格点添加到所述初始格点合集中,更新所述初始格点合集,将该拍摄位置编号对应的剩余格点的三维坐标添加到所述初始三维点云中,以扩展所述初始三维点云,并将该拍摄位置编号对应的剩余格点的投影编号以及该格点对应的三维空间点的编号添加到格点-三维空间点关系合集中,更新所述格点-三维空间点对应关系合集。

具体地,所述三维模型重建装置根据所述预设规则,可以对所述初始位置编号合集和所述剩余位置编号合集进行更新。所述预设规则为:所述三维模型重建装置可以从所述剩余位置编号合集中获取一个所述拍摄位置编号x,并获取该拍摄位置编号x与拍摄位置编号y共同对应的格点,拍摄位置编号y为所述初始位置编号合集中的一个所述拍摄位置编号。所述三维模型重建装置获取该拍摄位置编号x和拍摄位置编号y共同对应的格点之后,将拍摄位置编号x中对应的格点的投影编号与所述的格点-三维空间点对应关系合集中的投影编号进行比较,如果存在相同的投影编号,则说明该格点已存在对应的三维空间点,并且将该类格点称为共同格点,依次比较完编号x中所有格点后获取拍摄位置编号x中的所有共同格点。所述三维模型重建装置统计所述共同格点的数量,如果所述共同格点的数量大于或者等于3,那么获取所有共同格点所对应的三维空间点,并获取相应共同格点在所述拍摄位置编号x下的像素坐标,所述三维模型重建装置根据上述过程获取的三维空间点与所述拍摄位置编号x中的像素坐标对应关系后,便可以利用solvepnp方法获取所述拍摄位置编号x所对应相机的位姿。所述三维模型重建装置根据该拍摄位置编号对应的相机外参数、该拍摄位置编号对应的相机内参数以及该拍摄位置编号对应的剩余格点的像素坐标,可以获得该拍摄位置编号x对应的剩余格点的三维坐标,其中,所述该拍摄位置编号对应的剩余格点为该拍摄位置编号对应的格点中除了所述共同格点以外的格点。所述三维模型重建装置在获得该拍摄位置编号x对应的剩余格点的三维空间点之后,将该拍摄位置编号x添加到所述初始位置编号合集中,以对所述初始位置编号合集进行更新,并将该拍摄位置编号x从所述剩余位置编号合集中删除,对所述剩余位置编号合集进行更新;还将该拍摄位置编号x对应的剩余格点添加到所述初始格点合集中,以对所述初始格点合集进行更新;并将该拍摄位置编号x对应的剩余格点的三维坐标添加到所述初始三维点云中,并将对应的投影编号相同的格点的三维坐标去除,实现对所述初始的三维点云的扩展;同时,将每个剩余格点的投影编号及其对应的三维空间点的编号保存到格点-三维空间点对应关系合集中。

s10333、若判断获知所述剩余位置编号合集中存在所述拍摄位置编号,则重复执行所述根据预设规则,更新所述初始位置编号合集和所述剩余位置编号合集的步骤;

具体地,所述三维模型重建装置判断所述剩余位置编号合集中在去除该拍摄位置编号x之后,是否还有所述拍摄位置编号,如果还有所述拍摄位置编号,那么重复执行步骤s10332,继续对所述初始三维空间点云进行扩展。可理解的是,当所述剩余位置编号合集中没有所述拍摄位置编号时,说明完成了对所述初始三维空间点云的扩展,获得了所述目标物体的三维空间点云。

在上述各实施例的基础上,进一步地,本发明提供的三维模型重建方法还包括对所述目标物体的三维空间点云的优化,获得所述目标物体优化后的三维空间点云;相应地,所述基于所述目标物体的三维空间点云,获得所述目标物体的三维模型包括:

基于所述目标物体优化后的三维空间点云,获得所述目标物体的三维模型。

具体地,由于在对所述初始三维空间点云进行扩展时,会存在一些误差,而且随着相机拍摄位置数量的增多累计的误差可能会越来越大,为了提高所述目标物体三维重建的精度,所述三维模型重建装置在获得所述目标物体的三维空间点云之后,可以利用集束调整(bundleadjustment,简称ba)算法对所述目标物体的三维空间点云进行优化,由于所述三维空间点云的获得与所述相机的内参数和外参数有关,在本发明中所述相机的内参数通过张正友相机标定方法获得并保持不变,可以利用ba算法优化所述相机的外参数和所述三维空间点云。利用ba算法对所述相机的外参数和所述三维空间点云优化的具体过程为现有技术,此处不进行赘述。所述三维模型重建装置获得优化后的三维空间点云之后,根据优化后的三维空间点云建立所述目标物体的三维模型。根据优化后的三维空间点云建立所述目标物体的三维模型的具体过程与步骤s1034类似,此处不再赘述。

图6为本发明再一实施例提供的三维模型重建方法的流程示意图,如图6所示,在上述各实施例的基础上,进一步地,所述对各个所述单格点投影图像进行格点检测,获得若干数量的格点包括:

s1021、对所述单格点投影图像进行格点检测,获得所述单格点投影图像的第四预设数量的潜在角点;

具体地,所述三维模型重建装置在获得所述第一预设数量所述单格点投影图像之后,可以利用shi-tomasi角点检测算法对所述单格点投影图像进行角点检测,获得所述单格点投影图像的第四预设数量的潜在角点,所述第四预设数量可以为30。其中,所述第四预设数量根据实际经验进行设置,本发明实施例不做限定。

s1022、获得以每个所述潜在角点为中心的预设区域的灰度变化的二次函数,并根据每个所述潜在角点对应的灰度变化的二次函数计算获得每个所述潜在角点对应的实对称矩阵的行列式;

具体地,以所述潜在角点为中心的预设区域的灰度变化可以用二次函数表示为:a1x2+a2y2+a3xy+a4x+a5y+a6=b,其中,a1、a2、a3、a4、a5和a6为所述二次函数的系数,(x,y)为所述预设区域的像素坐标,b表示(x,y)所在位置的灰度值。可以获得包括所述潜在角点的像素坐标在内的所述预设区域内的多个像素点的像素坐标以及对应的灰度值,从而求解出所述二次函数的系数a1、a2、a3、a4、a5和a6。对所述二次函数求二阶导数,可以获得所述潜在角点对应的实对称矩阵其中,rxx为所述二次函数对x求二阶导数的结果,rxy为所述二次函数对先对x求一阶导数,再对y求一阶导数的结果,ryx为所述二次函数对先对y求一阶导数,再对x求一阶导数的结果,ryy为所述二次函数对y求二阶导数的结果。由于可以求得所述二次函数的系数,可以根据所述实对称矩阵求解获得所述实对称矩阵的行列式。所述三维模型重建装置可以获得每个所述潜在角点对应的实对称矩阵的行列式。其中,所述预设区域为所述潜在角点对应的单格点投影图像中的区域,所述预设区域的范围根据实际经验进行设置,本发明实施例不做限定。

s1023、获取所述单格点投影图像的所述第四预设数量的潜在角点对应的实对称矩阵的行列式的最小值,若判断获知所述最小值小于阈值,则将所述最小值对应的潜在角点作为所述单格点投影图像对应的格点。

具体地,所述三维模型重建装置在获得所述单格点投影图像的所述第四预设数量的潜在角点对应的实对称矩阵的行列式之后,获取所述第四预设数量的实对称矩阵的行列式的最小值,然后将所述最小值与阈值进行比较,如果所述最小值小于所述阈值,那么将所述最小值对应的潜在角点作为所述单格点投影图像对应的格点。其中,所述阈值根据实际经验进行设置,本发明实施例不做限定。

在上述各实施例的基础上,进一步地,本发明提供的三维模型重建方法还包括:在对各个所述单格点投影图像进行格点检测,获得若干数量的格点之后,对每个所述格点进行亚像素处理,获得每个所述格点对应的亚像素点;相应地,所述基于所述若干数量的格点对所述目标物体进行三维重建,获得所述目标物体的三维模型包括:

基于所述若干数量的格点对应的亚像素点对所述目标物体进行三维重建,获得所述目标物体的三维模型。

具体地,为了提高格点位置的精度,所述三维模型重建装置在对各个所述单格点投影图像进行格点检测,获得若干数量的格点之后,对每个所述格点进行亚像素处理,获得每个所述格点对应的亚像素点,每个所述格点会有唯一对应的亚像素点。例如可以利用opencv的cornersubpix函数获取所述格点的亚像素点。所述三维模型重建装置在获得各个格点的亚像素点之后,基于所述若干数量的格点对应的亚像素点对目标物体进行三维重建,获得所述目标物体的三维模型。其中,基于所述若干数量的格点对应的亚像素点对目标物体进行三维重建,获得目标物体的三维模型的具体过程与步骤s103类似,此处不再赘述。

图7为本发明一实施例提供的三维模型重建装置的结构示意图,如图7所示,本发明提供的三维模型重建装置包括获取单元701、检测单元702和重建单元703,其中:

获取单元701用于获取目标物体的第一预设数量的单格点投影图像,所述单格点投影图像是基于预设的单格点投影图像采集规则获得的;检测单元702用于对各个所述单格点投影图像进行格点检测,获得若干数量的格点;其中,所述格点与所述单格点投影图像一一对应;重建单元703用于基于所述若干数量的格点对所述目标物体进行三维重建,获得所述目标物体的三维模型。

具体地,基于预设的单格点投影图像采集规则,利用投影仪将单格点融合图像投影到目标物体上,通过多台相机采集所述单格点融合图像投影到所述目标物体上的投影,可以获得第一预设数量的单格点投影图像。获取单元701可以获取所述目标物体的第一预设数量的单格点投影图像。其中,所述单格点融合图像是将与所述投影仪的分辨率大小相同的空白图像和一个预设的单格点图像融合之后获得的;所述相机的数量根据实际需要进行配置,本发明实施例不做限定;所述第一预设数量根据实际需要进行设置,本发明实施例不做限定。可理解的是,所述目标物体是需要进行三维重建的物体。

检测单元702在获得所述第一预设数量的单格点投影图像之后,对各个所述单格点投影图像进行格点检测,获得若干数量的格点,由于所述单格点投影图像可能没有检测出格点,所以所述格点的数量小于或者等于所述单格点投影图像的数量,每个所述格点与一个所述单格点投影图像对应,并且所述格点与所述单格点投影图像是一一对应的。

重建单元703在获得所述若干数量的格点之后,可以根据各个所述格点对应的单格点投影图像对应的投影编号和拍摄位置编号进行格点匹配,获得任意两个所述拍摄位置编号共同对应的格点,然后获取第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点,并获取所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点的三维空间点,构成初始的三维空间点云,接着以所述初始的三维空间点云为基础,利用剩余的两个所述拍摄位置编号共同对应的格点,对所述初始三维空间点云进行扩展,获得所述目标物体的三维空间点云;其中,所述剩余的两个所述拍摄位置编号共同对应的格点是任意两个所述拍摄位置编号共同对应的格点中去除所述第一个所述投影视角下的共同对应的格点的数量最多的两个所述拍摄位置编号共同对应的格点之后剩余的格点;再基于所述目标物体的三维空间点云,获得所述目标物体的三维模型。其中,所述投影编号和拍摄位置编号是预设的。

本发明提供的三维模型重建装置,由于能够基于预设的单格点投影图像采集规则获取目标物体第一预设数量的单格点投影图像,并对各个单格点投影图像进行格点检测,获得若干数量的格点,格点与单格点投影图像一一对应,使每个格点都具有唯一的投影编号,从而极大的降低了格点匹配过程中的误匹配率,然后基于若干数量的该格点对目标物体进行三维重建,减少了三维空间点的错误率,提高了三维模型重建的精度。

本发明提供的三维模型重建装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

图8为本发明一实施例提供的电子设备的实体结构示意图,如图8所示,所述电子设备包括处理器(processor)801、存储器(memory)802和通信总线803;

其中,处理器801、存储器802通过通信总线803完成相互间的通信;

处理器801用于调用存储器802中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取目标物体的第一预设数量的单格点投影图像,所述单格点投影图像是基于预设的单格点投影图像采集规则获得的;对各个所述单格点投影图像进行格点检测,获得若干数量的格点;其中,所述格点与所述单格点投影图像一一对应;基于所述若干数量的格点对所述目标物体进行三维重建,获得所述目标物体的三维模型。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取目标物体的第一预设数量的单格点投影图像,所述单格点投影图像是基于预设的单格点投影图像采集规则获得的;对各个所述单格点投影图像进行格点检测,获得若干数量的格点;其中,所述格点与所述单格点投影图像一一对应;基于所述若干数量的格点对目标物体进行三维重建,获得所述目标物体的三维模型。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取目标物体的第一预设数量的单格点投影图像,所述单格点投影图像是基于预设的单格点投影图像采集规则获得的;对各个所述单格点投影图像进行格点检测,获得若干数量的格点;其中,所述格点与所述单格点投影图像一一对应;基于所述若干数量的格点对所述目标物体进行三维重建,获得所述目标物体的三维模型。

此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,装置,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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