本申请涉及数字沙盘技术领域,尤其涉及一种三维场景投影方法、装置和立体沙盘。
背景技术:
随着增强现实技术的发展,三维投影技术在虚拟物体构建、立体空间投影等技术领域得到广泛的应用,通过将虚拟的三维场景投影到现实中对应的物体上,使得用户能够得到更加丰富的视觉效果。
现有技术中,在三维场景投影到现实物体上时,需要事先构建好该现实物体的立体几何模型,然后才会将虚拟的三维场景投影到该立体几何模型上,这样通过该立体几何模型,就可以使得用户在现实中看到虚拟的三维物体,实现现实增强。
但是现有技术这种方式容易受三维场景的限制,当三维场景较大或者场景内容较为复杂时,若采用人工的方式构建对应的立体几何模型,则会耗费大量的时间和劳动力成本,并且构建得到的立体几何模型结构相对固定,后续当三维场景发生切换时还需要耗费很多人工去调整拟合切换之后的三维场景,使得三维场景投影效果较差。
技术实现要素:
本申请提供一种三维场景投影方法、装置和立体沙盘,用于解决现有三维场景投影效果差的问题。
第一方面,本申请实施例提供一种三维场景投影方法,应用于立体沙盘,所述立体沙盘阵列设置有可升降的基元,所述方法包括:
获取待投影三维场景,提取所述待投影三维场景中的二维平面,所述二维平面包括若干个区域,所述区域与所述立体沙盘中的基元一一对应;
根据所述待投影三维场景的深度图,确定所述二维平面的每一个区域对应的基元的升降高度;
根据所述升降高度,控制所述立体沙盘中的每一个基元进行升降;
控制投影设备将所述待投影三维场景投影至所述立体沙盘。
在第一方面的一种可能设计中,所述基元包括套筒和用于驱动所述套筒的升降组件,所述根据所述待投影三维场景的深度图,确定所述二维平面的每一个区域对应的基元的升降高度,包括:
获取所述深度图中的每一个所述区域中各个位置点的高度信息;
根据所述高度信息,确定与所述区域对应的基元中每一个套筒的实际升降高度。
在第一方面的另一种可能设计中,所述根据所述高度信息,确定与所述区域对应的基元中每一个套筒的实际升降高度,包括:
根据所述高度信息,获取所述深度图中各个像素点的深度值;
根据各个位置点的坐标和区域的范围,计算得到每一个所述区域的像素均值;
根据所述像素均值,确定与所述区域对应的基元中套筒的预计升降高度;
根据基元预设的升高高度阈值,对所述区域对应的基元中套筒的预计升降高度进行归一化处理,得到归一化后的预计升降高度,所述归一化后的预计升降高度小于或等于所述升高高度阈值;
根据所述待投影三维场景的场景尺寸和所述立体沙盘的基元总数量,确定尺寸因子,所述尺寸因子用于指示所述基元的实际最大升高高度与升高高度阈值的比值;
根据所述尺寸因子和所述归一化后的预计升降高度,计算得到与所述区域对应的基元中套筒的实际升降高度。
在本实施例中,尺寸因子也可以由用户进行调节,用户通过调节尺寸因子,可以控制基元的实际最大升高高度。
在第一方面的再一种可能设计中,所述根据所述尺寸因子和所述归一化后的预计升降高度,计算得到与所述区域对应的基元中套筒的实际升降高度,包括:
根据所述尺寸因子和所述归一化后的预计升降高度,计算得到所述立体沙盘的基元中相邻的套筒的目标升降高度;
当所述相邻的套筒的目标升降高度的差值小于预设阈值时,根据预设最小二乘法和所述目标升降高度,求解得到所述相邻的套筒的实际升降高度。
在第一方面的又一种可能设计中,所述升降组件包括推杆和与套筒一一对应的插销,所述插销固定设置于所述推杆,所述套筒设置有用于所述插销插拔的卡槽,所述控制所述立体沙盘的每一个基元进行升降,包括:
根据每一个基元中的套筒的实际升降高度,确定套筒对应的插销插入至所述套筒的卡槽的插入时间;
控制所述推杆上升或下降,并在所述插入时间到来时,控制所述插销插入至对应的套筒的卡槽,以带动所述套筒上升或下降至实际升降高度。
在第一方面的又一种可能设计中,所述基元包括至少两个套筒,所述根据每一个基元中套筒的实际升降高度,确定套筒对应的插销插入至所述套筒的卡槽的插入时间,包括:
根据所述基元中每一个套筒的实际升降高度,获取最大实际升降高度;
获取所述推杆的上升或下降速度,根据所述最大实际升降高度和每一个套筒的实际升降高度,确定每一个套筒对应的插销插入至所述套筒的卡槽的插入时间。
在第一方面的又一种可能设计中,所述投影设备可滑动的设置于弧形滑轨上,所述控制投影设备将所述待投影三维场景投影至所述立体沙盘,包括:
获取预设位置关系,所述预设位置关系为尺寸因子与投影设备在弧形滑轨上的位置的对应关系;
根据所述尺寸因子和所述对应关系,控制所述投影设备滑动至弧形滑轨的相应位置;
控制所述投影设备将所述待投影三维场景投影至所述立体沙盘中基元的顶面和/或侧面。
第二方面,本申请实施例提供一种三维场景投影装置,包括:
平面提取模块,用于获取待投影三维场景,提取所述待投影三维场景中的二维平面,所述二维平面包括若干个区域,所述区域与所述立体沙盘中的基元一一对应;
高度确定模块,用于根据所述待投影三维场景的深度图,确定所述二维平面的每一个区域对应的基元的升降高度;
升降控制模块,用于根据所述升降高度,控制所述立体沙盘的每一个基元进行升降;
投影控制模块,用于控制投影设备将所述待投影三维场景投影至所述立体沙盘。
第三方面,本申请实施例提供一种立体沙盘,包括阵列排布的基元,所述基元与控制器连接,所述控制器用于根据上述的方法,控制所述基元升高或降低。
在第三方面的一种可能设计中,所述基元包括推杆、插销和套筒,所述插销和所述推杆均与所述控制器连接;
所述套筒设置有可用于所述插销插入或拨出的卡槽;
所述插销设置于所述推杆,用于在接收到所述控制器的第一控制信号时,插入套筒的卡槽或从套筒的卡槽中拔出;
所述推杆用于在接收到所述控制器的第二控制信号时,上升或下降以带动所述套筒升高或降低。
本申请实施例提供的三维场景投影方法、装置和立体沙盘,通过在沙盘上阵列设置可升降的基元,当需要对三维场景进行投影时,先通过确定每一个基元的升降高度,然后对基元进行自动升降控制,实现立体几何模型的自动构建,减少模型的构建时间,同时方便在三维场景发生切换时能够快速的调整立体几何模型的形状构造,提高三维投影效果。
附图说明
图1为本申请实施例提供的三维场景投影方法的场景示意图;
图2为本申请实施例提供的立体沙盘的结构示意图;
图3为本申请实施例提供的基元的结构示意图;
图4为本申请实施例提供的基元的升降结构示意图;
图5为本申请实施例提供的基元的编码信息示意图;
图6为本申请实施例提供的一种基元的俯视图;
图7为本申请实施例提供的另一种基元的俯视图;
图8为本申请实施例提供的又一种基元的俯视图;
图9为本申请实施例提供的三维场景投影方法的流程示意图;
图10为本申请实施例提供的投影设备实施例一的投影示意图;
图11为本申请实施例提供的投影设备实施例二的投影示意图;
图12为本申请实施例提供的三维场景投影装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在增强现实技术中,为了能够提高用户与虚拟对象的交互度,通过采用三维投影的技术将虚拟的三维场景投影到对应的现实三维场景模型中,从而达到更好的三维展示效果,例如现有的立体沙盘,通过事先构造好沙盘的立体几何结构,然后再将虚拟的三维场景投影到该立体沙盘上,即可使得立体沙盘展现出更加丰富的纹理细节,提高视觉效果。
现有技术中,在进行三维场景投影时,其主要包括有两种方式,一种投影方式是采用积木等事先构建好立体几何模型,然后利用三维投影技术将多种虚拟场景信息投影到立体几何模型中,实现现实中的实体与虚拟投影信息结合,增强现实的目的,但是这种方式在前期的模型构建过程中完全依赖人工,需要耗费大量的时间和劳动力,而且模型相对固定,不方便进行细节调整与纠错,后续也不方便投影场景的切换,同时在进行投影时整个投影设备的位置相对固定,使得不同虚拟三维场景内容的投影效果存在差异化,影响投影效果。
另一种投影方式则是设置一套可变形的装置,包括可升降针脚阵列和无人车底座,通过无人车将可升降针脚阵列移动到虚拟对象所在位置并调整姿态角度,然后通过计算机控制可升降针脚阵列的升降高度,去拟合虚拟对象的几何形状,从而使得用户在看到虚拟对象的同时,还可以触摸到与虚拟对象高度相似的显示实体几何模型,但是该方法由于需要稠密的针脚阵列来表达几何形体,对于大空间尺度的场景内容(例如城市、街区等)只能通过移动阵列去模拟用户触摸区域的局部几何形状,无法构成大尺度场景的全局形状,如果通过简单的增加针脚阵列的数量来增大其内容表达能力,会导致系统成本造价的急剧上升,且会增加系统的控制难度,如果通过简单放大每个针脚的尺寸,则会导致系统的分辨率降低,无法拟合非矩形区域的几何外形,此外,该方法对于几何形体的拟合只是简单的采用高度信息采样,对于城市与室内场景模型,其高度信息通常较为复杂,不经过场景模型数据抽象简化就直接进行采样,会导致拟合结果中存在大量噪声(例如表示同一建筑的针脚之间可能高低不平),这些问题会减低数字沙盘的可视化效果。
针对上述问题,本申请实施例提供一种三维场景投影方法、装置和立体沙盘,其发明构思具体如下:通过在立体沙盘中阵列设置可升降的基元,当需要投影三维场景时,将三维场景中的区域与基元构建一一对应的关系,通过控制器统一控制每一个基元的升降来表达每一个区域的高度和形状,可以快速的完成立体沙盘的立体几何形状的构建,构建速度快,并且通过进一步在基元中设置套筒,能够更好的拟合三维场景,提高三维场景的投影效果。
图1为本申请实施例提供的三维场景投影方法的场景示意图,如图1所示,其包括有投影设备11以及立体沙盘12。
其中,投影设备11可以通过滑轨在立体沙盘12的上方或侧方滑动,将虚拟的三维场景信息投影到立体沙盘12,立体沙盘12中包括有阵列设置的可升降的基元,这些基元的升降可以通过控制器或者计算机进行控制,在虚拟的三维场景信息投影到立体沙盘12之前,控制器或者计算机先获取读取虚拟的三维场景信息,然后根据虚拟的三维场景信息来控制阵列基元的升降,构造出立体几何模型,以拟合虚拟的三维场景信息。
示例性的,投影设备11可以在立体沙盘12的上方进行俯视投影,也可以在滑轨滑动,对立体沙盘12的顶面或侧面进行投影。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本申请实施例提供的立体沙盘的结构示意图,如图2所示,该立体沙盘20包括有多个阵列排布的基元21,这些基元21都与同一个控制器连接,可以通过统一的控制器控制每一个基元21的升降高度,从而形成立体几何模型。
图3为本申请实施例提供的基元的结构示意图,如图3所示,该基元包括有套筒31、推杆32以及插销33,其中,插销33和推杆32均可以与控制器34连接。
插销33固定设置在推杆32上,用于在接收到控制器34的第一控制信号时,插入套筒31的卡槽311或从套筒31的卡槽311中拔出。
套筒31内设置有锯齿形的卡槽311,插销33可以插入到卡槽311中或从卡槽311中拨出。
推杆32用于在接收到控制器34的第二控制信号时,上升或下降以带动套筒31升高或降低。
示例性的,插销33可以是电动插销,通过控制器34来控制电动插销从卡槽311中拨出或插入卡槽311,推杆32可以是电动推杆32,也可有控制器34来控制电动推杆32进行升降。
在本实施例中,当插销33插入到卡槽311中之后,控制器34可以控制推杆32进行升降,进而带动套筒31的升降,每一个基元可以包括多个套筒31,每一个套筒31中都可以设置卡槽311,且每一个套筒31对应一个电动插销33,控制器34可以控制不同的插销33插入或拔出对应的套筒31的卡槽311,当推杆32升降时就可以带动对应的套筒31上升或下降,从而构造出多样化的立体几何模型。
示例性的,基元可以是正方体形、圆柱体形、棱柱形等等,基元的中部空心设置,以方便推杆32的升降,每一个套筒31的形状可以根据实际情况进行设置,例如可以是三角体形、圆柱体形或者三棱柱形等,通过设置不同形状的基元和套筒31,可以使得立体沙盘在控制器34的控制下,切换成各种丰富的立体几何模型。
图4为本申请实施例提供的基元的升降结构示意图,如图4所示,该基元中设置有两个三角形套筒,套筒42需要升高时,控制器(未图示)可以控制对应的插销421插入到套筒42的卡槽中422,然后控制推杆上升,从而实现套筒42的升高,而套筒41中由于没有插入对应的插销411,其位置高度不会发生变化。
示例性的,图5为本申请实施例提供的基元的编码信息示意图,如图5所示,若每一个基元中设置有四个三角形套筒,每一个套筒的运动状态(即升高或下降)对应的一个二进制数,当升高时对应二进制“1”,当下降时对应二进制“0”,由此可以得到每一个基元的编码信息(编码信息包括1000至1111),该编码信息表征了基元中各个套筒的运动状态,控制器或计算机通过该编码信息即可确定如何对基元中的插销进行控制,使插销插入到卡槽或从卡槽中拨出。
示例性的,立体沙盘中包括有阵列设置的若干个基元,每一个基元可以对应一个唯一的id信息,方便控制器或计算机进行识别定位,例如阵列设置的基元中,第二排第二行的的基元可以通过id信息标识为(02,02)。
示例性的,图6为本申请实施例提供的一种基元的俯视图,如图6所示,其包括三个正方体形的基元61,每一个基元包括四个三角体形的套筒62,示例性的,在其他实施例中,每一个基元也可以只包括两个三角体形的套筒。
示例性的,图7为本申请实施例提供的另一种基元的俯视图,如图7所示,该基元71为圆柱体性,其可以由若干个三角体形的套筒72构成,示例性的,该基元也可以包括各种不同形状的套筒,在此不做一一举例。
示例性的,图8为本申请实施例提供的又一种基元的俯视图,如图8所示,该基元81为三角体形,其可以由若干个小三角体形的套筒82构成,示例性的,该基元也可以包括各种不同形状的套筒,在此不做一一举例。
下面,本申请实施例对三维场景投影方法进行介绍,图9为本申请实施例提供的三维场景投影方法的流程示意图,如图9所示,该三维场景投影方法可以应用于上述的立体沙盘,立体沙盘阵列设置有若干个可升降的基元,该方法的执行主体可以是控制器或计算机,其具体可以包括以下步骤:
s901、获取待投影三维场景,提取待投影三维场景中的二维平面。
其中,二维平面包括若干个区域,区域与立体沙盘中的基元一一对应。
具体的,二维平面可以是整个待投影三维场景的俯视平面,示例性的,用户也可以从整个待投影三维场景的俯视平面中选取出一个平面区域,作为该二维平面。基元与区域的对应关系具体为一个基元对应一个区域,根据基元的数量,对应的将二维平面划分为若干数量的区域,当基元数量较少时,分辨率较小,二维平面中的区域的面积较大,当基元的数量较多时,分辨率较大,二维平面中的区域的面积就较小。
示例性的,待投影三维场景可以包括有三维城市场景、三维街区场景、三维建筑场景和三维室内场景等。
示例性的,用户可以根据待投影三维场景的尺寸和立体沙盘中基元的总数量,确定一个较为合适的尺寸因子,以使得通过立体沙盘构建得到的立体几何模型能够贴合该待投影三维场景,提高投影效果。
s902、根据待投影三维场景的深度图,确定二维平面的每一个区域对应的基元的升降高度。
具体的,可以在场景中设置正交投影、俯视机位的深度相机,采集得到待投影三维场景,并渲染出俯视深度图以获取待投影三维场景中每一个位置的高度信息,根据该高度信息即可确定每一个区域对应的基元的升降高度。
示例性的,在获取待投影三维场景中每一个位置的高度信息之后,可以对该高度信息进行缩放,例如根据尺寸因子来缩放该高度信息,最终得到每一个区域对应的基元的升降高度。
s903、根据升降高度,控制立体沙盘中的每一个基元进行升降。
具体的,控制器或计算机根据每一个基元的升降高度,控制每一个基元升降到对应的高度。
示例性的,当基元中包括有套筒是,则基元的升降是通过套筒的升降体现的,进一步的,每一个基元中可以包括多个套筒,此时,每一个基元的升降高度指的是基元中每一个套筒的升降高度,控制基元进行升降即指的是控制基元中每一个套筒进行升降。
s904、控制投影设备将待投影三维场景投影至立体沙盘。
具体的,投影设备可以是投影仪,其与立体沙盘配合以实现三维投影,投影设备可以事先与控制器或计算机连接,控制器或计算机将待投影三维场景传输时投影设备之后,控制投影设备将待投影三维场景投影到立体沙盘的每一个基元上,并使得立体沙盘与待投影三维场景贴合。
示例性的,投影设备可以设置在滑动轨道上,控制器或计算机可以控制投影设备在立体沙盘的上方或侧方滑动,以使得待投影三维场景能够与立体沙盘贴合,保证投影效果。
本申请实施例通过将基元与待投影三维场景中的二维平面的区域一一对应,并获取每一个基元的升降高度,控制每一个基元升降到对应的升降高度,能够快速的使得立体沙盘形成对应的立体几何形状,从而使得投影设备能够将待投影三维场景投影到立体沙盘,提高投影效果。
示例性的,在一些实施例中,若基元包括有套筒和用于驱动套筒的升降组件,则上述步骤s902具体可以包括如下步骤:
获取深度图中的每一个区域中各个位置点的高度信息;
根据高度信息,确定与区域对应的基元中每一个套筒的实际升降高度。
具体的,待投影三维场景可以是三维城市场景、三维街区场景或者三维室内场景等等,待投影三维场景是通过深度相机对现实中的环境信息进行采集,并通过虚拟三维模型构建得到的,在深度相机采集的过程中会形成深度图,深度图中每一个位置点都具有深度值,通过该深度值即可确定每一个位置点的高度信息,然后再根据尺寸因子即可求得升降高度。
进一步的,在一些实施例中,上述步骤“根据高度信息,确定与区域对应的基元中每一个套筒的实际升降高度”,具体可以包括如下步骤:
根据高度信息,获取深度图中各个像素点的深度值;
根据各个位置点的坐标和区域的范围,计算得到每一个区域的像素均值;
根据像素均值,确定与区域对应的基元中每一个套筒的预计升降高度;
根据基元预设的升高高度阈值,对区域对应的基元中套筒的预计升降高度进行归一化处理,得到归一化后的预计升降高度;
根据待投影三维场景的场景尺寸和立体沙盘的基元总数量,确定尺寸因子,尺寸因子表征基元的升高高度阈值与实际最大升高高度的比值;
根据尺寸因子和归一化后的预计升降高度,计算得到与区域对应的基元中每一个套筒的实际升降高度。
其中,归一化后的预计升降高度小于或等于升高高度阈值。
具体的,每一个区域对应一个基元,当基元中包括有套筒时,则需要计算区域的像素均值,得到预计升降高度,此时由于预计升降高度可能会大于基元预设的升高高度阈值,需要对预计升降高度进行归一化处理,使得归一化之后的预计升降高度位于区间[0,h]中,其中h为升高高度阈值,然后根据尺寸因子和归一化处理之后的预计升降高度,确定套筒的实际升降高度。
在本实施例中,归一化处理的具体过程可以是先确定预计升降高度中的最大值,即每一个区域对应的基元中套筒的预计升降高度有大有小,选出最大值,为了方便区分,将该最大值称为预计最大值,然后再将基元预设的升降高度阈值除以该预计最大值,得到一个比值(后续称为归一化处理值),最后将每一个区域对应的基元中套筒的预计升降高度乘以该归一化处理值,即得到每一个区域对应的基元中套筒的归一化后的预计升降高度。
示例性的,当基元包括有多个套筒时,则每一个区域中可以划分出多个小区域,每一个小区域与每一个套筒一一对应,通过计算每一个小区域的像素均值,计算得到对应的套筒的预计升降高度,然后根据尺寸因子和对应的套筒的升降高度,确定对应的套筒的实际升降高度。
在本实施例中,示例性的,基元的升高高度阈值是指其最高能够升高的高度,例如一个基元其最高能够升高10厘米,实际最大升高高度是指在上述的待投影三维场景中,基元实际上能够允许升高的最大高度,示例性的,以尺寸因子等于1为例,在待投影三维场景中,有一个区域对应的基元中套筒的预计升降高度是所有套筒中最高的,则该区域对应的基元中套筒应当升高到实际最大升高高度,即10厘米,其他的基元参照基元的升高高度阈值与实际最大升高高度,进行等比缩放,得到自身对应的实际升降高度。
示例性的,可以将尺寸因子与预计升降高度相乘,得到套筒的实际升降高度,其中,尺寸因子可以是用户输入的,由用户进行调节控制,尺寸因子的值不大于1。
在本实施例中,当基元中存在多个套筒时,则每一个区域中对应存在有多个小区域,像素均值可以是对每一个小区域中的位置点的深度值求均值计算得到的,示例性的,对于深度图上第k个小区域的位置点的深度值,取平均值得到像素均值,作为第k个套筒的预计升降高度(k为正整数)。
进一步的,在一些实施例中,上述步骤“根据尺寸因子和归一化后的预计升降高度,计算得到与区域对应的基元中套筒的实际升降高度”,具体可以通过如下步骤实现:
根据尺寸因子和归一化后的预计升降高度,计算得到立体沙盘的基元中相邻的套筒的目标升降高度;
当相邻的套筒的目标升降高度的差值小于预设阈值时,根据预设最小二乘法和目标升降高度,求解得到相邻的套筒的实际升降高度。
具体的,立体沙盘中的基元与基元是相邻的,当基元中存在有一个或多个套筒时,则每一个套筒都会有相邻的套筒,当相邻的套筒的目标升降高度的差值小于预设阈值时,则表示这些相邻的套筒的高度相近,通过采用预设最小二乘法,可以对这些相邻的套筒的目标升降高度进行滤波除杂,减少噪声,得到一个统一的实际升降高度,作为这些相邻的套筒的实际升降高度。
预设最小二乘法的计算公式如下:
上式中,hj为相邻的套筒中第j个套筒的目标升降高度,hi为相邻的套筒中最大的目标升高高度。
本申请实施例通过采用预设最小二乘法对相邻的套筒的目标升降高度进行平滑滤波,得到统一的实际升降高度,能够避免相邻的套筒受噪声干扰,出现高低不平,不平滑的现象,确保构造待投影三维场景中同一个平面的套筒被升降到同一高度。
示例性的,在一些实施例中,升降组件包括推杆和与套筒一一对应的插销,插销固定设置于推杆,套筒设置有用于插销插拔的卡槽,上述步骤s903可以通过如下步骤实现:
根据每一个基元中的套筒的实际升降高度,确定套筒对应的插销插入至套筒的卡槽的插入时间;
控制推杆上升或下降,并在插入时间到来时,控制插销插入至对应的套筒的卡槽,以带动套筒上升或下降至实际升降高度。
具体的,推杆的升降速度可以是匀速固定的,推杆会匀速上升到最高点或者从最高点匀速下降,复位至最低点,在推杆上升或下降的过程中,插销可以插入到套筒的卡槽中,从而带动套筒上升或下降,达到实际升降高度。
示例性的,推杆上升到最高点的值可以为10厘米,若套筒的实际升降高度也为10厘米,则在初始时刻(即零时刻,推杆在最低点的时刻)插销就需要插入到套筒的卡槽中,当推杆上升时将带动套筒,最终升高至10厘米处。
进一步的,若基元包括有至少两个套筒,则上述“根据每一个基元中套筒的实际升降高度,确定套筒对应的插销插入至套筒的卡槽的插入时间”,具体可以通过如下步骤实现:
根据基元中每一个套筒的实际升降高度,获取最大实际升降高度;
获取推杆的上升或下降速度,根据最大实际升降高度和每一个套筒的实际升降高度,确定每一个套筒对应的插销插入至套筒的卡槽的插入时间。
具体的,最大实际升降高度即基元的所有套筒中,实际升降高度最大的一个,以基元包括有四个直角三角体形的套筒为例,取其中实际升降高度最高的直角三角体形套筒升降高度定为hmax,作为推杆的实际行程,该套筒对应的插销插入时间为为初始时刻t(即上述的零时刻),对于升降高度为hk的三角形套筒,其对应的插销的插入时间tk为
上式中,v为推杆的速度。
示例性的,当投影设备所投影的待投影三维场景发生场景切换时,此时立体沙盘的基元中的套筒的升降高度需要重新调节,对于基元中所有的套筒,若在高度调节时,所有的套筒的升降都是均匀变化的,则这些套筒可以联动,若所有的套筒的升降高度是非均匀变化的,则这些套筒需要先复位,然后再根据各个套筒的升降高度来重新控制套筒升降。
示例性的,在一些实施例中,若投影设备可滑动的设置于弧形滑轨上,则上述步骤s904具体可以包括如下步骤:
获取预设位置关系;
根据尺寸因子和对应关系,控制投影设备滑动至弧形滑轨的相应位置;
控制投影设备将待投影三维场景投影至立体沙盘中基元的顶面和/或侧面。
其中,预设位置关系为尺寸因子与投影设备在弧形滑轨上的位置的对应关系。示例性的,尺寸因子与投影设备在弧形滑轨上的位置存在有线性连续的关系,例如当尺寸因子处于最小值或者等于某一个最小阈值时,此时投影设备位于弧形滑轨的最低点,当尺寸因子处于最大值或等于某一个最大阈值时,此时投影设备位于弧形滑轨的最高点。
具体的,弧形滑轨可以的圆弧形的,弧形滑轨的最高点可以位于立体沙盘的正上方,而弧形滑轨的最低点可以位于立体沙盘的侧面,弧形滑轨从最高点呈圆弧形朝斜下方向延伸至最低点,以使得在其上滑动的投影设备能够将待投影三维场景投影到立体沙盘中基元的顶面和/或侧面。
当投影设备位于最高点时,投影设备进行俯视投影,将待投影三维场景投影到立体沙盘中基元的顶面,当投影设备位于最低点时,可以将待投影三维场景投影到立体沙盘中基元的侧面和顶面。
进一步的,在一些实施例中,可以将尺寸因子与预设因子进行对比;
当尺寸因子大于或等于预设因子时,控制投影设备将待投影三维场景投影至立体沙盘中基元的顶面和侧面;
当尺寸因子小于预设因子时,控制投影设备将待投影三维场景投影至立体沙盘中基元的顶面。
具体的,尺寸因子是根据待投影三维场景的场景尺寸和立体沙盘的基元总数量确定的。
当待投影三维场景的场景尺寸较大,而立体沙盘的基元总数量较少时,此时尺寸因子较小,小于预设因子,立体沙盘中基元的升高高度普遍降低(基元中套筒的实际升降高度是通过尺寸因子和预计升降高度确定的),使得立体沙盘整体趋向于平面化,此时投影设备可以滑动到立体沙盘的上方,将待投影三维场景相地图一样进行俯视投影于立体沙盘。
当待投影三维场景的场景尺寸较小,而立体沙盘的基元总数量较多时,此时尺寸因子较大,大于或等于预设因子,立体沙盘中基元的升高高度普遍较高,立体沙盘可以很好的表达出待投影三维场景,此时投影设备可以滑动到立体沙盘的上方和侧方,对立体沙盘中基元的顶面和侧面进行投影,使得立体闪盘可以更好的展示投影效果。
本申请实施例通过对投影设备的投影方式进行控制,能够根据尺寸因子自适应的调节投影区域,使得立体沙盘在各种不同的投影场景下都能够得到较好的投影效果。
示例性的,图10为本申请实施例提供的投影设备实施例一的投影示意图,如图10所示,当尺寸因子小于预设因子时,投影设备1001通过弧形滑轨1002滑动到立体沙盘1003的上方,对立体沙盘1003的顶面进行投影。
图11为本申请实施例提供的投影设备实施例二的投影示意图,如图11所示,当尺寸因子大于或等于预设因子时,投影设备1101可以通过弧形滑轨1102滑动到立体沙盘1103的侧面,通过转动投影设备1101的姿态,可以使得投影设备1101对立体沙盘1103的侧面和顶面进行投影。
综上,本申请实施例通过在立体沙盘中阵列设置可升降的基元,增强了立体沙盘的场景展现能力和立体感,并且相对于现有的虚拟头盔等,其造价成本低,可展示大尺寸的三维场景,并且用户在查看时也无眩晕感,具有实体交互能力等优点。进一步的,通过细分可升降基元,在可升降基元中设置多个套筒,使得立体沙盘的实体部分具备构造复杂几何形状的能力,相对于现有类似技术,本申请实施例的立体沙盘具备自动构造立体场景和变形的能力,且构造出的场景中允许存在包含斜边的复杂多变形和具有旋转角的矩形实体,使得立体沙盘所展示的场景内容与真实场景的信息吻合度更高。此外,本申请实施例的沙盘场景控制和映射算法可以针对可升降阵列基元的数量与需要显示的三维场景尺寸,自适应地调整基元的升降高度范围、投影设备的投影角度等参数,使立体沙盘具备最佳的场景展示可视化效果和快速高效的场景切换能力。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图12为本申请实施例提供的三维场景投影装置的结构示意图,该三维场景投影装置1200包括有平面提取模块1201、高度确定模块1202、升降控制模块1203和投影控制模块1204,其中,
平面提取模块1201用于获取待投影三维场景,提取待投影三维场景中的二维平面。高度确定模块1202用于根据待投影三维场景的深度图,确定二维平面的每一个区域对应的基元的升降高度。升降控制模块1203用于根据升降高度,控制立体沙盘的每一个基元进行升降。投影控制模块1204用于控制投影设备将待投影三维场景投影至立体沙盘。
其中,二维平面包括若干个区域,区域与立体沙盘中的基元一一对应。
示例性的,在一些实施例中,高度确定模块1202具体可以用于获取深度图中的每一个区域中各个位置点的高度信息;根据高度信息,确定与区域对应的基元中套筒的升降高度。
可选的,在一些实施例中,高度确定模块1202可以用于根据高度信息,获取深度图中的每一个区域中各个位置点的深度值;并根据各个位置点的深度值,计算得到每一个区域的像素均值,以及根据像素均值,确定与区域对应的基元中套筒的预计升降高度;和根据待投影三维场景的场景尺寸和立体沙盘的基元总数量,确定尺寸因子,最后根据尺寸因子和预计升降高度,计算得到与区域对应的基元中套筒的实际升降高度。
其中,尺寸因子表征基元的升高高度阈值与实际最大升高高度的比值。
可选的,在一些实施例中,高度确定模块1202可以用于根据尺寸因子和预计升降高度,计算得到立体沙盘的基元中相邻的套筒的目标升降高度;并当相邻的套筒的目标升降高度的差值小于预设阈值时,根据预设最小二乘法和目标升降高度,求解得到相邻的套筒的实际升降高度。
示例性的,在一些实施例中,升降控制模块1203具体可以用于根据每一个基元中的套筒的实际升降高度,确定套筒对应的插销插入至套筒的卡槽的插入时间;并控制推杆上升或下降,并在插入时间到来时,控制插销插入至对应的套筒的卡槽,以带动套筒上升或下降至实际升降高度。
可选的,在一些实施例中,升降控制模块1203具体可以用于根据基元中每一个套筒的实际升降高度,获取最大实际升降高度;并获取推杆的上升或下降速度,根据最大实际升降高度和每一个套筒的实际升降高度,确定每一个套筒对应的插销插入至套筒的卡槽的插入时间。
示例性的,在一些实施例中,投影控制模块1204具体可以用于将尺寸因子与预设因子进行对比;并当尺寸因子大于或等于预设因子时,控制投影设备将待投影三维场景投影至立体沙盘中基元的顶面和侧面;以及当尺寸因子小于预设因子时,控制投影设备将待投影三维场景投影至立体沙盘中基元的顶面。
可选的,本申请实施例还提供一种三维投影系统,包括有上述的立体闪盘以及投影设备,其中,
立体沙盘和投影设备均连接有控制器,通过控制器控制立体沙盘中阵列设置的基元的升降,以及通过控制器控制投影设备将待投影三维场景投影至立体沙盘中的基元。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,确定模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本申请实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。