历史文化遗产数字化展示方法与流程

文档序号:12472239阅读:554来源:国知局

本发明涉及可视化,特别涉及一种历史文化遗产数字化展示方法。



背景技术:

历史文化遗产的数字化展示技术包括基于VR技术的真实感渲染、沉浸式投影、基于多媒体信息集成展示的数字博物馆等。数字博物馆营造数字化展示系统,用户可通过电子书、视听光盘、网页浏览、虚拟体验等方式来浏览、访问文物古迹等历史文化遗产的数字资源。高性能可编程图形处理器、并行处理器、高效存储、协同计算等新技术为海量场景数据的处理提供了强大的计算与存储资源。数据获取的便捷,资源的丰富,计算能力的进步,存储效能的提升,这些新技术进一步拓展了VR的应用范畴。传统的历史文化遗产场景数据采取大多是基于地面定点采集点,通过普通相机的多点拍摄或利用场景相机的方式获来获取定点场景影像或视频数据,数据采集完成后再通过专用软件进行数据处理以达到场景发布和浏览的要求。传统的方法由于缺少高精度采集点的坐标数据,往往只能采用自定义矢量图的示意方式进行展现,缺少了数据展示的空间真实感。此外,大规模、高精度的原始场景数据所带来的海量计算数据,给现有的处理器资源、存储系统在实时处理方面带来巨大挑战。高分辨率场景数据必然产生涵盖丰富表面细节的TB级大规模场景分层模型,这已经超出当前计算机系统的实时处理能力。同时,基于3D场景的应用往往还要处理大量的业务逻辑,包括场景内容的组织调度、模型对象的属性变化计算、资源的分配管理等。用户与场景应用的实时交互处理以及应用自身的业务逻辑处理紧密耦合,给整个应用系统带来沉重负担,最终影响到系统的实时性。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种历史文化遗产数字化展示方法,包括:

对基础元素和模型文件进行解析,将模型文件处理成数据流;将基础元素发送至场景分层模型重建进程,由主处理器和图形处理器的协同处理来实现场景数据的编码传输与可视化;

将场景中元素组织成场景树;在场景数据的分层模型之上实施模型简化;查找场景分层模型顶点索引,计算场景分层模型顶点拓扑,根据误差度量进行网格顶点合并,重建原始网格的近似表示;

将渲染对象进行优先级排序,将渲染状态一致的对象进行批处理渲染,然后对于场景的时空连贯性进行统一平滑处理。

优选地,所述重建网格拓扑近似表示,进一步包括:在渲染时进行视场判断、细节层次选择和可见性判断,对处于视场之外的不可见面片进行删除。

优选地,在所述重建网格拓扑近似表示之后,还包括对场景分层模型的顶点进行拓扑关系索引和缓存。

优选地,所述场景分层模型通过以下方式构建:对原始数据进行分区存储;然后基于场景的几何特征,建立场景数据区的索引,并组织成多叉树结构;通过多叉树构成支持大规模数据的场景分层模型。

优选地,所述场景分层模型在运行时,将场景数据区索引读入内存,根据渲染节点选取策略调用选中的多叉树节点集合,然后载入对应原始场景数据。

优选地,所述场景分层模型根据局部的场景几何特征而采用不同的分辨率来渲染。

优选地,还包括将所有原始场景数据按统一格式进行划分和重组,通过裁剪和插值的方式对数据尺寸进行规范化处理,形成一系列场景分区集合,为每个原始数据定义一个头文件,记录数据的关键信息;场景数据的实体由所述头文件所指示。

优选地,在内存中维护一个包含每层选取的所需调度的场景分区索引文件,对于不参与细分过程的多叉树节点,以及细节层次选取过程中记录父节点分辨率的信息节点,不调度外存中对应的场景分区。

本发明相比现有技术,具有以下优点:

本发明提出了一种历史文化遗产数字化展示方法,解决了传统多层次模型存在的数据冗余及存储和调度低效的问题,保证不同细节等级之间以及不同场景分区间的平滑过渡,既能够为第三方应用提供预先重建的离线大规模场景分层模型,也能够集成在其它应用中,提供实时3D场景重建。

