全息影像生成方法、装置、设备及计算机可读存储介质与流程

文档序号:28634287发布日期:2022-01-26 16:08阅读:201来源:国知局
全息影像生成方法、装置、设备及计算机可读存储介质与流程

1.本技术实施例涉及全息显示领域,涉及但不限于一种全息影像生成方法、装置、设备及计算机可读存储介质。


背景技术:

2.全息三维显示技术,是指通过裸眼即可观测三维立体信息。但是,由于三维立体模型尺寸和分辨率的需求的提高,导致全息图的计算过程中需要计算的数据量成倍增加,使得全息图计算时间成为发展瓶颈。并且,由于全息图计算时间较长,目前还主要是静态显示,没有过动态显示的方案。
3.相关技术中,主要是通过单个图形处理器(gpu,graphics processing unit)进行加速计算,得到单幅全息图,或者,是利用多个gpu进行加速计算,得到单幅全息图,也就是说,相关技术中均是出于对于静态单幅全息图的加速计算,而并没有有效地对动态全息影像进行加速计算的方法。


技术实现要素:

4.本技术实施例提供一种全息影像生成方法、装置、设备及计算机可读存储介质,采用多个图像处理单元依次对多幅图像进行全息处理,生成动态全息影像,能够提高全息处理的效率,有效地实现了对动态全息影像进行加速计算。
5.本技术实施例的技术方案是这样实现的:
6.第一方面,本技术实施例提供一种全息影像生成方法,包括:获取至少两幅图像和每一图像对应的时间戳;确定出用于处理所述至少两幅图像的至少两个图像处理单元;按照所述时间戳的先后顺序,依次将每一所述图像输入至一个图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图;依次将每一所述图像的所述全息图输入至空间光调制器中,得到所述全息影像。
7.第二方面,本技术实施例提供一种全息影像生成装置,包括:获取模块,用于获取至少两幅图像和每一图像对应的时间戳;确定模块,用于确定出用于处理所述至少两幅图像的至少两个图像处理单元;第一输入模块,用于按照所述时间戳的先后顺序,依次将每一所述图像输入至一个图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图;第二输入模块,用于依次将每一所述图像的所述全息图输入至空间光调制器中,得到所述全息影像。
8.第三方面,本技术实施例提供一种全息影像生成设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的方法。
9.第四方面,本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现上述的方法。
10.本技术实施例中,获取至少两幅图像和每一图像对应的时间戳;并确定出用于处理至少两幅图像的至少两个图像处理单元;然后按照所述时间戳的先后顺序,依次将每一
所述图像输入至一个图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图,进而得到全息影像。如此,由于采用多个图像处理单元依次对多幅图像进行全息处理,生成动态全息影像,能够提高全息处理的效率,有效地实现了对动态全息影像进行加速计算。
附图说明
11.图1a是本技术实施例提供的全息影像生成方法的一个可选的流程示意图;
12.图1b是本技术实施例提供的全息影像生成方法的应用场景示意图;
13.图2是本技术实施例提供的全息影像生成方法的一个可选的流程示意图;
14.图3是本技术实施例提供的全息影像生成方法的一个可选的流程示意图;
15.图4是本技术实施例提供的全息影像生成方法中层析法的一个可选的流程示意图;
16.图5是本技术实施例提供的全息影像生成方法中层析法的一个可选的流程示意图;
17.图6是本技术实施例提供的一个gpu中线程块的分布示意图;
18.图7是本技术实施例提供的全息影像生成方法中层析法的一个可选的流程示意图;
19.图8是本技术实施例提供的全息影像生成方法的一个可选的流程示意图;
20.图9是本技术实施例提供的基于层析法利用多gpu并行计算生成动态全息影像的流程示意图;
21.图10是本技术实施例提供的gpu的流计算处理过程示意图;
22.图11是本技术实施例提供的全息影像生成方法的一种可选的流程示意图;
23.图12是本技术实施例提供的层析法的原理图;
24.图13是本技术实施例提供的计算速度提升结果对比图;
25.图14是本技术实施例提供的全息影像生成装置的组成结构示意图;
26.图15是本技术实施例提供的全息影像生成设备的组成结构示意图。
具体实施方式
27.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
28.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本技术实施例所使用的所有的技术和科学术语与属于本技术实施例的技术领域的技术人员通常理解的含义相同。本技术实施例所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
29.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
30.1)全息影像技术:全息技术是利用干涉和衍射原理记录并再现物体真实的三维图
像的记录和再现的技术。其第一步是利用干涉原理记录物体光波信息,此即拍摄过程:被摄物体在激光辐照下形成漫射式的物光束;另一部分激光作为参考光束射到全息底片上,和物光束叠加产生干涉,把物体光波上各点的位相和振幅转换成在空间上变化的强度,从而利用干涉条纹间的反差和间隔将物体光波的全部信息记录下来。
31.2)层析法:是指将3d物体沿深度方向分层,将各层面的二维截面图分别在全息面成像的复振幅分布相加,以此作为原三维物体的复振幅分布,再加入参考光,通过菲涅尔近似法计算即可制成一张全物场的全息图。
32.为了更好地理解本技术实施例中提供的图像处理方法,首先对相关技术中的图像处理方法及存在的问题进行说明:
33.全息三维显示技术,通过裸眼即可观测三维立体信息。但是,由于三维立体模型尺寸和分辨率的需求的提高,导致全息图的计算过程中需要计算的数据量成倍增加,使得全息图计算时间成为发展瓶颈。并且由于全息图计算时间较长,目前还主要是静态显示,没有过动态显示的方案。
34.目前在提高计算速度方面主要两种途径,一种是软件方面,通过提高改进算法,降低算法的复杂度来达到降低计算量的目的。另一种是改变硬件设备,利用其它高性能架构的硬件设备的进步进行性能加速,而采用硬件设备比如gpu进行提速,又主要包括三种方法:点云法和三角面片法,目前主要的是点云法用的较多。
35.但是,不管是软件方面还是硬件设备方面的改进,都存在以下至少一种问题:第一,相关技术主要是通过单gpu进行加速,以计算出单幅全息图,或者,利用多gpu进行加速,以计算出单幅全息图,即,都是出于对于静态单幅全息图的计算,而并没有对动态全息映像的加速计算;第二,相关技术都是基于点云法进行计算,那么,对于不同的三维物体,其计算的数据量是变化的,这样就会导致每幅全息图计算时间也是不可预估的;第三,当前研究都是主要针对于单幅静态全息图的生成,没有对动态全息图做进一步研究。
36.基于相关技术中所存在的上述至少一个问题,本技术实施例提出一种利用多gpu加速生成动态全息影像的方法,可以基于多gpu计算动态三维模型数据,生成固定刷新频率的动态全息影像。通过获取至少两幅图像和每一图像对应的时间戳;并确定出用于处理至少两幅图像的至少两个图像处理单元(例如gpu);然后按照所述时间戳的先后顺序,依次将每一所述图像输入至一个图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图,进而得到全息影像。如此,由于采用多个图像处理单元依次对多幅图像进行全息处理,生成动态全息影像,能够提高全息处理的效率,有效地实现了对动态全息影像进行加速计算。
37.下面说明本技术实施例提供的全息影像生成设备的示例性应用,本技术实施例提供的全息影像生成设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。下面,将说明全息影像生成设备实施为服务器时的示例性应用。
38.参见图1a,图1a是本技术实施例提供的全息影像生成方法的一个可选的流程示意图,将结合图1a示出的步骤进行说明。
39.步骤s101,获取至少两幅图像和每一图像对应的时间戳。
40.这里,所述至少两幅图像是用于生成最终的全息影像的图像,可以通过终端上的图像采集设备采集所述图像,也可以在任意网站上下载所述图像。
41.本技术实施例中,服务器在获取所述图像的同时,还获取每一图像对应的时间戳,其中,至少两幅图像中的每一图像对应一时间戳,且每一图像的时间戳与其他图像的时间戳不同。所述时间戳可以是服务器获取到图像的时间,或者,也可以是服务器在获取到图像之后基于一定的时间戳规则,给每一图像所添加的时间戳,或者,也可以是所述至少两幅图像之间具有时间上的先后顺序,则按照该时间先后顺序对应形成的每一图像的时间戳。所述时间戳用于确定每一图像相对于其他图像在进行后续图像处理过程中的先后顺序。
42.步骤s102,确定出用于处理所述至少两幅图像的至少两个图像处理单元。
43.这里,图像处理单元是用于对图像进行全息处理的,在一些实施例中,图像处理单元可以是gpu,那么,本技术实施例的方法则是通过多个gpu对至少两幅图像进行全息处理。
44.本技术实施例中,所述图像处理单元的数量可以小于图像的数量,也可以等于图像的数量。服务器根据当前的硬件条件,确定出当前能够完成对图像全息处理的图像处理单元。
45.在一些实施例中,在确定出至少两个图像处理单元之后,还可以为所述至少两个图像处理单元进行编号,如此,在后续的图像全息处理过程中,则可以按照图像处理单元编号的顺序,依次调用每一图像处理单元来实现图像的全息处理。
46.步骤s103,按照所述时间戳的先后顺序,依次将每一所述图像输入至一个图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图。
47.这里,按照所述时间戳的先后顺序,每次将一个图像输入至一个图像处理单元中,通过该图像处理单元对该图像进行全息处理。当图像处理单元的数量等于图像的数量时,每一图像处理单元对一个图像进行全息处理;当图像处理单元的数量小于图像的数量时,首先按照图像处理单元的编号依次遍历完所有的图像处理单元,让所有的图像处理单元实现对部分图像的全息处理过程,然后,再从初始编号开始,继续循环遍历所有图像处理单元,为每一图像处理单元分配图像完成全息处理,直至完成对所有的图像的全息处理。本技术实施例通过多个图像处理单元对图像进行全息处理的方案,可以通过多个图像处理单元并行对多副图像同时进行处理,从而极大的提高图像处理的效率。
48.本技术实施例中,一个图像处理单元对一副图像进行全息处理之后,形成全息图,全息图是一种三维图像,它与传统的照片有很大的区别,传统的照片呈现的是真实的物理图像,而全息图则包含了被记录物体的尺寸、形状、亮度和对比度等信息,这些信息储存在一个很微小但却很复杂的干涉模式中,这个干涉模式是由激光产生的。
49.本技术实施例的全息处理过程采用全息技术,全息技术是能够实现真实的三维图像的记录和再现的技术。和其他三维“图像”不一样的是,全息图提供了“视差”。视差的存在使得观察者可以通过前后、左右和上下移动来观察图像的不同形象,就好像有个真实的物体在那里一样。
50.步骤s104,依次将每一所述图像的所述全息图输入至空间光调制器中,得到所述全息影像。
51.这里,空间光调制器(slm,spatial light modulator)是指在主动控制下,它可以通过液晶分子调制光场的某个参量,例如通过调制光场的振幅,通过折射率调制相位,通过
偏振面的旋转调制偏振态,或是实现非相干—相干光的转换,从而将一定的信息写入光波中,达到光波调制的目的的器件。
52.本技术实施例中,可以按照图像的时间戳的先后顺序,依次将每一图像进行全息处理后所得到的全息图输入至空间光调制器中,如此,所得到的全息影像也是按照图像的时间戳的先后顺序所形成的影像,从而实现动态的显示三维图像的全息影像。
53.图1b是本技术实施例提供的全息影像生成方法的应用场景示意图,如图1b所示,用于实现全息影像生成方法的全息影像生成系统10包括终端100、网络200和服务器300,用户通过终端100获取用于生成全息影像的至少两幅图像和每一图像对应的时间戳,并将至少两幅图像和每一图像的时间戳通过网络200发送给服务器300,以使得服务器300确定出用于处理所述至少两幅图像的至少两个图像处理单元;按照所述时间戳的先后顺序,依次将每一所述图像输入至一个图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图;依次将每一所述图像的所述全息图输入至空间光调制器中,得到所述全息影像。在得到全息影像之后,服务器300通过网络200将全息影像发送给终端100,终端100可以在当前界面100-1上播放所述全息影像。
54.本技术实施例提供的全息影像生成方法,获取至少两幅图像和每一图像对应的时间戳;并确定出用于处理至少两幅图像的至少两个图像处理单元;然后按照所述时间戳的先后顺序,依次将每一所述图像输入至一个图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图,进而得到全息影像。如此,由于采用多个图像处理单元依次对多幅图像进行全息处理,生成动态全息影像,能够提高全息处理的效率,有效地实现了对动态全息影像进行加速计算。
55.在一些实施例中,全息影像生成方法可以应用于全息影像生成系统中,所述全息影像生成系统包括终端(即图像采集设备)、服务器、图像处理单元(本技术实施例以图像处理单元为gpu为例进行说明)和空间光调制器,终端进行图像采集,以得到至少两幅图像,并将采集到的至少两幅图像发送给服务器,服务器控制至少两个gpu对所述至少两幅图像进行全息影像生成。
56.图2是本技术实施例提供的全息影像生成方法的一个可选的流程示意图,如图2所示,方法包括以下步骤:
57.步骤s201,终端按照时间先后顺序,依次采集至少两幅图像。
58.这里,终端可以通过自身的图像采集单元(例如,摄像头)按照时间先后顺序依次采集至少两幅图像,或者,终端按照时间先后顺序从任意网站上依次下载至少两幅图像,或者,终端按照时间先后顺序依次接收其他终端发送的至少两幅图像。当然,在其他实施例中,终端还可以通过其他任意一种方式采集图像,本技术实施例不做限定。
59.步骤s202,终端将至少两幅图像和每一图像对应的时间戳发送给服务器。
60.这里,所述时间戳可以对应于终端采集图像的时间,或者,所述时间戳也可以是终端在获取到图像之后,为每一图像按照获取的时间先后顺序所添加的,或者,也可以是用户按照想要形成的全息影像所播放的图像的顺序,通过终端为每一图像设置的时间戳。
61.步骤s203,服务器确定出用于处理所述至少两幅图像的至少两个gpu。
62.步骤s204,服务器按照所述时间戳的先后顺序,依次将每一所述图像输入至一个gpu中。
63.举例来说,所确定的gpu的数量为3,分别为gpu1、gpu2和gpu3,待处理的图像的数量为5,分别为图像1、图像2、图像3、图像4和图5,且图像1至图像5是按照时间戳的先后顺序依次编号的,那么,可以将图像1输入至gpu1中,将图像2输入至gpu2中,将图像3输入至gpu3中,先通过gpu1至gpu3对图像1至图像3先进行全息处理,待gpu1至gpu3处理完成之后,再将图像4输入至gpu1中,将图像5输入至gpu2中,如此,循环的向gpu中输入图像,直至输入完全部的图像。
64.步骤s205,gpu对所述图像进行全息处理,得到所述图像的全息图。
65.本技术实施例中,gpu采用全息技术,对图像进行全息计算,以完成对图像的全息处理,得到图像的全息图。
66.步骤s206,服务器依次控制gpu将每一所述图像的所述全息图输入至空间光调制器中。
67.这里,当gpu完成对图像的全息处理得到全息图之后,由于gpu对每一图像的处理时间相同,因此,可以按照时间戳的先后顺序依次形成全息图,则在形成全息图之后,可以按照图像的时间戳先后顺序依次将对应处理得到的全息图输入至空间光调制器中。
68.步骤s207,空间光调制器对所述至少两幅图像中的每一图像的全息图进行空间上的光束调制,得到与所述至少两幅图像对应的全息影像。
69.这里,空间光调制器在获取到全息图之后,对全息图进行空间上的光束调制,如此,可以将图像的信息加载到一维或二维的光场中。
70.步骤s208,空间光调制器将所述全息影像发送给终端。
71.步骤s209,终端在当前界面上动态的显示所述全息影像。
72.在一些实施例中,终端在接收到全息影像之后,可以在自身的当前界面上显示全息影像,也可以将全息影像投影至特定的显示屏幕或显示幕布上,实现对全息影像的播放。
73.本技术实施例提供的全息影像生成方法,终端、服务器、gpu和空间光调制器共同协作完成全息影像的生成和生成后的播放过程,由于在生成全息影像的过程中,是通过多个gpu同时对多个图像进行处理,如此,由于采用多个gpu同时对多幅图像进行全息处理,生成动态全息影像,能够提高全息处理的效率,有效地实现了对动态全息影像进行加速计算。
74.图3是本技术实施例提供的全息影像生成方法的一个可选的流程示意图,如图3所示,在一些实施例中,在步骤s103之前,还包括以下步骤:
75.步骤s301,按照时间戳的先后顺序,依次提取每一所述图像的图像数据。
76.这里,所述图像数据是图像中每一像素点的像素值,或者是图像中每一物点的像素值。
77.对应地,步骤s103可以通过以下步骤实现:
78.步骤s302,按照所述时间戳的先后顺序,依次将每一所述图像的图像数据输入至一个所述图像处理单元中,以通过对应图像处理单元对所述图像的图像数据进行全息计算,得到所述图像的全息图。
79.这里,采用全息技术,通过对图像数据进行全息计算,得到图像的全息图。在将图像的图像数据输入至一个图像处理单元中时,可以是将图像数据随机输入至一个当前处于空闲状态的图像处理单元中,即将图像数据输入至一个当前未进行全息处理的图像处理单元中。
80.请继续参照图3,在另一些实施例中,步骤s103还可以通过以下步骤实现:
81.步骤s303,对至少两个图像处理单元进行排序,形成图像处理单元序列。
82.这里,可以对图像处理单元进行随机排序,形成图像处理单元序列。
83.步骤s304,按照所述时间戳的先后顺序和所述图像处理单元序列中的图像处理单元的顺序,依次将每一所述图像输入至所述图像处理单元序列中的一个所述图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图。
84.这里,所述至少两个图像按照时间戳的先后顺序形成图像序列,则可以按照图像序列和图像处理单元序列,依次选取一个图像和一个图像处理单元,并将该图像输入至该图像处理单元中。
85.请继续参照图3,在又一些实施例中,步骤s103还可以通过以下步骤实现:
86.步骤s305,将当前时间戳对应的图像确定为目标图像。
87.步骤s306,在所述至少两个图像处理单元中,将当前处于空闲状态的任一图像处理单元确定为目标图像处理单元。
88.步骤s307,将所述目标图像输入至所述目标图像处理单元中,以通过所述目标图像处理单元对所述目标图像进行全息处理,得到所述目标图像的全息图。
89.步骤s308,判断当前时间戳是否是最后一个时间戳。
90.果判断结果为是,则执行步骤s104;如果判断结果为否,则当时间到达下一时间戳时,返回循环执行步骤s305,直至对所有时间戳对应的图像完成全息处理。
91.在一些实施例中,步骤s103中通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图的步骤,可以采用层析法实现,其中,层析法是将3d物体沿深度方向分层,将各层面的二维截面图分别在全息面成像的复振幅分布相加,以此作为原三维物体的复振幅分布,再加入参考光,通过菲涅尔近似法计算即可制成一张全物场的全息图。
92.图4是本技术实施例提供的全息影像生成方法中层析法的一个可选的流程示意图,如图4所示,步骤s103中的层析法步骤,可以通过以下步骤实现:
93.步骤s401,确定所述图像的分层数量。
94.步骤s402,按照所述分层数量对所述图像进行分层,得到所述分层数量的截面图数据。
95.这里,所述截面图数据对应的平面可以是一个二维截面图。在实现的过程中,图像是三维空间上的图像,在分层的时候,可以沿着垂直于三维空间中z轴的平面对图像进行截取,以得到在不同z轴坐标下的不同二位截面图上的截面图数据,所述截面图数据反应了图像在z轴上的平行分布。
96.步骤s403,为每一截面图数据分配所述对应图像处理单元中的线程块。
97.这里,所述线程块是图像处理单元中的计算单元,每一图像处理单元可以同时实现对多个图像数据的计算,因此,可以采用图像处理单元中的线程块来实现多个进程的同步计算。
98.步骤s404,采用所述线程块中的线程对所述截面图数据进行全息计算,得到所述截面图数据所对应的平面的衍射光波。
99.这里,一个线程块用于处理一个截面图数据,一个线程块中包括多个线程,因此,可以采用一个线程块中的多个线程对同一截面图数据同时进行全息计算,得到该截面图数
据所对应的平面的衍射光波。
100.步骤s405,从每一所述截面图数据所对应的平面的衍射光波中,获取对应平面的物光波。
101.步骤s406,对分层数量的物光波进行叠加,得到所述图像的全息图数据。
102.步骤s407,根据所述全息图数据,确定所述图像的全息图。
103.这里,在对每一截面图数据进行全息计算之后,对应得到与分层数量相同的数量的平面的衍射光波,然后,从每一平面的衍射光波中获取物光波,其中物光波是指图像中的物体对应的衍射光波,进而对全部物光波进行叠加。由于截面图数据的数量为所述分层数量,因此,平面的数量也为所述分层数量,所以所确定出的物光波的数量为所述分层数量,那么可以将分层数量的物光波进行叠加,得到所述图像的全息图数据,最后,根据所述全息图数据,确定所述图像的全息图。需要说明的是,截面图数据是对应于同一图像且在不同z轴坐标下的截面图的数据,物光波是对应于同一图像且在不同z轴坐标下的平面中的物体对应的衍射光波,因此,对这些物光波进行叠加,从而得到所述图像的全息图的全息图数据。
104.需要说明的是,层析法中分层数量的多少决定了最终全息图的纵向分辨率,分层数量越大,分辨率越高。同时,分层数量的增加也会带来计算量的增大,因此,需要在满足分辨率要求的同时,尽量减少分层数量。
105.图5是本技术实施例提供的全息影像生成方法中层析法的一个可选的流程示意图,如图5所示,步骤s401可以通过以下步骤实现:
106.步骤s501,确定所述图像中的每一物体的图像深度,得到至少两个深度值。
107.这里,物体的图像深度对应上述的z轴坐标,不同深度值下的物体对应不同的z轴坐标,所述深度值反应了实际物体距离拍摄单元(或者拍摄者)之间的距离。
108.步骤s502,在所述至少两个深度值中确定最大深度值和最小深度值。
109.这里,最大深度值对应的物体距离拍摄者的距离最远,最小深度值对应的物体距离拍摄者的距离最近。
110.步骤s503,根据所述最大深度值和所述最小深度值,确定所述图像的分层数量。
111.这里,可以在最大深度值与最小深度值之间求积分,或者通过计算最大深度值与最小深度值之间的距离差,并根据距离差确定分层数量。
112.请继续参照图5,在一些实施例中,每一截面图中包括至少一个物点,对应地,步骤s404可以通过以下步骤实现:
113.步骤s504,获取所述截面图数据所对应的平面中的每一物点对应的物点数据。
114.步骤s505,采用所述线程块中的一个线程对一个物点的物点数据进行傅里叶变换计算,得到对应物点的物点衍射光波的分布结果。
115.如图6所示,是本技术实施例提供的一个gpu中线程块的分布示意图,在一个gpu 60上,gpu上的计算单元分为若干个(例如,2~3个)网格(grid)61,每个网格61内包含若干个(例如,65535个)线程块(block)62,每个线程块62包含若干个(例如,512个)线程(thread)63。一个统一计算设备架构(cuda,compute unified device architecture)的并行程序会被许多个线程63来执行;数个线程63会被群组成一个线程块62,同一个线程块62中的线程63可以同步,也可以通过共享内存(shared memory)通信;多个线程块62则会再构
成网格61。
116.步骤s506,对所述截面图数据所对应的平面中的全部或部分物点的所述物点衍射光波的分布结果,进行累加求和,得到所述截面图数据所对应的平面的衍射光波。
117.本技术实施例中,采用如图6中的同一个gpu处理同一幅图像;每一图像被分成多个截面图,则该gpu中的每一线程块62处理同一截面图;每一截面图中又包含有多个物点,则该线程块62中的每一线程63对应处理一个物点对应的物点数据。
118.举例来说,用于生成全息影像的图像有3幅,分别为图像1、图像2和图像3,gpu的数量也为3,分别为gpu1、gpu2和gpu3,其中,gpu1对图像1进行全息处理,gpu2对图像2进行全息处理,gpu3对图像3进行全息处理。这里以gpu1对图像1进行全息处理的过程为例进行说明,gpu2对图像2进行全息处理和gpu3对图像3进行全息处理的过程可以参照以下gpu1对图像1进行全息处理的过程。
119.gpu1对图像1进行全息处理的过程为:确定出图像1的分层数量为2,因此,将图像2分为截面图11和截面图12,对应的,gpu1中有多个线程块,可以采用多个线程块中的线程块11和线程块12分别对截面图11的截面图数据和截面图12的截面图数据进行全息计算。其中,截面图11所在的平面中包括三个物点,分别为物点111、物点112和物点113,截面图12所在的平面中也包括三个物点,分别为物点121、物点122和物点123,线程块11中包括多个线程。本技术实施例采用线程块11中的线程11a、线程11b和线程11c分别对物点111、物点112和物点113的物点数据进行傅里叶变换计算,对应得到物点111的物点衍射光波的分布结果、物点112的物点衍射光波的分布结果和物点113的物点衍射光波的分布结果,然后,将物点111的物点衍射光波的分布结果、物点112的物点衍射光波的分布结果和物点113的物点衍射光波的分布结果进行累加求和,即得到截面图11所在的平面的衍射光波。采用同样的方法,采用线程块12中的线程12a、线程12b和线程12c分别对物点121、物点122和物点123的物点数据进行傅里叶变换计算,对应得到物点121的物点衍射光波的分布结果、物点122的物点衍射光波的分布结果和物点123的物点衍射光波的分布结果,然后,将物点121的物点衍射光波的分布结果、物点122的物点衍射光波的分布结果和物点123的物点衍射光波的分布结果进行累加求和,即得到截面图12所在的平面的衍射光波。
120.在一些实施例中,再提供一种对截面图进行划分以得到至少一个物点的方法,基于图5,图7是本技术实施例提供的全息影像生成方法中层析法的一个可选的流程示意图,如图7所示,在步骤s504获取每一物点对应的物点数据之前,还包括以下划分得到至少一个物点的步骤:
121.步骤s701,获取所述图像的最小分辨率和用于播放所述全息影像的显示单元的像素尺寸大小。
122.步骤s702,根据所述最小分辨率与所述像素尺寸大小的乘积,确定所述图像中每一截面图数据所对应的平面中的物点之间的像素间隔尺寸。
123.步骤s703,根据所述像素间隔尺寸,对所述截面图数据进行划分,得到所述至少一个物点。
124.这里,在确定出像素间隔尺寸之后,按照像素间隔尺寸对截面图数据进行划分,得到至少一个物点。所述间隔尺寸反应了每一物点与相邻物点之间的数据间隔大小。
125.在一些实施例中,为了保证输入至空间光调制器中的全息图的输入频率与所述空
间光调制器的刷新频率同步,还可以预先确定出用于生成全息影像的至少两幅图像的时间间隔,即预先确定每一图像的时间戳,使得每相邻的两个时间戳对应的图像之间的时间间隔相等,且每相邻的两个时间戳对应的图像之间的时间间隔对应的频率与所述空间光调制器的刷新频率相等。为了实现频率同步,在上述任一实施例的基础上,全息影像生成方法还可以包括以下步骤:步骤s11,获取所述空间光调制器的刷新频率。步骤s12,根据所述刷新频率,依次确定每一所述图像对应的所述时间戳。
126.本技术实施例中,由于图像的时间戳是根据空间光调制器的刷新频率确定的,因此,图像的输入频率和处理频率与空间光调制器的刷新频率一致,即能够实现全息图输入至空间光调制器的频率与空间光调制器的刷新频率的同步,进而使得空间光调制器对全息图进行同频处理,得到稳定的全息图像。
127.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
128.本技术实施例提供一种全息影像生成方法,以层析法的方式分割三维物体获取目标物光数据信息,再改进优化多gpu计算算法和提出新的gpu计算流程进行全息影像的动态显示。
129.本技术实施例提供一种基于层析法利用多gpu并行计算生成动态全息影像的计算过程和计算流程优化方案,图8是本技术实施例提供的全息影像生成方法的一个可选的流程示意图,如图8所示,实现过程包括以下步骤:
130.步骤s801,将多个gpu按照三维图像(对应上述图像)输入顺序进行排序编号,然后按照时间顺序提取出动态三维模型数据(对应上述图像数据),并依次顺序地将图像数据分配至各gpu显存中;
131.这里,三维图像数据的时间间隔为空间光调制器的刷新频率。
132.步骤s802,对各gpu进行初始化,先按照刷新的时间间隔依次启动各gpu计算算法程序,并顺序地将不同时刻的三维模型数据输入到gpu内存中等待提取计算,并将计算的计算全息图结果投射到空间光调制器中。
133.这里,由于层析法计算的原理以及图像计算数据量大小是固定的因素,因此,平均每幅全息图的计算耗时也是相同的,如此,可以得到相对稳定的刷新频率,便于正常显示观看。
134.在一些实施例中,还可以通过对菲涅尔衍射全息算法进行优化,使得其平均在单颗gpu的计算速度上可以最多提升60倍。
135.步骤s803,将全息图在空间光调制器下顺序输入,就可以动态的显示出三维模型的全息影像。
136.图9是本技术实施例提供的基于层析法利用多gpu并行计算生成动态全息影像的流程示意图,如图9所示,依次将t1、t2、t3和t4时刻的三维图(即三维模型数据)对应输入至gpu g1、gpu g2、gpu g3和gpu g4中,对应得到全息图1、全息图2、全息图3和全息图4;然后,将全息图1、全息图2、全息图3和全息图4依次输入至空间光调制器91中,得到全息影像92并输出。
137.在一些实施例中,步骤s802可以通过一下步骤实现:
138.步骤s8021,读取三维模型的二维尺寸,并求出其最佳分层数量,确定总物点数据量。
139.这里,二维平面物点之间的间隔大小,可以设置为三维模型的最小分辨率与显示屏幕的像素尺寸大小之间的乘积,且三维模型的最佳分层数量采用以下公式(1-1)计算得到:
[0140][0141]
其中,n表示最佳分层数量;z表示物体与拍摄终端之间的距离(即物体的图像深度);z
max
表示最大深度值;z
min
表示最小深度值;δze表示物体与拍摄终端之间的距离在三维模型中的变化增量。
[0142]
步骤s8022,分配线程块和线程数量,确定线程块、线程与计算全息图的最佳分布与数据传输。
[0143]
这里,由于gpu在进行全息图计算时由实验测知,其最大加速瓶颈在于数据传输带宽影响,因此,本技术实施例使用了gpu的流计算的处理过程,使在计算过程中开启带宽传输,最大程度减少延时。其中,gpu的最佳状态为数据计算时间和数据传输时间刚好重叠。
[0144]
如图10所示,是本技术实施例提供的gpu的流计算处理过程示意图,中央处理器(cpu,central processing unit)110根据图像深度将三维图像数据分成多个截面图,得到任意深度图片信息01、任意深度图片信息02等信息,并将任意深度图片信息01、任意深度图片信息02依次输入至gpu 111的一个线程块中,通过该线程块实现对任意深度图片信息01或任意深度图片信息02进行数据接收1101、kernel核函数执行1102,对应得到复振幅01和复振幅02等。最后,通过对复振幅01和复振幅02等进行累加求和1103,得到全息图1104并输出。
[0145]
在一些实施例中,在划分gpu线程和线程块分布时,可以遵循以下规则:线程块最小为线程束32的倍数,最大为gpu的线程块最大线程数量。
[0146]
步骤s8023,将步骤s8021中得到的各二维平面物点信息代入层析法公式,并将不同层数下计算的对应的数据进行叠加,得到这个时刻的计算全息图数据。
[0147]
这里,一个线程束(或线程)对应一个物点,不同层数平面的计算可以随机进行;当平面物点数目大于线程网格数目时,可以使用线程循环的方式遍历采样;每个线程中的计算结果应该保持在对应序号的共享内存中。
[0148]
本技术实施例中,可以采用以下公式(1-2)实现层析法生成计算全息图:
[0149][0150]
其中,u(x,y)表示全息计算结果;j为复数;k为常数;zn表示物光距离参考面的距离;λ表示光波波长;u0表示参考光波振幅;(x0,y0)表示衍射面的坐标,即物光波的参考坐标;(x,y)表示观察面坐标。
[0151]
或者,也可以通过以下公式(1-3)实现层析法生成计算全息图:
[0152][0153]
其中,u(ξ,η)表示叠加后的全息计算结果;ui(ξ,η)表示待叠加的第i个全息计算结果;a(ξ,η)表示叠加后的复振幅的大小;φ(ξ,η)表示叠加后的光全息相位。
[0154]
本技术实施例中,通过上述公式(1-2)或公式(1-3)生成计算全息图,能够简化计算精度,减少计算量。可以采用gpu中简单的公式进行计算,比如以tanf函数代替tan函数,可以大幅减少计算量。
[0155]
在一些实施例中,优化菲涅尔衍射的全息计算算法,在运算过程中将菲涅尔衍射算法中各参数变量提取和合并,进一步大幅减少重复运算的计算量。其中,可以对公式(1-3)进行提取并合并,从而将公式(1-3)可以看做以下公式(1-4):
[0156][0157]
其中,其中,表示pc的化简代数。
[0158]
图11是本技术实施例提供的全息影像生成方法的一种可选的流程示意图,如图11所示,包括以下步骤:步骤s1101,提取三维物体的物体深度和图像信息。步骤s1102,选择任意深度,计算该深度的截面图的全息截面图。步骤s1103,平移叠加深度,计算全息截面图。步骤s1104,根据计算得到的全息截面图生成全息图。
[0159]
需要说明的是,层析法的原理是认为一个三维物体可以离散为一系列垂直于z轴的多层平行的截面,如图12所示,是本技术实施例提供的层析法的原理图,每一个平面图形(如图12中的平面图形121、122和123)是一个二维数组,可以方便地利用快速二维傅里叶变换计算其衍射光波的分布,然后计算每个平面图形的衍射光波,最后将所有平面图形的物光波叠加并抽取其相位信息,最后平面上叠加的相位信息就是需要得到的全息图数据结果124。
[0160]
本技术实施例提供的全息影像生成方法,动态三维虚拟物体使用gpu进行动态全息显示,可以动态刷新。并且,采用层析法将三维物体的全息图的处理时间控制在同等的范围内,将全息图生成的刷新频率稳定下来。同时,将传输的视频图像按照一定的时间序列分别循环放入gpu中,使得生成的全息图可以顺序的输出。
[0161]
本技术实施例提供的全息影像生成方法,至少具有以下技术优点:第一,与点云法和三角面片法等其他方法相比,其他方法的计算数据量是改变的,计算时间也是改变的,本技术实施例采用的层析法可以使得每层三维模型切片计算数据总量相同,因此其生成的计算全息图时间也相同,便于用在动态显示。
[0162]
第二,优化了计算全息图在gpu下的计算算法,使得其计算速度有了较大提升,其中,图13是本技术实施例提供的计算速度提升结果对比图,如图13所示,横坐标为分层数量(层数),纵坐标为计算时间,其中,图13中由下至上的三条曲线分别是是采用gpu 1050ti+cuda进行计算的计算时间随层数的变化曲线、采用cpu i5+数学核心函数库(mkl,math kernel library)函数进行计算的计算时间随层数的变化曲线、采用cpu i5+矩阵实验室(matlab,matrix laboratory)函数进行计算的计算时间随层数的变化曲线。显然,本技术实施例的方法(即采用gpu 1050ti+cuda的方法)的计算时间最短,即计算速率最高,且随着层数的增大,计算时间上升并不明显。
[0163]
第三,相比于其它方法中在使用时是将数据传输和数据计算分开进行,而本技术
实施例使用了gpu中的流计算处理方式,使得计算和数据传输同时进行,并进行gpu核的分配,达到计算时间和传输时间的动态相等。
[0164]
第四,由于其它方法存在每个时刻的三维模型处理时间不确定,因此无法进行动态全息显示的问题,而本技术实施例的方法则可以做到动态全息显示。
[0165]
基于前述的实施例,本技术实施例提供一种全息影像生成装置,该装置包括所包括的各模块、以及各模块所包括的各部件,可以通过全息影像生成设备中的处理器来实现;当然也可通过逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu,central processing unit)、微处理器(mpu,micro processor unit)、数字信号处理器(dsp,digital signal processing)或现场可编程门阵列(fpga,field programmable gate array)等。
[0166]
图14是本技术实施例提供的全息影像生成装置的组成结构示意图,如图14所示,该全息影像生成装置1400包括:
[0167]
获取模块1401,用于获取至少两幅图像和每一图像对应的时间戳;确定模块1402,用于确定出用于处理所述至少两幅图像的至少两个图像处理单元;第一输入模块1403,用于按照所述时间戳的先后顺序,依次将每一所述图像输入至一个图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图;第二输入模块1404,用于依次将每一所述图像的所述全息图输入至空间光调制器中,得到所述全息影像。
[0168]
在一些实施例中,所述装置还包括:提取模块,用于按照所述时间戳的先后顺序,依次提取每一所述图像的图像数据;对应地,所述第一输入模块还用于按照所述时间戳的先后顺序,依次将每一所述图像的图像数据输入至一个所述图像处理单元中,以通过对应图像处理单元对所述图像的图像数据进行全息计算,得到所述图像的全息图。
[0169]
在一些实施例中,所述第一输入模块还用于:对所述至少两个图像处理单元进行排序,形成图像处理单元序列;按照所述时间戳的先后顺序和所述图像处理单元序列中的图像处理单元的顺序,依次将每一所述图像输入至所述图像处理单元序列中的一个所述图像处理单元中,以通过对应图像处理单元对所述图像进行全息处理,得到所述图像的全息图。
[0170]
在一些实施例中,所述第一输入模块还用于:将当前时间戳对应的图像确定为目标图像;在所述至少两个图像处理单元中,将当前处于空闲状态的任一图像处理单元确定为目标图像处理单元;将所述目标图像输入至所述目标图像处理单元中,以通过所述目标图像处理单元对所述目标图像进行全息处理,得到所述目标图像的全息图。
[0171]
在一些实施例中,所述装置还包括全息处理模块,用于确定所述图像的分层数量;按照所述分层数量对所述图像进行分层,得到所述分层数量的截面图数据;为每一截面图数据分配所述对应图像处理单元中的线程块;采用所述线程块中的线程对所述截面图数据进行全息计算,得到所述截面图数据所对应的平面的衍射光波;从每一所述截面图数据所对应的平面的衍射光波中,获取对应平面的物光波;对所述分层数量的物光波进行叠加,得到所述图像的全息图数据;根据所述全息图数据,确定所述图像的全息图。
[0172]
在一些实施例中,所述全息处理模块还用于:确定所述图像中的每一物体的图像深度,得到至少两个深度值;在所述至少两个深度值中确定最大深度值和最小深度值;根据所述最大深度值和所述最小深度值,确定所述图像的分层数量。
[0173]
在一些实施例中,每一截面图数据所对应的平面中包括至少一个物点;所述全息处理模块还用于:获取所述截面图数据所对应的平面中的每一物点对应的物点数据;采用所述线程块中的一个线程对一个物点的物点数据进行傅里叶变换计算,得到对应物点的物点衍射光波的分布结果;对所述截面图数据所对应的平面中的全部或部分物点的所述物点衍射光波的分布结果,进行累加求和,得到所述截面图数据所对应的平面的衍射光波。
[0174]
在一些实施例中,所述装置还包括:第二获取模块,用于获取所述图像的最小分辨率和用于播放所述全息影像的显示单元的像素尺寸大小;第二确定模块,用于根据所述最小分辨率与所述像素尺寸大小的乘积,确定所述图像中每一截面图数据所对应的平面中的物点之间的像素间隔尺寸;划分模块,用于根据所述像素间隔尺寸,对所述截面图数据进行划分,得到所述至少一个物点。
[0175]
在一些实施例中,所述装置还包括:第三获取模块,用于获取所述空间光调制器的刷新频率;第三确定模块,用于根据所述刷新频率,依次确定每一所述图像对应的所述时间戳。
[0176]
需要说明的是,本技术实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0177]
需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的图像处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read only memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
[0178]
对应的,本技术实施例提供一种全息影像生成设备,图15是本技术实施例提供的全息影像生成设备的组成结构示意图,如图15所示,所述全息影像生成设备1500至少包括:处理器1501、通信接口1502和配置为存储可执行指令的计算机可读存储介质1503,其中处理器1501通常控制所述全息影像生成设备的总体操作。通信接口1502可以使全息影像生成设备通过网络与其他终端或服务器通信。计算机可读存储介质1503配置为存储由处理器1501可执行的指令和应用,还可以缓存待处理器1501和全息影像生成设备1500中各模块待处理或已处理的数据,可以通过闪存(flash)或随机访问存储器(ram,random access memory)实现。
[0179]
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0180]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、方法或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0181]
以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1