一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于图形处理器的三维重建方法及装置与流程

2021-11-05 20:18:00 来源:中国专利 TAG:


1.本技术涉及仿真显示技术领域,尤其涉及一种基于图形处理器的三维重建方法及装置。


背景技术:

2.三维重建的英文术语名称是3d reconstruction。三维重建是指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。三维重建的效果,将直接影响用户体验。


技术实现要素:

3.本技术实施例提供了一种基于图形处理器的三维重建方法及装置,以至少部分的解决上述技术问题。
4.本技术实施例采用下述技术方案:
5.第一方面,本技术实施例提供一种基于图形处理器的三维重建方法,所述方法包括:
6.确定指定相机的数量,并确定图形处理器的可用线程的数量,所述指定相机用于对指定环境进行图像采集,不同指定相机对指定环境进行图像采集时的位姿不同,所述指定相机采集的图像中包括若干个二维点;
7.根据指定相机的数量,对各可用线程进行分组,得到若干个线程组,使得线程组与指定相机一一对应;
8.针对每个线程组,将所述线程组对应的指定相机采集的图像中的二维点,分配至所述线程组中的各线程,使得各线程对分配到的二维点进行处理;
9.根据各个线程组各自的处理结果,执行三维重建。
10.在本说明书一个可选的实施例中,得到的各线程组中,任意两个线程组中的线程的数量相同。
11.在本说明书一个可选的实施例中,将所述线程组对应的指定相机采集的图像中的二维点,分配至所述线程组中的各线程,包括:
12.获取所述指定环境中预设的三维点的数量,不同的三维点在所述指定环境中的坐标不同,所述图像是对各三维点进行采集得到的,使得每个二维点对应于一个三维点;
13.将各三维点分配至所述线程组中的各线程,使得每个线程对其分配到的三维点对应的二维点进行处理。
14.在本说明书一个可选的实施例中,所述线程组中的任意两个线程分配到的三维点的数量相同。
15.在本说明书一个可选的实施例中,所述处理结果是通过以下步骤得到的:
16.获取所述线程组对应的指定相机的位姿;
17.根据指定相机的位姿,对分配到的二维点进行处理,得到所述二维点在所述位姿下的坐标,作为参照坐标;
18.针对每个参照坐标,判断各二维点中是否存在坐标与所述参照坐标的差异不大于预设阈值的二维点,以得到处理结果。
19.在本说明书一个可选的实施例中,所述处理结果包括多个子处理结果,所述子处理结果与所述二维点一一对应;根据各个线程组各自的处理结果,执行三维重建,包括:
20.针对每个子处理结果,若所述子处理结果表示出所述子处理结果对应的二维点的参照坐标与至少一个二维点的坐标的差异不大于预设阈值,则将所述子处理结果对应的二维点,确定为可用点;
21.根据得到的各可用点,执行三维重建。
22.在本说明书一个可选的实施例中,针对每个线程组,将所述线程组对应的指定相机采集的图像中的二维点,分配至所述线程组中的各线程之后,所述方法还包括:
23.若检测到完成对其分配到的二维的处理的线程组,则将所述线程组确定为可用线程组,重新为所述可用线程组分配二维点。
24.第二方面,本技术实施例还提供一种基于图形处理器的三维重建装置,用于实现前述第一方面中的任一种方法。
25.第三方面,本技术实施例还提供一种电子设备,包括:
26.处理器;以及
27.被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述第一方面中的任一种方法。
28.第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述第一方面中的任一种方法。
29.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:本说明书中的三维重建过程对重建过程采用的二维点进行处理,能够有效的保障三维重建的效果。并且,本说明书中的过程在对二维点进行处理时,采用了图形处理器,图像处理器包括多个线程,能够有效地提高处理效率。此外,本说明书中的过程还对图形处理器的可用线程进行了分组,并在得到的线程组和指定相机之间建立对应关系,有利于对指定相机采集到的二维点进行分配。
附图说明
30.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
31.图1为本说明书实施例提供的一种基于图形处理器的三维重建过程示意图;
32.图2为本说明书实施例提供的一种全息展示场景示意图;
33.图3为本说明书实施例提供的一种基于图形处理器的三维重建装置结构示意图;
34.图4为本技术实施例中一种电子设备的结构示意图。
具体实施方式
35.下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本技术能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其它元件、材料、方法所替代。在某些情况下,本技术相关的一些操作并没有在说明书中显示或者描述,这是为了避免本技术的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
36.另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
37.本文中为部件所编序号本身,例如“第二”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本技术所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
38.以下结合附图,详细说明本技术各实施例提供的技术方案。
39.本说明书中的基于图形处理器的三维重建方法,可以包括以下步骤:
40.s100:确定指定相机的数量,并确定图形处理器的可用线程的数量,所述指定相机用于对指定环境进行图像采集,不同指定相机对指定环境进行图像采集时的位姿不同,所述指定相机采集的图像中包括若干个二维点。
41.在本说明书中的三维重建过程对涉及的指定相机的数量不做具体限制。可选地,指定相机的数量可以是两个或两个以上。
42.本说明书中的指定相机可以是具有物理结构的实体相机,也可以是对应于用户视点的虚拟相机。本说明书中的可用线程是指当前时刻未执行数据处理的线程,即,空闲的线程。
43.其中,图形处理器是gpu。图形处理器同时处理数据中所有的点加快计算速度。相对于中央处理器(cpu),gpu的优势在于可以产生大量的线程,大量并行计算时,能减少总计算时间。
44.本说明书中的指定环境可以根据实际的需求确定。示例性的,指定环境可以是某一房间,或者某一房间中的某一区域。
45.在本说明书中的基于图形处理器的三维重建过程应用于全息显示技术领域时,指定环境可以是全息沙盘(沙盘式显示装置)所处的环境,示例性的如图2所示。在该示例中,本说明书中的过程的执行主体可以是全息沙盘所属的全息展示系统的控制模块。
46.s102:根据指定相机的数量,对各可用线程进行分组,得到若干个线程组,使得线程组与指定相机一一对应。
47.具体地,可以将指定相机的数量确定为指定数量,将可用线程划分为指定数量个线程组。
48.可见,通过本说明书中的基于图形处理器的三维重建过程,能够在线程组和指定相机之间建立对应关系,实现图形处理的处理资源在各指定相机间的合理分配。
49.在本说明书一个可选的实施例中,得到的各线程组中,任意两个线程组中的线程的数量相同。
50.示例性的,例如20个线程组,每一个线程组有64个线程,总共有64
×
20=1280个线程。
51.s104:针对每个线程组,将所述线程组对应的指定相机采集的图像中的二维点,分配至所述线程组中的各线程,使得各线程对分配到的二维点进行处理。
52.本说明书中,线程组对二维点执行的处理,旨在使得各二维点满足三维重建所需的数据要求,和/或从各二维点中筛选出可以用于三维重建的二维点。
53.在本说明书一个可选的实施例中,若检测到完成对其分配到的二维的处理的线程组,则将所述线程组确定为可用线程组,重新为所述可用线程组分配二维点。
54.由于实际场景中,指定相机对指定环境执行的图像采集可能是随时间延续的,也就是说,在实际的应用场景中,有可能存在指定相机采集的图像源源不断的现象。为能够及时的对采集得到的各图像中的二维点进行处理。在本说明书一个可选的实施例中,若检测到完成对其分配到的二维的处理的线程组,则将所述线程组确定为可用线程组,重新为所述可用线程组分配二维点。
55.s106:根据各个线程组各自的处理结果,执行三维重建。
56.在通过前述步骤得到可以用于三维重建的二维点对应的处理结果之后,即可以采用处理结果。
57.在本说明书一个可选的实施例中,所述处理结果包括多个子处理结果,所述子处理结果与所述二维点一一对应。可以针对每个子处理结果,若所述子处理结果表示出所述子处理结果对应的二维点的参照坐标与至少一个二维点的坐标的差异不大于预设阈值,则将所述子处理结果对应的二维点,确定为可用点;根据得到的各可用点,执行三维重建。
58.由前述内容可知,在本说明书中,线程组包括若干个线程。为实现线程组中的各线程对二维点的有效处理,在本说明书一个可选的实施例中,预先为指定确定出若干个三维点。由于指定环境为某一空间,则指定环境中的三维点可以通过三维坐标表征。可选地,以各三维点中任意一个三维点作为目标点,与该目标点相邻的其他三维点,各自至该目标点的距离相等。在前述的全息显示场景中,用于确定三维坐标的三维坐标系的原点在全息沙盘的中心。
59.然后,获取所述指定环境中预设的三维点的数量,不同的三维点在所述指定环境中的坐标不同,所述图像是对各三维点进行采集得到的,使得每个二维点对应于一个三维点。将各三维点分配至所述线程组中的各线程,使得每个线程对其分配到的三维点对应的二维点进行处理。
60.在本说明书一个可选的实施例中,将二维点分配至线程时所采用的分配方式可以是平均分配。
61.可选地,指定环境中预设的三维点的数量与所述指定相机的数量负相关,和/或与所述图形处理器的线程的数量正相关,和/或与指定相机的帧率负相关。
62.示例性的,例如,每一个线程组有64个线程,场景中有256个3d点,每个线程要负责对应于4个三维点的二维点的处理。
63.在本说明书一个可选的实施例中,线程针对二维点的处理过程如下:
64.获取所述线程组对应的指定相机的位姿;根据指定相机的位姿,对分配到的二维点进行处理,得到所述二维点在所述位姿下的坐标,作为参照坐标。
65.针对每个参照坐标,判断各二维点中是否存在坐标与所述参照坐标的差异不大于预设阈值的二维点,若判断结果为是,则将该二维点确定为可用点;若判断结果为否,则将该二维点确定为不可用点。其中,针对一二维点的判断结果即为该二维点对应的子处理结果。各子处理结果构成集合,即为处理结果。
66.然后,根据得到的各可用点,执行三维重建。
67.可见,本说明书中的基于图形处理器的三维重建过程,一方面能够实现三维重建,另一方面,还能够在重建过程中对各二维点进行校验,以避免误差较大的点影响重建的效果,进而改善用户体验。
68.在本说明书一个可选的实施例中,还可以设置线程数量上限值,使得得到的每个线程组中的线程的数量不超过线程数量上限值。线程数量上限值可以根据指定相机的帧率确定,线程数量上限值与指定相机的帧率正相关。
69.基于同样的思路,本说明书实施例还提供了对应于图1所示部分过程的一种基于图形处理器的三维重建装置。如图3所示,所述一种基于图形处理器的三维重建装置可以包括以下模块中的一个或多个:
70.数量确定模块300,配置为:确定指定相机的数量,并确定图形处理器的可用线程的数量,所述指定相机用于对指定环境进行图像采集,不同指定相机对指定环境进行图像采集时的位姿不同,所述指定相机采集的图像中包括若干个二维点。
71.线程组确定模块302,配置为:根据指定相机的数量,对各可用线程进行分组,得到若干个线程组,使得线程组与指定相机一一对应。
72.第一分配模块304,配置为:针对每个线程组,将所述线程组对应的指定相机采集的图像中的二维点,分配至所述线程组中的各线程,使得各线程对分配到的二维点进行处理。
73.三维重建模块306,配置为:根据各个线程组各自的处理结果,执行三维重建。
74.在本说明书一个可选的实施例中,得到的各线程组中,任意两个线程组中的线程的数量相同。
75.在本说明书一个可选的实施例中,第一分配模块304,具体配置为:获取所述指定环境中预设的三维点的数量,不同的三维点在所述指定环境中的坐标不同,所述图像是对各三维点进行采集得到的,使得每个二维点对应于一个三维点;
76.将各三维点分配至所述线程组中的各线程,使得每个线程对其分配到的三维点对应的二维点进行处理。
77.在本说明书一个可选的实施例中,所述线程组中的任意两个线程分配到的三维点的数量相同。
78.在本说明书一个可选的实施例中,所述装置包括处理模块,所述处理模块配置为:获取所述线程组对应的指定相机的位姿;根据指定相机的位姿,对分配到的二维点进行处理,得到所述二维点在所述位姿下的坐标,作为参照坐标;针对每个参照坐标,判断各二维点中是否存在坐标与所述参照坐标的差异不大于预设阈值的二维点,以得到处理结果。
79.在本说明书一个可选的实施例中,所述处理结果包括多个子处理结果,所述子处
理结果与所述二维点一一对应。
80.在本说明书一个可选的实施例中,三维重建模块306具体配置为:针对每个子处理结果,若所述子处理结果表示出所述子处理结果对应的二维点的参照坐标与至少一个二维点的坐标的差异不大于预设阈值,则将所述子处理结果对应的二维点,确定为可用点;根据得到的各可用点,执行三维重建。
81.在本说明书一个可选的实施例中,所述装置还包括第二分配模块,所述第二分配模块配置为:若检测到完成对其分配到的二维的处理的线程组,则将所述线程组确定为可用线程组,重新为所述可用线程组分配二维点。
82.能够理解,上述基于图形处理器的三维重建装置,能够实现前述实施例中提供的由基于图形处理器的三维重建装置执行的全息展示过程的各个步骤,关于基于图形处理器的三维重建方法的相关阐释均适用于基于图形处理器的三维重建装置,此处不再赘述。
83.图4是本技术的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random

access memory,ram),也可能还包括非易失性存储器(non

volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
84.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
85.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
86.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成一种基于图形处理器的三维重建装置。处理器,执行存储器所存放的程序,并具体用于执行前述任意一种全息展示过程。
87.上述如本技术图1所示实施例揭示的一种基于图形处理器的三维重建装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器
等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
88.该电子设备还可执行图1中基于图形处理器的三维重建装置执行的至少部分方法步骤,并实现一种基于图形处理器的三维重建装置,本技术实施例在此不再赘述。
89.本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中一种基于图形处理器的三维重建装置执行的方法,并具体用于执行前述的任意一种基于图形处理器的三维重建方法。
90.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
91.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
92.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
93.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
94.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
95.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
96.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算
机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
97.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
98.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
99.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献