附图说明

图1是根据本发明实施例的历史文化遗产数字化展示方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种历史文化遗产数字化展示方法。图1是根据本发明实施例的历史文化遗产数字化展示方法流程图。

本发明首先基于根据历史文化遗产场景重建及可视化的流程,将数字化展示系统划分为资源模块、场景模块、渲染模块和交互模块,资源模块用于对基础元素和模型文件的管理。资源管理包括对资源的分类,数据文件解析,资源加载/卸载。支持多种不同的模型文件类型,包括二维纹理,材质,3D模型文件,并将模型文件处理成数据流提交给场景模块。

资源模块定义了资源抽象类,在该类中定义了资源的场景属性和操作:资源的状态、名称、大小、组别。对于常用资源,采用了继承资源抽象类的形式,通过资源抽象类提供公共接口,在具体类中实现特定方法。资源模块定义了数据加载类,在处理大规模场景数据时,直接将基础元素发送场景分层模型重建进程,由主处理器/图形处理器协同处理来实现大规模场景数据的编码传输与可视化。

场景模块负责整个3D场景的重建、场景数据的编码传输和场景漫游。将场景中所有的元素组织成场景树进行管理调度,每个模型是场景树中的一个节点,整个场景是根节点,模型是叶子节点。场景模块以资源模块提交的数据流作为输入,首先对纹理影像数据和3D进行解析,重建其对应的分层模型。在场景数据的分层模型之上,实施模型简化。模型简化根据场景分层模型的几何特征重建其网格拓扑近似表示,在渲染时进行视场判断、细节层次选择和可见性判断。对处于视场之外的不可见面片进行删除。模型简化以误差度量作为控制条件重建模型的网格表示;此外,场景模块还解析基础场景,重建基础场景分层模型,查找场景分层模型顶点索引,计算场景分层模型顶点拓扑,计算模型顶点误差,根据误差度量进行网格顶点合并,重建原始网格的近似表示以及3D网格表面的平滑处理。上述工作完成之后,整个3D场景分层模型的简化表示重建完毕,再对场景分层模型的顶点进行拓扑关系索引和缓存,实现场景内容的初步重建。

渲染模块采用流程化设计架构。在底层API的继承类中实现光照渲染算法,用户通过与该类交互实现渲染进程。所有场景对象的渲染进行到最终的光栅化之前,缓存顶点获取索引数据,实现顶点缓冲和索引缓冲。将场景模块提交给渲染模块的渲染对象送入到优先级排序类中,将渲染状态一致的对象进行批处理渲染,然后对于场景的时空连贯性进行统一平滑处理。

交互模块对体感传感器所采集的肢体动作数据进行预处理和特征提取,再进行预测或者特征识别,利用识别到的体感姿势,将场景分层模型传送给各个图形处理器节点来控制场景漫游和渲染。

本发明的方法首先对原始数据进行分区存储方式;然后基于场景的几何特征,建立场景数据区的索引,并组织成多叉树结构;通过多叉树构成支持大规模数据的场景分层模型。在运行时,渲染进程将场景数据区索引读入内存,根据渲染节点选取策略调用选中的多叉树节点集合,然后载入对应原始场景数据。在运行时调度过程中始终是轻量和快速的,能够在不增加外存物理存储的同时,大大减少运行时载入内存的数据量,并降低内外存交互操作频率。

在提取并保留原始场景数据关键信息的前提下,将所有原始场景数据按统一格式进行划分和重组,通过裁剪和插值的方式对数据尺寸进行规范化处理,形成一系列方形结构场景分区集合。为每个原始数据定义一个头文件,头文件记录该数据的关键信息,并指示了数据分区的子区数目、偏移、标识符和坐标。分层原始场景数据的实体是由头文件所指示的、不同尺寸的一系列数据分区链式存储集合。

