一种通过优化深度图生成全景图的方法及装置
技术领域
本发明实施例涉及图像处理技术领域,尤其涉及一种通过优化深度图生成全景图的方法及装置。
背景技术
对于利用拍摄的图片组成空间的三维立体图,现有技术是用不同彩色照片的特征点直接拼接图片,生成全景图;或者是彩色照片拍摄的相同位置使用深度相机拍摄深度图,利用深度图和彩色照片来拼接全景图。所述深度图是一个二维矩阵,保存每个点到相机的距离,可以通过深度图信息反推出三维点云。
但由于硬件设备精度和拍摄外部环境的问题,在数据采集过程中,有可能有大量点云数据丢失或点云深度信息不够准确,基于这种错误的数据无法生成准确的全景图。
发明内容
本发明实施例提供一种通过优化深度图生成全景图的方法及装置,用以解决现有技术由于硬件设备精度和拍摄外部环境的问题,在数据采集过程中,有可能有大量点云数据丢失或点云深度信息不够准确,基于这种错误的数据无法生成准确的全景图。
第一方面,本发明实施例提供了一种通过优化深度图生成全景图的方法,包括:
在至少一个相机点位采集待测空间的至少一幅深度图;
根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云;
根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型;
根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。
第二方面,本发明实施例提供了一种用于通过优化深度图生成全景图的装置,包括:
深度图采集模块,用于在至少一个相机点位采集待测空间的至少一幅深度图;
三维点云模块,用于根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云;
表面重建模块,用于根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型;
优化模块,用于根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。
第三方面,本发明实施例还提供了一种电子设备,包括:
处理器、存储器、通信接口和通信总线;其中,
所述处理器、存储器、通信接口通过所述通信总线完成相互间的通信;
所述通信接口用于该电子设备的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述程序指令能够执行如下方法:
在至少一个相机点位采集待测空间的至少一幅深度图;
根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云;
根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型;
根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:
在至少一个相机点位采集待测空间的至少一幅深度图;
根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云;
根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型;
根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。
本发明实施例提供的通过优化深度图生成全景图的方法及装置,通过在不同点位采集待测空间的深度图,得到所述待测空间三维点云,再根据通过表面重建算法得到的三角网格模型来校正所有空间点位的三维位置信息,进而优化深度图,从而能够更加准确地得到所述待测空间的全景图。
附图说明
图1为本发明实施例的通过优化深度图生成全景图的方法流程图;
图2为本发明实施例的另一通过优化深度图生成全景图的方法流程图;
图3为本发明实施例的用于通过优化深度图生成全景图的装置结构示意图;
图4为本发明实施例的另一用于通过优化深度图生成全景图的装置结构示意图;
图5示例了一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例的通过优化深度图生成全景图的方法流程图,如图1所示,所述方法包括:
步骤S01、在至少一个相机点位采集待测空间的至少一幅深度图。
在待测空间中根据实际的需要设置多个相机点位进行拍摄,从而可以从各个角度分别拍摄所述待测空间大量的深度图,所述深度图包括有该深度图中每个像素点与所述相机点位的距离。在实际的应用过程中,由于光线效果、玻璃透明效果等因素会导致得到的深度图中像素点与相机点位的距离出现差错,甚至无法得到该距离。
步骤S02、根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云。
根据所有的深度图中每个像素点与对应的相机点位的位置可以得到所述待测空间中所有空间点位的三维位置信息。将所有的空间点位组合可以得到所述待测空间的三维点云。
步骤S03、根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型。
通过表面重建算法可以根据所述三维点云中所有的空间点位的三维位置信息,得到所述待测空间的三角网格模型,相当于通过所有深度图,得到所述待测空间中所有的平面信息。
进一步地,所述表面重建算法为Poisson表面重建算法。
用于进行表面重建算法的方法有很多,例如,Poisson、Greedy PorjectionTriangulation、Marching Cubes、Ear Clipping等,在此不作具体的限定。本发明实施例采用了Poisson表面重建算法,具体的过程如下:
1.三维点云数据的存储,根据采样点集的位置定义八叉树,然后细分八叉树使每个采样点都落在深度为D的叶节点;
2.定义函数空间,对八叉树的每个节点设置空间函数F,它在模型表面附近具有高分辨率,而在远离表面的地方具有低分辨率;
3.向量场计算,把向量场V表达为在这个空间中的函数的线性总和;
4.构造并解泊松方程,采用拉普拉斯矩阵迭代求;
5.表面提取,提取求取的指示函数的等值面,并处理样本点非均匀分布的情况;
最终获得表面重建结果。
步骤S04、根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。
此时,再根据已知的每个相机点位在所述待测空间中的位置信息,就可以对组成该三角网格模型的所有空间点位的三维位置信息进行校正。
通过校正后的所有空间点位,再反推去校正每张深度图中各个像素点与对应的相机点位点的距离,从而对每张深度图都进行了优化。
本发明实施例通过在不同点位采集待测空间的深度图,得到所述待测空间三维点云,再根据通过表面重建算法得到的三角网格模型来校正所有空间点位的三维位置信息,进而优化深度图,从而能够更加准确地得到所述待测空间的全景图。
图2为本发明实施例的另一通过优化深度图生成全景图的方法流程图,如图2所示,在所述步骤S01后所述方法还包括:
步骤S011、在所述相机点位采集至少一幅彩色照片。
在预设的多个相机点位通过深度照相机采集所述待测空间的深度图时,同时在该相机点位通过彩色相机采集对应的彩色照片。
所述步骤S01和步骤S011可以同时进行,也可以按一定的顺序执行,不分先后,在此不作具体限定。
相应地,在所述步骤S04后所述方法还包括:
步骤S05、根据所有的彩色照片和优化后的深度图得到所述待测空间的全景图。
将通过优化的深度图与之前同时采集的彩色照片进行对应拼接,从而就可以得到所述待测空间的全景图。
本发明实施例通过在相同的相机点位采集彩色照片,再与优化后的深度图进行拼接,从而能够更加准确地得到所述待测空间的全景图。
基于上述实施例,进一步地,所述步骤S02具体为:
根据每张深度图中的像素点和所述相机点位的位置得到与所述像素点对应的空间点位的三维位置信息;
将得到的所有空间点位的三维位置信息进行融合得到所述三维点云。
通过每张深度图中的信息,即各个像素点与相机点位的位置关系,以及所述每个相机点位的位置,就可以得到与每个像素点相同的空间点位的三维位置信息。
将通过对所有深度图分析的得到的空间点位进行配准、融合,就可以得到所述待测空间中所有空间点位的三维位置信息。在进行配准、融合的过程中需要对所有的空间点位的三维位置信息进行优化、消除其中的噪声,并填补某些空间点位的空洞。
本发明实施例通过对每张深度图的分析得到所述待测空间中所有空间点位的三维位置信息,再优化深度图,从而能够更加准确地得到所述待测空间的全景图。
图3为本发明实施例的用于通过优化深度图生成全景图的装置结构示意图,如图3所示,所述装置包括:深度图采集模块10、三维点云模块11、表面重建模块12和优化模块13,其中,
所述深度图采集模块10用于在至少一个相机点位采集待测空间的至少一幅深度图;所述三维点云模块11用于根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云;所述表面重建模块12用于根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型;所述优化模块13用于根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。具体地:
所述深度图采集模块10在待测空间中根据实际的需要设置多个相机点位进行拍摄,从而可以从各个角度分别拍摄所述待测空间大量的深度图,所述深度图包括有该深度图中每个像素点与所述相机点位的距离。在实际的应用过程中,由于光线效果、玻璃透明效果等因素会导致得到的深度图中像素点与相机点位的距离出现差错,甚至无法得到该距离。
三维点云模块11,根据由所述深度图采集模块10采集到的所有的深度图中每个像素点与对应的相机点位的位置可以得到所述待测空间中所有空间点位的三维位置信息。所述三维点云模块11将所有的空间点位组合可以得到所述待测空间的三维点云,并发送给所述表面重建模块12。
所述表面重建模块12通过表面重建算法可以根据所述三维点云中所有的空间点位的三维位置信息,得到所述待测空间的三角网格模型,相当于通过所有深度图,得到所述待测空间中所有的平面信息。
进一步地,所述表面重建算法为Poisson表面重建算法。
用于进行表面重建算法的方法有很多,在此不作具体的限定,例如,本发明实施例采用了Poisson表面重建算法。
此时,所述优化模块13再根据已知的每个相机点位在所述待测空间中的位置信息,就可以对组成该三角网格模型的所有空间点位的三维位置信息进行校正。
通过校正后的所有空间点位,所述优化模块13再反推去校正每张深度图中各个像素点与对应的相机点位点的距离,从而对每张深度图都进行了优化。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过深度图采集模块10在不同点位采集待测空间的深度图,由三维点云模块11得到所述待测空间三维点云,再由所述表面重建模块12根据通过表面重建算法得到的三角网格模型来校正所有空间点位的三维位置信息,进而所述优化模块14优化深度图,从而能够更加准确地得到所述待测空间的全景图。
图4为本发明实施例的另一用于通过优化深度图生成全景图的装置结构示意图,如图4所示,所述装置包括:深度图采集模块10、三维点云模块11、表面重建模块12、优化模块13、彩图采集模块14和全景图拼接模块15,其中,
所述彩图采集模块14用于在所述相机点位采集至少一幅彩色照片;所述全景图拼接模块15用于根据所有的彩色照片和优化后的深度图得到所述待测空间的全景图。具体地:
所述彩图采集模块14在预设的多个相机点位通过深度照相机采集所述待测空间的深度图时,同时在该相机点位通过彩色相机采集对应的彩色照片并发送给所述全景图拼接模块15。
所述全景图拼接模块15将通过所述优化模块13优化的深度图与彩色照片进行对应拼接,从而就可以得到所述待测空间的全景图。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过彩图采集模块14在相同的相机点位采集彩色照片,再由全景图拼接模块15与优化后的深度图进行拼接,从而能够更加准确地得到所述待测空间的全景图。
基于上述实施例,进一步地,所述三维点云模块具体用于:
根据每张深度图中的像素点和所述相机点位的位置得到与所述像素点对应的空间点位的三维位置信息;
将得到的所有空间点位的三维位置信息进行融合得到所述三维点云。
所述三维点云模块11通过每张深度图中的信息,即各个像素点与相机点位的位置关系,以及所述每个相机点位的位置,就可以得到与每个像素点相同的空间点位的三维位置信息。
所述三维点云模块11将通过对所有深度图分析的得到的空间点位进行配准、融合,就可以得到所述待测空间中所有空间点位的三维位置信息。在进行配准、融合的过程中需要对所有的空间点位的三维位置信息进行优化、消除其中的噪声,并填补某些空间点位的空洞。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过三维点云模块11对每张深度图的分析得到所述待测空间中所有空间点位的三维位置信息,再优化深度图,从而能够更加准确地得到所述待测空间的全景图。图5示例了一种电子设备的实体结构示意图,如图5所示,该服务器可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:在至少一个相机点位采集待测空间的至少一幅深度图;根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云;根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型;根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:在至少一个相机点位采集待测空间的至少一幅深度图;根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云;根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型;根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:在至少一个相机点位采集待测空间的至少一幅深度图;根据所有的深度图得到所述待测空间中所有空间点位的三维位置信息以组成三维点云;根据所述三维点云,通过表面重建算法得到所述待测空间的三角网格模型;根据所述三角网格模型和所述相机点位去校正所有空间点位的三维位置信息,以得到优化后的深度图。
本领域普通技术人员可以理解:此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。