对于场景几何特征变化剧烈的区域,通常需要较高分辨率的模型数据来模拟,另一方面,表面特征变化比较平缓的区域,则加大简化粒度,而无需维护这两个细节等级之间的过渡冗余数据。

对于本发明的每个数据分区,以自顶向下的方式重建层次模型,最顶层为最低细节等级的层次,随后逐步细分,最底层为分层场景数据。细分的过程通过计算表面特征来控制,将表面特征量化为对表面粗糙度的计算。表面特征变化复杂定义为表面粗糙度高,反之则定义为表面粗糙度低。表面粗糙度作为场景节点的一个评价因子,场景节点评价高于给定阈值,就不再增加该场景节点的分辨率,停止细分;否则,进一步细分场景分辨率,并且保留多级细节层次索引,用于根据视点进行场景数据调度。在运行时,选中多叉树某个节点,节点评价函数给出评价阈值,以决定对该节点进行细分或合并操作,并根据所需的细节等级对外存中的原始分层场景分区数据进行调度。

本发明在内存中维护一个包含每层选取的所需调度的场景分区索引文件,对于不参与细分过程的多叉树节点,以及细节层次选取过程中记录父节点分辨率的信息节点,不调度外存中对应的场景分区,避免分辨率层次改变中的冗余数据调度。根据上述索引文件读取分区存储子模型中的头文件,由头文件记录去调度外存中的对应数据。分区调度和场景数据的更新操作都是通过级联式的索引来实现的,不会给系统造成I/O阻塞。

在视觉平滑处理中,本发明实现对场景可视化中空间连贯性和时间连贯性的统一处理。结合不同的场景细节层次间的过渡与邻接分区边界的细节等级匹配关系,给顶点实时分配时间和空间的权值,确保在分区渲染过程中实现对同一分区内部的不同分辨率细分等级间以及不同分区之间的时空连贯性。即从可视化处理的层面出发,对画面闪烁的消除统一到平滑权值的计算分配上来进行。

假设两个邻接的场景分层模型为Ti和Ti+1,重建各自对应的过渡分区T(α),使T(0)=Ti,T(1)=Ti+1,α是与时间状态相关的连续变量,定义为平滑权值。当进行不同的细节等级切换时,任意时刻顶点的空间位置表示为

V’=α·V+(1-α)·V0

其中V和V0为两个不同细节等级的场景分层模型对应的顶点空间位置。

令△V=V-V0以简化计算,△V表示某级细节模型的顶点与其相邻低分辨率模型中对应顶点的空间位置差值;定义w=1-α为顶点的平滑权值,则可简化表示为:

V’=V-w△V

对于平滑权值的计算,w=1-α根据时间控制参数和顶点所在的平面坐标vg确定;若vg位于场景分层模型的过渡区域,则w=l(wn-wt)/h+wt;否则w=wt;其中h是过渡区域宽度的度量,l是顶点vg到过渡区域内边界的距离;wt是时间控制的平滑权值;wn是反映相邻场景分层模型细节等级关系的平滑权值。

wt的计算以某细节等级的整个场景分层模型为单位进行,有:

wt=min((D-Dmin)/max(Dmax-Dmin),1)

D∈[Dmin,Dmax]为场景分层模型的包围体上距观察视点最近的点与观察视点的距离。Dmin和Dmax是顶点过渡区间。在该区间内,wt为细节层次权值,控制场景分层模型随着观察视点的运动进行细节等级的层次渐进,从而避免画面中闪烁现象的产生。

为实现空间连贯性,确定边界平滑权值wn

d和dn表示场景分层模型及其邻接模型的细节等级。若邻接模型分辨率低于当前模型的分辨率,则边界平滑权值wn设定为1,这样使得边界顶点位置和邻接较低细节等级模型的对应位置完全相同。反之,若邻接模型分辨率高于或等于当前模型的分辨率,则wn设定为0。

在实现中,首先将调度的场景分层模型组织成顶点缓冲对象的形式,然后提交到图形处理器的顶点着色器,进行渲染和可视化过程中的视觉平滑处理。具体流程如下:

步骤1.对于每个顶点的网格坐标vg,首先计算出细节层次权值wt和边界平滑权值wn,提交给顶点着色器;

步骤2.计算出场景分层模型中顶点平滑权值w,同时对平滑权值进行修正,以避免边界权值参与顶点插值计算;

步骤3.通过修正后的顶点平滑权值,计算出当前顶点空间坐标,进行坐标合成和观察视点变换;

步骤4.输出符合观察坐标系的顶点坐标,送交下一步的渲染处理。

本发明在大规模3D场景渲染的光照算法中,只对屏幕空间所选定的多叉树节点执行光线投射,进行离散遍历,遍历终止的条件是获取光线与场景分层模型采样点的交点。针对该采样点,调入相应的正射影像纹理进行各向异性插值,所得到的像素值赋予该点并送入图形渲染管线进行渲染。这些像素的分布和几何关系由场景多叉树节点评价函数确定。这样能避免对所有的分区都做一次相交测试,执行的相交运算大大减少,又能利用相邻像素之间的相关性进行图形硬件加速。当视点改变而引起射线方向变化时,通过更新变换矩阵来快速调整光线矢量。这样只需明确射线方程,就可以从顶点纹理中迅速确定交点,无需再遍历整个光线投射的渲染队列,从而简化了光线矢量随视点改变的计算,进一步提高了渲染性能。在顶点着色器中实现一个顶点求值函数作为底层渲染管线与上层应用程序之间的调用接口,渲染器则通过顶点求值函数实现对待渲染数据的接收处理。这使得进入图形管线进行渲染的顶点与上层应用程序的输入分离,渲染器作为独立的程序完全在图形处理器中实现,与具体的应用程序松散耦合。上层应用只需要完成初始化配置,通过调用顶点求值函数提交相应的数据,即可实现快速渲染。

在网格表面平滑处理方面,本发明将顶点vi和顶点的全部光照L(vi)看作变量来求解能量函数最小化的解:

其中θ,η,是权重因子,用新的顶点vi’代替上一次的vi迭代求解上述能量最小化问题,直到两次的差在预设阈值内。

n(vi)为顶点vi的法向量,N为模型中顶点总数;为顶点vi移动之前的初始位置,为相应法向量。

其中是顶点vi环邻接顶点的均值,确保更新后的网格保持平滑。

其中E是网格中所有边的集合,ci是顶点vi在图像中对应像素的平均强度。部分是强度误差,用于测量算法计算的反射强度与捕获的图像平均强度之间的差;部分是梯度误差,用于测量算法计算的反射光强度与捕获的图像平均强度之间的梯度。

对比初始和平滑调整后的重建模型,有一些初始模型上的顶点和可视外壳上的顶点位置接近,初始模型和平滑调整后的模型是正切的,则认为这些满足条件的顶点是和真实模型上顶点坐标是一致的,将这些顶点标识出来作为已知点,在迭代过程中保持这些点的坐标固定不变。依次对上述最小化问题增加新的约束,然后将所有顶点的一个子集作为最小化求解的变量,得到更精确的求解结果。

完成场景重建与实时渲染后,为进一步提高用户沉浸感交互体验,在交互模块中改进现有的体感交互模式。首先对体感传感器采集的动作数据进行预处理和特征提取,再进行预测或者识别。以下实施例以构造肢体特征向量间夹角方式对传感器所提供肢体节点进行特征表达:

(1)对传感器提供的位置相近的肢体节点进行合并,将其简化为15个肢体节点。(2)对用到的特征向量进行构造,肢体四肢节点上选取8组特征向量来表示。(3)选取相邻特征向量间的夹角为特征表达。

肢体动作识别包括肢体动作表示、识别算法的选取、样本训练、动作匹配,具体步骤如下:

(1)将这五个漫游控制动作表示为一段时间间隔内的关键帧姿势特征量的序列,包含平抬左手、平抬右手、拍手、向前走、向后退五个动作。对于某一动作具体表示方法为Act(ges1,ges2...gesn),其中ges为第i关键帧时肢体姿势特征量,n为关键帧数。

(2)确定BP神经网络感知器的权值系数W=(wk1,wk2,...,wkm),使系统对一个特定的样本X=(x1,x2,...,xm)产生期望值d,输出yk为:

其中f()为激活函数。

1)对权值系数Wij设置非零随机数。

2)输入一个样本X=(x1,x2,...,xn),以及相应的期望输出Y=(y1,y2,...,yn)。

3)求各层学习误差dik,对于输出层k=m:

dim=Xim(1-Xim)(Xim-Yi)

对于其他各层:

4)修正权值系数Wij,公式为:

Wij(t+1)=Wij(t)-λdikXik-1,0≤λ≤1

(3)识别每个动作包含的n个连续肢体姿势特征量表示,而每个姿势特征量由u组肢体特征表达表示,将BP神经网络中输入层的节点数设置为n×u个;输出层节点数即为需要识别的动作个数;再常由输入层节点数与输出层节点数估计隐含层节点数,使用[-1,1]之间的随机值来对权值参数和阈值进行初始化。

(4)通过训练和测试构造的最终的BP神经网络模型。

在特征识别完成之后,将场景分层模型通过网络从主处理器传送给各个图形处理器节点,使各个图形处理器节点中各维持一份场景分层模型的副本;将初始虚拟投影参数配置文件通过网络从主处理器传送给各个图形处理器节点,使各个图形处理器节点中各维持一份初始虚拟投影参数配置文件的副本;初始虚拟投影参数配置文件描述渲染3D场景时使用的虚拟投影的参数;

加载场景分层模型,并根据初始虚拟投影参数配置文件的内容设置光线跟踪渲染程序的虚拟投影参数;将渲染3D场景时使用的虚拟投影的整个画面像素区域分为N块,将每块视为一个子区域,N个子区域与N个图形处理器节点一一对应,所有子区域拼接在一起即构成完整的虚拟投影的画面像素区域;对N个图形处理器节点中的每一个,确定每个子区域的起始行号、结束行号、起始列号和结束列号,并利用子区域与图形处理器节点的一一对应关系,将从所有图形处理器节点发来的像素颜色值拼接成完整的虚拟投影的画面,并将该画面显示在显示器上;

利用体感传感器获取参与用户的景深数据,令VR1表示从右臂关节指向右手关节的向量,令VR2表示从右臂关节指向右肩关节的向量;令VL1表示从左肩关节指向左臂关节的向量,令VL2表示从肩中央关节指向腰关节的向量,令VL3表示从左手关节指向左臂关节的向量;令RB等于VR1与VR2的夹角;令LB等于VL1与VL2的夹角,令LA等于VL1与VL3的夹角;读取体感传感器输出的连续的30帧参与用户的景深数据,判断其中是否存在一帧景深数据满足:根据对景深数据的追踪结果计算得到的RB小于30度;如果满足,判断其中是否存在一帧景深数据满足:根据对景深数据的追踪结果计算得到的LB大于80度,且根据对景深数据的追踪结果计算得到的LA大于130度;如果仍然满足,则对每个图形处理器节点,将3D场景中的与用户进行交互的场景资源朝着虚拟投影所在位置平移一个大小为STATUS×ΔL的位移,ΔL表示平移长度,为大于零的实数,变量STATUS是从主处理器发给图形处理器节点的标志位;其中,STATUS=1表示与用户进行交互的场景资源被平移后更靠近虚拟投影所在位置,STATUS=-1表示与用户进行交互的场景资源被平移后更远离虚拟投影所在位置,STATUS=0表示与用户进行交互的场景资源位置不变。

综上所述,本发明提出了一种历史文化遗产数字化展示方法,解决了传统多层次模型存在的数据冗余及存储和调度低效的问题,保证不同细节等级之间以及不同场景分区间的平滑过渡,既能够为第三方应用提供预先重建的离线大规模场景分层模型,也能够集成在其它应用中,提供实时3D场景重建。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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