快速三维分析

关键词: 建模 建筑物 引言 模型

快速三维分析(精选九篇)

快速三维分析 篇1

在数字城市以及其它的虚拟场景中, 建筑物三维模型是其需要表示的主要部分, 由于建筑物的种类和特征的多样性, 加上计算机识别能力有限, 使得现有的建筑物模型的建立不可能达到无人工干预下的全自动化。因此, 有限干预下的半自动建模是建筑物三维建模的主要技术。近年来, 地面三维激光扫描技术为建筑物提供了一种全新的数据采集和建模方法。但是三维激光技术也不能完全代替传统的测绘技术, 同时传统建筑测量和建模方法也不能完全被替代, 特别是在对结构相对简单的建筑物建模时, 三维激光扫描由于原始数据量大、数据冗余使得建模效率不高。本文基于Auto LISP开发平台, 实现了规则建筑物模型的快速建立, 同时模型精度也能得到保证, 相对于三维激光扫描方法建立规则建筑物的三维模型, 该方法具有建模效率上的优势。

1 建筑物三维数据的采集

无协作目标全站仪是指在无反射棱镜的条件下, 可对一般的目标直接测距的全站仪。无协作目标电子全站仪把无反射棱镜测距技术融入了全站仪, 实现了“所瞄即所测”。在数据采集时, 应尽量采集建筑物的特征点 (比如墙角点) , 对于能够通过已测特征点的几何关系得到的特征点数据, 可以不必采集, 以减少外业时间。同时为了方便后期建筑物的快速建模, 应在采集过程中对特征点进行编码。

1.1 数据编码

建筑物特征点的代码设计为4位。其中代码1~2位为建筑物特征点的分类代码, 代码标识符“LAY”, 取汉语拼音首位字母作为编码的前两位, 比如“MC”代表门窗, “QB”代表墙壁。代码第3位为点的连线方式, 代码标识符为“B”、“M”、“E”、“C”, “B”代表线的起点, “M”代表线的中点, “E”代表线的终点, “C”代表闭合到起点。代码第4位为连线种类, 代码标识符为“LX”, 用一位数字表示, 比如“1”代表直线, “2”代表圆弧, “3”代表样条曲线。比如编码为“QBB1”表示为墙壁的起始点, 用直线和下一个点相连。若为独立点或暂时无法确定连线的点, 可以仅输入前2位代码。

1.2 数据格式

无协作目标电子全站仪输出的坐标数据为每个细部点用一行字符串来表示, 其数据格式如表1所示。

2 三维建筑物的快速建模

2.1 数据的导入

以某大楼作为实验大楼, 按上述方法进行野外数据采集之后, 运行基于Auto LISP编写的展点和连线程序, 读取按编码规则采集的数据文件, 得到建筑物结构体的初步三维线框图, 如图1所示。

将图1中未编码的特征点手动连线, 生成墙面, 然后对该墙面拉伸, 生成墙体。

2.2 墙面的拟合

在实际生成墙面的过程中, 由于测量误差或墙面本身的凹凸不平, 导致根据采集数据连线得到的墙面不能形成面域, 从而不能进行拉伸。所以这里需先对墙面进行最小二乘拟合。拟合的方法如下:

假设由m个点拟合出的平面方程为:

将式 (1) 同除以D可得:

则式 (2) 可写为:A'x+B'y+C'z+1=0

对于每个测定点的观测值可列出其平面观测值方程式:

vi=xiδA'+yiδB'+ziδC'+li, 其中li为常数项。

根据m个观测点的平面观测值方程组成法方程式:

根据式 (3) 可求出其协因数阵Q, 从而解得未知数δA', δB', δC'。

则平面方程式经过平差后的参数为:

其中A'0, B'0, C'0, 为平面参数的初始值, 可由任意三个观测点求出。

2.3 建筑物角点的求取

在对墙面进行拟合后, 可以通过三个面相交来求取建筑物的角点, 以及屋顶的顶点等。假设连接一个角点的三个平面方程如下:

由式 (5) 解得建筑物的角点坐标。

2.4 门窗等构件的投影

由于对建筑物的墙面进行了拟合, 所以门窗等构件的角点可能会偏离墙面, 所以需对这些角点进行投影。求点A (xi, yi, zi) 在平面ax+by+cz+1=0投影的方法如下:

假设投影的点P (x1, y1, z1) , 则向量AP= (x1-xi, y1-yi, z1-zi) , 所以AP平行于平面的法向量 (a, b, c) , 则

联立 (6) 、 (7) 两式可得P点坐标为:

编写平面拟合和投影的Auto LISP程序, 图1经过平面拟合和投影过后绘制成的三维线框图, 如图2所示。

利用Auto LISP程序参数化生成窗户等构件, 例如生成窗户的对话框, 如图3所示。

图2加入门窗等构件后的三维线框图如图4所示。

该大楼经渲染后的图形如图5所示。

在许多规则历史建筑, 运用该方法进行三维数字仿真可取得良好的效果, 如图6所示为某历史建筑的三维模型。

3 三维模型的精度评价

3.1 特征点精度评定

利用无协作目标全站仪采集建筑物三维数据建立三维建筑模型时, 由于建筑模型是通过观测点进行平面拟合生成的, 所以点位的精度对生成的模型质量有很大的影响。通过选取实验大楼一定数量的特征点来评估点位的精度, 如墙角点、门窗边界点。具体方法如下:选取某特征点的测量坐标, 然后将其与拟合后的坐标进行比较, 得到的结果如表2所示, Δρ为点位的整体误差, 由公式计算得出。

3.2 模型总体精度评定

为了评估实验大楼模型的质量, 不仅要对点位误差进行评定, 还需对模型的整体误差进行分析。在生成的该大楼模型中, 选取各个拟合面上一定数量的特征点, 原则上选取的特征点越多越接近模型的真实精度, 这里主要通过选取房屋的角点以及门窗的角点参与评定;获取各个点的点位误差, 由公式 (9) 可以得到模型的整体误差m:

其中Pi为拟合平面参与点的个数, M为拟合的面数, 对于实验大楼, 选取6个拟合面的特征点个数为66个, 经计算该模型的中误差为9.087mm, 完全能够满足建筑物进行三维精细建模的要求。

4 结语

建筑物的三维数字仿真中, 三维建筑模型快速有效地建立一直是研究的热点, 由于建筑物的多样性, 使得在对规则建筑物和复杂建筑物建模时必须要考虑到建模方法的效率, 若对相对规则的建筑物建模时也采用三维激光扫描建模的方法, 虽然精度高, 但势必会导致建模效率低下。本文的建模方法在对相对规则的建筑物建模时工作效率和成本上都具有很大的优势, 并具有相当高的精度。在对复杂异构建筑物可以结合本文方法, 对建筑复杂的细部采用三维激光扫描的方法建立局部模型, 然后整合成完整的三维模型, 可取得良好的效果。

参考文献

[1]顾孝烈, 鲍峰, 程效军.测量学 (第三版) [M].上海:同济大学出版社, 2006.

[2]程效军, 顾孝烈, 顾振雄.测量工程LISP程序设计[M].上海:同济大学出版社, 2012.

[3]程效军, 李巧丽, 唐剑波.历史建筑物立体图的数字测图技术[J].测绘科学, 2009, 2 (34) :164~166.

快速三维分析 篇2

关键词:快速掘进 巷道岩石 支护 共同作用 三维应力

当前的巷道和对应的支护结构进行共同作用框架核心就是由于岩石自身的特性进行滞弹性变形的构建,并在这种构建情况的引导下,在对整个巷道进行开挖以及支护下,整个围岩框架通过收敛产生了对支护结构的反作用力,并且这种力度会随着时间产生各种变化。作用力与反作用力构建在这种相对狭小封闭的框架中的直接后果就是使得支护所受到的力度越来越大。如果我们在进行施工支护的时候不对这种力度进行一个相对精确的估计和测量,那么这种越来越大的施力会使得整个支护的结构处于一种不稳定的状态,同时对支护的安全产生相对的危险。针对这种情况,本文着重讨论其三维构架下的应力求解。

1 受力分析模型构建和应力分析

处于理想情况下的受力模型构建下,假设有一个长度为最大值的圆柱体安装在一个无限大的岩石构成体中,这个岩石构成体所受到的力构建即为三维应力,那么我们可以假设这个圆筒自身的半径即为a和b。在这种情况下,圆筒自身就代表着支护体的构成。我们可以假设这个支护体所安装的时间并不长,是在整个岩体进行开挖之后才被装上去的,其间隔时间我们可以设置为T1。这个时候我们就可以进行大胆的猜想,在T1之后,整体的围岩以及支护就开始共同协作产生了作用。本文试图利用对应的公式和计算来推测出整个支护体内所产生的应力分布以及所对应的位移情况。

根据上述文字中构建的模型我们可以假定如下情况。首先,沿着支护体的轴向没有应力或者是其他的物理量的改变,也就是说在虚拟模型上的框架中,变量z和应力等其余的物理量不发生关系。其次,在我们进行巷道的开挖前后,针对于轴向的应变数值也应该保持一个恒定的常量,这样就会使得支护被嵌入的时间成为时间t开始进行的位置。然后我们就可以得出下面的这种算式:

εIz=0

εIIz(t)=■[σz-vr(σx+σy)]=const

在上述的算式当中,I和II分别可以代表支护以及岩石,另外Br和vr则可以代表掩饰自身的弹性常数构建,另外σz、σx、σy则是对应位置上所标示的原岩应力分量。

根据上述结论我们可以看到,如果我们把岩石以及对应的支护体统一看作是线性构架下的粘弹性体,并根据单向负载荷重构建下的横向以及对应纵向的蠕变函数进行自身结构的描绘,那么如果想要对这个问题进行解释和分析就会变得很容易。在这里我们可以用符号来进行代替分析。假设说纵向以及对应横向的蠕变函数用符号代替分别为■和-■ (这里假设B为弹性模量,同时v为泊松比),那么我们就可以知道整个粘弹性体的本体关系构建:

εII=d/dt{[a1(t)-a2(t)]*σII(t)+[a2(t)*θ(t)]δII}

2 运用案例进行岩石地应力的三维实测和巷道稳定性探索

本文所采用的案例是山东的某矿场。本文将重点分析其中的某几个地应力和巷道的受力分析,来对支护进行合理的分析和实践。

2.1 如何确定地应力的自身大小

假设目前的地下某一个关键点对应的分量数值分别为σx、σy、σz、τxy、τyz、τxz并且这六个变量我们可以统一构建成为一个变量σXYZ,那么我们可以确定其中的主应力大小分别为σ1 σ2 σ3,同时基于这之间的关系,大地坐标所采用的XYZ关系可以用这九个方向进行对应的余弦值确定。同时,如果我们在进行对应的地应力实测当中,一般说来钻孔和大地系的坐标轴终会成为以下两种角度之一的构建,即仰角或者是俯角。如果我们使用xyz作为整体的钻孔坐标框架,那么这里的地应力构建就应该被记做如下的形式:σ′xyz =(σx ,σy,σz,τxy,τyz,τxz)

在这个式子当中,括号中的六个坐标可以分别对应地应力所包含的六个分量,而每个下角标中,单独存在一个字母的分量则表示成为正应力的对照,而两个字母则表示为剪应力的对照。为了方便记忆,我们可以规定这其中的x轴为水平孔径的方向,同时z轴也和钻孔的轴线进行重叠。因此根据上述条件可知,如果在进行钻孔自身的应力检测当中得到了对应σ′xyz的全部数值,同时对坐标进行双重转换,就可以得到σxyz的全部结果,并由此也可以推论出主要的盈利大小以及对应方向构建。在这里,我们可以设置一个进行中转的过渡坐标系x′y′z′,并且我们也可以把σ′xyz进行转换,处理成σ′x′y′z。同时设定坐标自身进行旋转倾角为α。他们之间的关系公式为:σ′x′y′z=Tασ′xyz

在这个算式当中,Tα是一个转换矩阵,其自身的阶应力构架为6*6,同时,在类似构架下,x′y′z′所组成的过渡坐标系地应力分量进行旋转,并使其旋转角度达到一个方位角度β,我们就可以经过这种代换得到一个最后的结论:σxyz=Tβσx′y′z。

在这个算式当中,Tβ和Tα一样,也是一个转换矩阵,其自身的阶应力构架同样为6*6。因此,其主要的分量也是由x′y′z′的整体坐标系通过对原有角度进行β度数的旋转之后,通过上述的九个方向自身的余弦值进行组合而最终构成的。因此我们可知,无论目标对象是处于什么样的坐标系下,我们都可以根据当前所获得的盈利分量进行对主应力(σx,σy,σz)的大小数值确定,并且我们所能确定的数值具有唯一性和独特性。

2.2 计算该矿场的应力以及位移

基本资料构建:长度单位:米,时间单位:月

计算岩石以及对应支护的蠕变函数构建:

C1(t)=0.81×10-5+0.29×10-5[1-exp(-0.12×10-12t)][kg/cm2]-1

C2(t)=-0.15×10-5-0.94×10-6[1-exp(-0.12×10-12t)][kg/cm2]-1

A1(t)=0.36×10-5+0.22×10-5[1-exp(-0.12×10-11t)] [kg/cm2]/P

A2(t)=-0.7×10-5-0.45×10-6[1-exp(-0.12×10-11t)] [kg/cm2]/P

同时公共边的交界问题是通过焊接解决的。下图是当r=10.2m,θ=30°时的主应力和最大的剪应力随着时间的不断变化产生的曲线。右侧的图片则是r=10.1m,θ=30°时的曲线。

图1 图2

本文上述所运用的思路仅仅局限在线性粘弹性框架下。公式比较复杂,但是可以通过计算机进行计算。这种思路运用广泛,还可以在石油测量和钻探方面进行实践。

参考文献:

[1]庞俊勇,吴忠,王有凯,曾伟麟,田凤岐,王思鹏.高应力区不良岩层中巷道支护技术的研究[J].东北煤炭技术,1994(04).

[2]吴满路,张春山,廖椿庭,马寅生,区明益.青藏高原腹地现今地应力测量与应力状态研究[J].地球物理学报,2005(02).

[3]张延新,蔡美峰,王克忠.平顶山一矿地应分布特征研究[J].岩石力学与工程学报,2004(23).

[4]李光煜,白世伟.岩体应力的现场研究[J].岩土力学,1979(01).

[5]李光煜,朱祚铎,江鸣明.大瑶山隧道现场测试及稳定性分析[J].岩土力学,1988(04).

[6]白世伟,丁锐.空心包体应力测量的几个问题[J].岩土力学,1992(01).endprint

摘要:当前的快速掘进巷道构建主要是通过圆形的界面构建的,同时这种类型的墙壁一般来说没有受到过于强烈的爆破震荡的影响。相对于其他种类的巷壁来说更加完整以及不断裂。在这样的前提之下,我们可以通过运用力学中的连续介质理论框架来对整个巷壁和支护体进行共同的作用构建。正是基于这个理论,我们可以进行发散思维,运用粘弹性理论进行有建设性的构架和分析,同时基于这种框架,对整个应力场进行了相对作用下的构建和分析。

关键词:快速掘进 巷道岩石 支护 共同作用 三维应力

当前的巷道和对应的支护结构进行共同作用框架核心就是由于岩石自身的特性进行滞弹性变形的构建,并在这种构建情况的引导下,在对整个巷道进行开挖以及支护下,整个围岩框架通过收敛产生了对支护结构的反作用力,并且这种力度会随着时间产生各种变化。作用力与反作用力构建在这种相对狭小封闭的框架中的直接后果就是使得支护所受到的力度越来越大。如果我们在进行施工支护的时候不对这种力度进行一个相对精确的估计和测量,那么这种越来越大的施力会使得整个支护的结构处于一种不稳定的状态,同时对支护的安全产生相对的危险。针对这种情况,本文着重讨论其三维构架下的应力求解。

1 受力分析模型构建和应力分析

处于理想情况下的受力模型构建下,假设有一个长度为最大值的圆柱体安装在一个无限大的岩石构成体中,这个岩石构成体所受到的力构建即为三维应力,那么我们可以假设这个圆筒自身的半径即为a和b。在这种情况下,圆筒自身就代表着支护体的构成。我们可以假设这个支护体所安装的时间并不长,是在整个岩体进行开挖之后才被装上去的,其间隔时间我们可以设置为T1。这个时候我们就可以进行大胆的猜想,在T1之后,整体的围岩以及支护就开始共同协作产生了作用。本文试图利用对应的公式和计算来推测出整个支护体内所产生的应力分布以及所对应的位移情况。

根据上述文字中构建的模型我们可以假定如下情况。首先,沿着支护体的轴向没有应力或者是其他的物理量的改变,也就是说在虚拟模型上的框架中,变量z和应力等其余的物理量不发生关系。其次,在我们进行巷道的开挖前后,针对于轴向的应变数值也应该保持一个恒定的常量,这样就会使得支护被嵌入的时间成为时间t开始进行的位置。然后我们就可以得出下面的这种算式:

εIz=0

εIIz(t)=■[σz-vr(σx+σy)]=const

在上述的算式当中,I和II分别可以代表支护以及岩石,另外Br和vr则可以代表掩饰自身的弹性常数构建,另外σz、σx、σy则是对应位置上所标示的原岩应力分量。

根据上述结论我们可以看到,如果我们把岩石以及对应的支护体统一看作是线性构架下的粘弹性体,并根据单向负载荷重构建下的横向以及对应纵向的蠕变函数进行自身结构的描绘,那么如果想要对这个问题进行解释和分析就会变得很容易。在这里我们可以用符号来进行代替分析。假设说纵向以及对应横向的蠕变函数用符号代替分别为■和-■ (这里假设B为弹性模量,同时v为泊松比),那么我们就可以知道整个粘弹性体的本体关系构建:

εII=d/dt{[a1(t)-a2(t)]*σII(t)+[a2(t)*θ(t)]δII}

2 运用案例进行岩石地应力的三维实测和巷道稳定性探索

本文所采用的案例是山东的某矿场。本文将重点分析其中的某几个地应力和巷道的受力分析,来对支护进行合理的分析和实践。

2.1 如何确定地应力的自身大小

假设目前的地下某一个关键点对应的分量数值分别为σx、σy、σz、τxy、τyz、τxz并且这六个变量我们可以统一构建成为一个变量σXYZ,那么我们可以确定其中的主应力大小分别为σ1 σ2 σ3,同时基于这之间的关系,大地坐标所采用的XYZ关系可以用这九个方向进行对应的余弦值确定。同时,如果我们在进行对应的地应力实测当中,一般说来钻孔和大地系的坐标轴终会成为以下两种角度之一的构建,即仰角或者是俯角。如果我们使用xyz作为整体的钻孔坐标框架,那么这里的地应力构建就应该被记做如下的形式:σ′xyz =(σx ,σy,σz,τxy,τyz,τxz)

在这个式子当中,括号中的六个坐标可以分别对应地应力所包含的六个分量,而每个下角标中,单独存在一个字母的分量则表示成为正应力的对照,而两个字母则表示为剪应力的对照。为了方便记忆,我们可以规定这其中的x轴为水平孔径的方向,同时z轴也和钻孔的轴线进行重叠。因此根据上述条件可知,如果在进行钻孔自身的应力检测当中得到了对应σ′xyz的全部数值,同时对坐标进行双重转换,就可以得到σxyz的全部结果,并由此也可以推论出主要的盈利大小以及对应方向构建。在这里,我们可以设置一个进行中转的过渡坐标系x′y′z′,并且我们也可以把σ′xyz进行转换,处理成σ′x′y′z。同时设定坐标自身进行旋转倾角为α。他们之间的关系公式为:σ′x′y′z=Tασ′xyz

在这个算式当中,Tα是一个转换矩阵,其自身的阶应力构架为6*6,同时,在类似构架下,x′y′z′所组成的过渡坐标系地应力分量进行旋转,并使其旋转角度达到一个方位角度β,我们就可以经过这种代换得到一个最后的结论:σxyz=Tβσx′y′z。

在这个算式当中,Tβ和Tα一样,也是一个转换矩阵,其自身的阶应力构架同样为6*6。因此,其主要的分量也是由x′y′z′的整体坐标系通过对原有角度进行β度数的旋转之后,通过上述的九个方向自身的余弦值进行组合而最终构成的。因此我们可知,无论目标对象是处于什么样的坐标系下,我们都可以根据当前所获得的盈利分量进行对主应力(σx,σy,σz)的大小数值确定,并且我们所能确定的数值具有唯一性和独特性。

2.2 计算该矿场的应力以及位移

基本资料构建:长度单位:米,时间单位:月

计算岩石以及对应支护的蠕变函数构建:

C1(t)=0.81×10-5+0.29×10-5[1-exp(-0.12×10-12t)][kg/cm2]-1

C2(t)=-0.15×10-5-0.94×10-6[1-exp(-0.12×10-12t)][kg/cm2]-1

A1(t)=0.36×10-5+0.22×10-5[1-exp(-0.12×10-11t)] [kg/cm2]/P

A2(t)=-0.7×10-5-0.45×10-6[1-exp(-0.12×10-11t)] [kg/cm2]/P

同时公共边的交界问题是通过焊接解决的。下图是当r=10.2m,θ=30°时的主应力和最大的剪应力随着时间的不断变化产生的曲线。右侧的图片则是r=10.1m,θ=30°时的曲线。

图1 图2

本文上述所运用的思路仅仅局限在线性粘弹性框架下。公式比较复杂,但是可以通过计算机进行计算。这种思路运用广泛,还可以在石油测量和钻探方面进行实践。

参考文献:

[1]庞俊勇,吴忠,王有凯,曾伟麟,田凤岐,王思鹏.高应力区不良岩层中巷道支护技术的研究[J].东北煤炭技术,1994(04).

[2]吴满路,张春山,廖椿庭,马寅生,区明益.青藏高原腹地现今地应力测量与应力状态研究[J].地球物理学报,2005(02).

[3]张延新,蔡美峰,王克忠.平顶山一矿地应分布特征研究[J].岩石力学与工程学报,2004(23).

[4]李光煜,白世伟.岩体应力的现场研究[J].岩土力学,1979(01).

[5]李光煜,朱祚铎,江鸣明.大瑶山隧道现场测试及稳定性分析[J].岩土力学,1988(04).

[6]白世伟,丁锐.空心包体应力测量的几个问题[J].岩土力学,1992(01).endprint

摘要:当前的快速掘进巷道构建主要是通过圆形的界面构建的,同时这种类型的墙壁一般来说没有受到过于强烈的爆破震荡的影响。相对于其他种类的巷壁来说更加完整以及不断裂。在这样的前提之下,我们可以通过运用力学中的连续介质理论框架来对整个巷壁和支护体进行共同的作用构建。正是基于这个理论,我们可以进行发散思维,运用粘弹性理论进行有建设性的构架和分析,同时基于这种框架,对整个应力场进行了相对作用下的构建和分析。

关键词:快速掘进 巷道岩石 支护 共同作用 三维应力

当前的巷道和对应的支护结构进行共同作用框架核心就是由于岩石自身的特性进行滞弹性变形的构建,并在这种构建情况的引导下,在对整个巷道进行开挖以及支护下,整个围岩框架通过收敛产生了对支护结构的反作用力,并且这种力度会随着时间产生各种变化。作用力与反作用力构建在这种相对狭小封闭的框架中的直接后果就是使得支护所受到的力度越来越大。如果我们在进行施工支护的时候不对这种力度进行一个相对精确的估计和测量,那么这种越来越大的施力会使得整个支护的结构处于一种不稳定的状态,同时对支护的安全产生相对的危险。针对这种情况,本文着重讨论其三维构架下的应力求解。

1 受力分析模型构建和应力分析

处于理想情况下的受力模型构建下,假设有一个长度为最大值的圆柱体安装在一个无限大的岩石构成体中,这个岩石构成体所受到的力构建即为三维应力,那么我们可以假设这个圆筒自身的半径即为a和b。在这种情况下,圆筒自身就代表着支护体的构成。我们可以假设这个支护体所安装的时间并不长,是在整个岩体进行开挖之后才被装上去的,其间隔时间我们可以设置为T1。这个时候我们就可以进行大胆的猜想,在T1之后,整体的围岩以及支护就开始共同协作产生了作用。本文试图利用对应的公式和计算来推测出整个支护体内所产生的应力分布以及所对应的位移情况。

根据上述文字中构建的模型我们可以假定如下情况。首先,沿着支护体的轴向没有应力或者是其他的物理量的改变,也就是说在虚拟模型上的框架中,变量z和应力等其余的物理量不发生关系。其次,在我们进行巷道的开挖前后,针对于轴向的应变数值也应该保持一个恒定的常量,这样就会使得支护被嵌入的时间成为时间t开始进行的位置。然后我们就可以得出下面的这种算式:

εIz=0

εIIz(t)=■[σz-vr(σx+σy)]=const

在上述的算式当中,I和II分别可以代表支护以及岩石,另外Br和vr则可以代表掩饰自身的弹性常数构建,另外σz、σx、σy则是对应位置上所标示的原岩应力分量。

根据上述结论我们可以看到,如果我们把岩石以及对应的支护体统一看作是线性构架下的粘弹性体,并根据单向负载荷重构建下的横向以及对应纵向的蠕变函数进行自身结构的描绘,那么如果想要对这个问题进行解释和分析就会变得很容易。在这里我们可以用符号来进行代替分析。假设说纵向以及对应横向的蠕变函数用符号代替分别为■和-■ (这里假设B为弹性模量,同时v为泊松比),那么我们就可以知道整个粘弹性体的本体关系构建:

εII=d/dt{[a1(t)-a2(t)]*σII(t)+[a2(t)*θ(t)]δII}

2 运用案例进行岩石地应力的三维实测和巷道稳定性探索

本文所采用的案例是山东的某矿场。本文将重点分析其中的某几个地应力和巷道的受力分析,来对支护进行合理的分析和实践。

2.1 如何确定地应力的自身大小

假设目前的地下某一个关键点对应的分量数值分别为σx、σy、σz、τxy、τyz、τxz并且这六个变量我们可以统一构建成为一个变量σXYZ,那么我们可以确定其中的主应力大小分别为σ1 σ2 σ3,同时基于这之间的关系,大地坐标所采用的XYZ关系可以用这九个方向进行对应的余弦值确定。同时,如果我们在进行对应的地应力实测当中,一般说来钻孔和大地系的坐标轴终会成为以下两种角度之一的构建,即仰角或者是俯角。如果我们使用xyz作为整体的钻孔坐标框架,那么这里的地应力构建就应该被记做如下的形式:σ′xyz =(σx ,σy,σz,τxy,τyz,τxz)

在这个式子当中,括号中的六个坐标可以分别对应地应力所包含的六个分量,而每个下角标中,单独存在一个字母的分量则表示成为正应力的对照,而两个字母则表示为剪应力的对照。为了方便记忆,我们可以规定这其中的x轴为水平孔径的方向,同时z轴也和钻孔的轴线进行重叠。因此根据上述条件可知,如果在进行钻孔自身的应力检测当中得到了对应σ′xyz的全部数值,同时对坐标进行双重转换,就可以得到σxyz的全部结果,并由此也可以推论出主要的盈利大小以及对应方向构建。在这里,我们可以设置一个进行中转的过渡坐标系x′y′z′,并且我们也可以把σ′xyz进行转换,处理成σ′x′y′z。同时设定坐标自身进行旋转倾角为α。他们之间的关系公式为:σ′x′y′z=Tασ′xyz

在这个算式当中,Tα是一个转换矩阵,其自身的阶应力构架为6*6,同时,在类似构架下,x′y′z′所组成的过渡坐标系地应力分量进行旋转,并使其旋转角度达到一个方位角度β,我们就可以经过这种代换得到一个最后的结论:σxyz=Tβσx′y′z。

在这个算式当中,Tβ和Tα一样,也是一个转换矩阵,其自身的阶应力构架同样为6*6。因此,其主要的分量也是由x′y′z′的整体坐标系通过对原有角度进行β度数的旋转之后,通过上述的九个方向自身的余弦值进行组合而最终构成的。因此我们可知,无论目标对象是处于什么样的坐标系下,我们都可以根据当前所获得的盈利分量进行对主应力(σx,σy,σz)的大小数值确定,并且我们所能确定的数值具有唯一性和独特性。

2.2 计算该矿场的应力以及位移

基本资料构建:长度单位:米,时间单位:月

计算岩石以及对应支护的蠕变函数构建:

C1(t)=0.81×10-5+0.29×10-5[1-exp(-0.12×10-12t)][kg/cm2]-1

C2(t)=-0.15×10-5-0.94×10-6[1-exp(-0.12×10-12t)][kg/cm2]-1

A1(t)=0.36×10-5+0.22×10-5[1-exp(-0.12×10-11t)] [kg/cm2]/P

A2(t)=-0.7×10-5-0.45×10-6[1-exp(-0.12×10-11t)] [kg/cm2]/P

同时公共边的交界问题是通过焊接解决的。下图是当r=10.2m,θ=30°时的主应力和最大的剪应力随着时间的不断变化产生的曲线。右侧的图片则是r=10.1m,θ=30°时的曲线。

图1 图2

本文上述所运用的思路仅仅局限在线性粘弹性框架下。公式比较复杂,但是可以通过计算机进行计算。这种思路运用广泛,还可以在石油测量和钻探方面进行实践。

参考文献:

[1]庞俊勇,吴忠,王有凯,曾伟麟,田凤岐,王思鹏.高应力区不良岩层中巷道支护技术的研究[J].东北煤炭技术,1994(04).

[2]吴满路,张春山,廖椿庭,马寅生,区明益.青藏高原腹地现今地应力测量与应力状态研究[J].地球物理学报,2005(02).

[3]张延新,蔡美峰,王克忠.平顶山一矿地应分布特征研究[J].岩石力学与工程学报,2004(23).

[4]李光煜,白世伟.岩体应力的现场研究[J].岩土力学,1979(01).

[5]李光煜,朱祚铎,江鸣明.大瑶山隧道现场测试及稳定性分析[J].岩土力学,1988(04).

砖块三维快速测试平台设计 篇3

为方便现场对砖块三维数据的检测。提出了一种基于光电传感技术的砖块三维检测系统。该系统应用光电位移传感器作为检测器件,结合卡尺的相关优点,可同时测量同一方向上的两个尺寸,操作简单,数据读取方便。可有效提高现场砖块检测效率。

1砖块三维检测系统

1.1系统构成及原理

该砖块三维测试系统由光、机、电3部分组成。其中如图1所示,该系统由平台、基准杆、光电量爪、探测爪、尺身、液晶显示等构成系统的基本框架。其中,基准杆放置于平台侧面的中间具有一定的宽度,可有效的作为被检试样的基准面和尺身刻度基准;尺身分为上尺身和下尺身,刻有精度为0.5 mm的刻度,方便光电检测装置校准和手工测量,上尺身可以沿左右基准杆上下移动,下尺身嵌于平台当中,上表面与平台上表面持平;光电量爪装有光电检测传感器,可在尺身中左右移动以检测砖块三维尺寸;两光电量爪前端装有探测爪,其目的是为了减少因为光电传感器安装位置问题带来的检测误差。

系统应用光电位移传感器作为核心器件。结合砖块检测特点,即要求每块砖样检测6个尺寸数据,长宽高各两个。其中,基准杆、平台作为被检试样的基准面,当试样放置于平台时(如图1虚线方块所示)移动上尺身使得上尺身与试样上表面持平,此时移动两个光电测量爪,即可测得宽度数据,可同时在液晶显示屏中读出。同理,只要将被测试样经行旋转和翻转,改变基准杆对应的基准面,就可测出被测试样的长度和高度数据,操作方便且高效。

1.2光电测距尺测量原理

如图2所示,光电测距尺由光电量爪、尺身组成。光电量爪紧扣于尺身当中,且可沿尺身横向自由移动。光电量爪中集成了光电位移传感器和数据处理MCU。当光电量爪沿尺身横向移动时,光电位移传感器中的光电成像系统,会截取尺身表面的部分图像。并将这些图像传输到光电测距传感器中的信号处理器DSP当中,DSP将当前获取的图片与上一采样周期获得的图片进行相关图像分析,根据图像相关性算法得出两个图像同一点移动的距离,从而得出光电量爪在尺身中移动的距离。对光电量爪进行校准,使其所在位置的横坐标与尺身刻度相一致。这样通过计算光电量爪的相关位移,就可得出量爪所对应的尺身刻度值。

1.3系统硬件组成

由于本系统需在复杂的露天环境下运行,需要稳定可靠的硬件系统做支撑。基于上述原因,该系统采用多MCU设计。可有效的进行数据读取、处理、存储、显示。其结构框图如3图所示。

系统中,光电传感器完成图像采集及处理,得出相对位移x。再将此数据用SPI高速接口传送到二级MCU中,二级MCU通过相关算法将光电传感器数据进行转换得到以mm为单位的位移数据,对当前数据进行存储。并间隔10 ms将转换好的数据以串口通信的方式,传送到主MCU中进行位移累加、位移数据存储、显示等。应用多MCU硬件模式的主要目的在于,可以有效的确保外界复杂操作环境下数据测量稳定性和准确性。

该系统选取市场上较为成熟,且适合小位移测量的光学传感器ADNS5090,此款传感器具有2 250 PFS默认帧频,该数值可以通过编程改变,对于不同的检测场合可以使用不同主频的MCU最大程度的减少丢帧率。同时其具有1 750 CPI的分辨率[2],即其测量精度可达到0.015 mm,满足国标对砖块测量精度0.5 mm的要求。

与此同时,为使光学检测传感器传输数据与MCU接收数据同步,系统选用ATtiny13A低功耗单片机作为二级MCU,该单片机在2.8 V电压下具有10 MHz主频[3],8脚PDIP封装可以很好的集成在光电量爪中节省空间。其具有一个可配置成SPI接口的USI接口,可用来与光电传感器进行数据传输。由于,此款单片机不具有串行接口,该系统采用软件模拟串口协议,与主MCU进行相互通讯,这种方式可以有效的节约硬件资源。主MCU采用ATmega48单片机,28引脚PDIP封装,23个可编程的I/O口线。可编程的串行USART接口和一个UART串行接口,用于与二级MCU的串行通讯。另外,其具有4 K字节的系统内可编程Flash,擦写寿命为10 000次,可有效确保现场测试数据的保存。具有独立片内振荡器的可编程看门狗定时器五种休眠模式:空闲模式、ADC 噪声抑制模式、省电模式、掉电模式和待机模式,其大多数指令执行时间为单个时钟周期,有较快的程序执行速度。

在人机交互方面,采用HT1602字符型液晶来显示各种测量数据。输入模块由4个按键组成,用于对量测校正数据的输入,砖块历史数据的查阅等。

2系统实验数据

应用规格为240 mm×115 mm×90 mm的烧结多孔砖样品,对该系统检测砖块三维尺寸准确性进行实验认证。其中将该系统检测出的砖块尺寸与应用传统的砖用卡尺检测出的数据进行对比分析,检测结果如表1所示。

从表1可以看出,应用常规卡尺检测法与该系统光电检测法,所得出的砖块尺寸基本一致,两者检测结果有较好的一致性。

3结语

该文设计了应用光电检测法检测砖块三维数据的检测平台。应用该系统可以较快的检测砖块多组数据,简化检测流程,具有较好的实用价值。通过实验验证,该检测方案有效可行。

摘要:针对砖块三维尺寸现场检测数据量大不易简便测试问题,设计了基于光电传感技术的长度检测系统,用于砖块三维尺寸的快速检测。该检测系统应用AVR ATtiny48为核心处理器,采用ADNS5090作为测距传感器,应用多MCU协同处理方式,来实现同时检测砖块两个尺寸目的。具有较好的人机交互界面,采用MCU实时存储现场测试数据。系统检测数据精度高,设备小易于检测人员操作和数据记录。文章给出了系统软硬件组成、光电测距基本原理、系统实验数据。

关键词:砖块三维检测,光电测距,ADNS5090

参考文献

[1]GB2542—2003,砌墙砖试验方法[S].

[2]Avago Technologies,ADNS5090 datasheet,http://www.avagotech.cn 2010.4.5.

快速三维分析 篇4

关键词:虚拟城市虚拟GIS三维建模AutoCAD VBA

中图分类号:TP39文献标识码:A文章编号:1007-3973(2011)005-048-03

1.前言

目前,虚拟城市景观的构建主要以综合运用OpenGL、3D MAX、VRML以及其他虚拟现实建模软件(如MultigenCreator等)来实现。然而,当前虚拟城市开发项目中仍存在很多不足,比如当前虚拟城市建模工作量相对庞大,场景建立程序繁琐,系统运行效率较低,人工对海量数据处理难度较大。

针对以上不足,本文提出了一种简便、快速的虚拟城市建立方案。该方案以AutoCAD VBA、VRML建模语言及数据库技术为主要手段,结合其他建模软件,自动完成地形图数据读取、三维模型建立、纹理映射、场景集成及渲染等工作,并通过WEB技术进行网络发布,实现基本GIS功能。下面将对该方案做具体阐述

2.虚拟城市三维场景快速构建

2.1数据准备与处理

2.1.1数据准备

虚拟城市的建立需要大量的数据资料做基础。虚拟城市景观信息主要包括建筑物及其附属设施、交通及其附属设施(铁路、道路、交通指示牌、桥梁、候车亭、收费站等)、公用设施(电力线、通讯线、路灯、邮箱、加油站、垃圾桶、旗杆、标志牌等;景观及游乐设施(雕塑、缩微景观、游乐场)、植被及绿化带(树木、草地、花丛)、水系(河流、湖泊、水库等)。将所得实体的描述性信息相关数据按分类进行编码,并将实体主要属性标记为唯一标识码,方便查询和识别,以SQL为平台,建立城市景观信息数据库。

2.1.2数据处理

由于AutoCAD只能存储图形数据,或存储少量的非图形信息,在数据采集中,注意将图形数据与非图形数据分开,并对图形数据进行分层处理。为方便建模,图层可分为;底板、建筑建筑物附属、道路、道路附属、水系、植被、行人、汽车等。每个图层采用不同的線型和符号表示不同类型的地物。底板、建筑建筑物附属、道路等为线型对象,主体图形为闭合多段线,属性标高为实体高度;道路附属、植被等为点对象,通过其颜色表示其种类;行人、汽车等地形图中没有的地物,需要人工绘制点对象。下图为示例CAD地形图

2.2纹理库的建立

2.2.1纹理数据的获取和处理

纹理数据获取主要有两种方法。对于精度要求较高的模型纹理主要通过实地拍摄获取,数据量较大,处理难度较高,但纹理真实感较强。对于一般材质贴图纹理可利用3D Max等软件进行计算机合成,减小数据量,提高运行速度。但是,在图像的实际采集过程中,由于空间地理位置、视角原因、大气环境等的限制影响,无法得到目标的正摄影像,因此要对所得纹理进行处理。图形处理操作主要包括,对图像扭曲变形的处理、去除遮挡物与影像增强、图像透明化处理以及图像数据量的缩减等。

2.2.2纹理编码与纹理信息入库

为了实现建模自动化,要将处理后的数字图像纹理进行统一编码并建立纹理入库,并通过相关信息与对应的模型进行关联。地物在AutoCAD文件中以几何体形式表示,软件可以提供几何体的图形文件以及相关的附属信息。在AutoCAD中,模型的几何实体句柄是唯一确定的,可据此完成图形信息与纹理信息及相关非图形数据的链接。

2.3自动三维建模

考虑到城市景观模型的精确度和所得虚拟场景的网络传输性,采用VRML语言进行虚拟城市的构建。然而,单纯依靠VRML文本编辑器进行编写工作量巨大,因此可采用VBA链接数据库,读取AutoCAD图形数据,自动完成三维建模,并转换成VRML文件,提高虚拟城市建模的工作效率。下面具体介绍几种主要地物的建模方法:

2.3.1地形地貌建模方法

现实的城市建设往往建立在复杂的地形之上,为真实展现虚拟城市场景,应首先建立地形地貌模型。首先,利用VBA编写代码,读取相应地形图数据,在3DMax中导入地形图,进行地貌模型建立。如图2为读取的AutoCAD地形图,图3为建模之后效果图。

2.3.2实体地物建模方法

城市景观中,建筑物占比例较大,大多数的建筑物造型较为规则,用传统的3DSMAX建模可达到造型逼真、质感强、造型细腻等特点,然而其致命弱点是数据量极大和实时漫游困难,且工作量巨大。城市中普通建筑物群多具有标准的几何特性,不需细致造型,通过完通过AutoCAD VBA编程自动读取相关数据,完成模型的批量处理,减小工作量及场景的数据量。下面以一具体实例说明。图4所示为楼群AutoCAD地形图,定义楼体轮廓线为AcadLPolyline对象,通过AutoCADVBA编写代码,对闭合多段线进行拉伸处理,自动生成三维模型,生成模型如图5所示。通过AutoCADVBA与纹理库进行连接,进行纹理映射,对所得模型进行贴图处理,最后通过编程生成VRML代码,完成建筑物场景建立,其部分代码如下:Sub GetVrmlMdlFromCAD()

Dim ExTendV As Double,num As Integer,n As Integer,i AsInteger

Dim e As AcadEntily,pl As AcadLWPolyline,xy()As DoubleFor Each enln ThisDrawing.ModelSpace

Ife.ObjectName="AcDbPolylineAnde".Layer="house"Then

Set pl=e

xy=pl.Coordinates()

n=UBound(xy)

hum=hum+1

Open"house.wrl"For Output As#l

Print#l,"#VRML V2.0 utf8"

Print#l,"Transform(translation 674.330-311.27"

Print#l,"children[DEF GuangGaol Transform{"

Print#l,"children[Billboard{axisOfRotation0.01.00.0"

Print#l,"children[Shape{"

Print#l,"geometry IndexedFaceSet{"

城市三维空间模型快速构建方法研究 篇5

部队处理突发事件的现场大多在城市,地理环境十分复杂,任务却具有高精确性、高技巧性和不可重复性的特点,常规训练手段已经不能适应。因此,针对城市三维空间数据模型的快速建立,对于提高部队作战水平,就显得尤为重要。目前,对于小范围内、大比例尺条件下的城市环境三维空间数据模型研究还比较少,但是不少学者提出了许多方案,应用于不同的领域。具有代表性的三维空间数据模型包括:Bak和Mills提出一个典型的地学资源管理系统(GRMS)[1],Rongxing Li提出一个基于多种表示的三维GIS系统[2]。Molenaar提出一个形式化三维数据结构(Formal Data Structure,FDS),定义了一个三维矢量数据模型和三维拓扑关系[3]。龚健雅提出一个以矿山应用为背景的矢量与栅格集成面向对象的三维数据模型[4]。Victor和Pilout.M.et al提出一个基于点四面体格网(Tetrahedral Network,TEN)的三维矢量数据模型[5]。李清泉、李德仁等针对城市三维领域的应用,提出用于城市三维空间数据模型的集成方法,即基于不规则三角网(TIN)和简单几何形体(CSG)的集成模型[6]。

在现有的三维空间数据模型中,有便于描述规则目标的模型如CSG和BR,也有便于描述不规则目标的模型如TIN和TEN。采用单一的数据模型很难对各种类型的空间实体进行描述。解决这一问题的办法主要有2种:一种是将不同的数据模型集成在一个系统中。对于不同的空间实体,选择不同的空间模型,采用不同分析和处理方法。另一种是,研究发展具有适应性更好的混合数据模型。然而,对于混合数据模型而言,本身就存在着很多复杂性。对此,学术界普遍偏向于第一种解决方案[7]。

本文就是在TIN+CSG三维空间数据模型集成的基础之上,进行适当的优化,提出一种TIN+CSG的快速建模方法,即在TIN模型的构建过程中,采用一次性生成约束TIN,CSG模型快速提取和CSG体素生长法相结合的方法,实现城市三维空间数据模型的快速建立。

2 城市三维空间数据模型快速建立方法的研究

2.1 一次性生成约束TIN

不规则三角网(TIN)是表示数字高程模型的一种方法,对它的研究已经相当深入[8,9],其最大的优势在于可变分辨率。表面相对单一时,在同样大小的区域内TIN则只需少量的数据点;与此同时TIN还能充分利用地貌的特征点、线,较好地表示复杂地形。多年来,TIN模型一直是人们研究和关注的热点。在TIN的基础上,加入约束条件后,形成约束Delaunay三角网(CD-TIN)。CD-TIN能够充分地考虑到离散数据的实际要求,生成的CD-TIN也能够符合空间分析的需要,因此将CD-TIN作为城市三维空间模型中地形模型的主要表示方法。

CD-TIN的常规构建方法是“两步法”,即先对约束数据集建立非约束的TIN模型,再在其中加入约束线段,并进行优化调整形成CD-TIN[10]。“两步法”具有固有时间效率低等缺点,通过阅读文献资料,研究常规三角网和约束三角网之间的区别与联系,无约束数据域和约束数据域之间构网算法的差别,提出在算法上具有运算效率高,实际效果符合城市地形模型基本要求的一次性生成CD-TIN算法。

一次性生成CD-TIN算法的基本原理是:以约束点构成的约束边为起始,分别寻找符合要求的左右数据点,生长为基于约束边的左右三角形,在以新生成的三角形边为起始边,生成左右三角形,直到构建完整的CD-TIN。最后,以非约束线段为依据,进行优化判断,对需要优化的三角形使用常规方法进行优化。一次性构建CD-TIN算法,先根据约束数据构建初始TIN,在此基础上生成CD-TIN,节省了重新构网的时间,实际构建时间比较理想。

2.2 建筑物结构的提取

由于城市建筑物多为规则建筑物,且动态变化较大,因此在建筑物模型的建立上采用CSG模型。如何在CSG模型的建立过程中对建筑物的进行准确提取和组装,多年来一直是该领域研究的难点之一[11]。本文在利用地面影像的基础上,采用单幅影像提取建筑物基本结构,采用数码相机通过地面摄影,在采集纹理的同时,对建筑物结构进行了提取。

要获得三维世界的建筑物框架,需要先建立观察用的坐标系,该坐标系定义与照相机相对应的观察平面或投影平面的方向,然后将对象转换到观察坐标系下并投影到观察平面上。如图1所示照相机的观察平面坐标系和真实三维空间位置坐标以及裁减窗口坐标系之间的关系。其中P(X,Y,Z)是空间任意一点的坐标,是相对于O-XYZ坐标系而言的,通过照相机的取景等操作,在照相机的现实平面坐标系中存在一个投影位置p(x,y),这就是空间点P在照片中的投影坐标。这里就是通过对照片中关键点坐标的提取,进而得到关键点的空间坐标,实现对建筑物的提取。

观察平面上的点p(x,y)与空间中对应点P(X,Y,Z)的有如下几何关系:

[XYΖ]=λR[xy-f]+Τ(1)

式(1)中λ为比例因子;R=(ai,bi,ci)T,i=1,2,3为旋转矩阵,表示照相机坐标系(Oc-XcYcZc)在空间坐标系的方位;T=(a,b,c)T为平移变量,表示照相机坐标系在空间坐标系中的位置。

建筑物的边界是由一系列平行线组成的,通过对相机照片中建筑物边界进行计算机处理和平行线提取,可以计算灭点坐标,继而得到建筑物角点的空间坐标。在透视投影中,空间中一组投影平行线汇聚的点成为灭点[12]。利用房屋平行边界的投影相交可以计算灭点。假设图像上灭点m(xm,ym),设其中任一条与其他线段平行的影像线段两个端点分别为i(xi,yi),j(xj,yj),点i,j一定与对应的灭点m共线。

(yj-yi)(xm-xi)-(xj-xi)(ym-yi)=0 (2)

进而再用最小二乘法求灭点[13]。

普通数码相机的各项参数需要经过计算得到。较为简单的方法是用照相机在平面格网的四边上,取水平、竖直左和竖直右3种方式,固定焦距、光圈,各拍摄3张照片,获取不同方位、角度下的方格网影像计12张,用最小二乘法平差求出数码像机的各参数。

通过对灭点方程(2)的建立,可以得到所求建筑物的外边界轮廓长度L,接下来需要计算建筑物角点的坐标。以规则的长方体为例,为了减少未知量,将坐标系原点设在建筑物其中的一个角点上。

从任何角度进行观察建筑物三维模型,最多只能看到7个点。如图2所示,设建筑物模型中可见的7个点为:Xi,Yi(i=1,2,…,7),并设点2为坐标原点(X2=Y2=Z2=0),23为X轴方向,其长度L,即X3=L,Y3=Z3=0。一般情况下,若已知其中的一个空间坐标,就可以求出其他几个点的坐标。这样就可以建立从单幅影像上的二维坐标到屏幕的三维空间坐标的转换,实现对建筑物结构的提取。近景摄影测量获取建筑物模型的流程如图3所示。

2.3 利用体素生长法构建建筑

CSG模型存在一些缺陷,其中一点就是建筑物的CSG表示不惟一[14]。如图4所示,图4(a)是一个结构简单的建筑物模型,按照分解体素最少的原则划分会有2种分法:图4(b)和图4(c)。而按照分解体素最小的原则划分,会得到图4(d)这样的结果。

分解结果图4(b)和图4(c)在分解过程中,尽管遵循了体素较少的原则,从某种程度上提高了模型的分解和组装速度,但是分解结果图4(d)具有体素顶点焊接关系好,顶点都出现在每条边的端点,而没有在边的中部或面的中部,这种分解有助于提高建筑物的建模的精细程度。同时,采用这种分解方法,对下一步采用体素生长法拼接体素带来了便利。因此这里规定采用图4(d)这种分解方法。然而对于图4(d)结果而言,为了克服由于分解体素带来的相对较多的处理时间,采用改进的体素增长法,来缩短建筑物的建模时间。

根据体素生长法的定义,即从一个体素中提取与之临接的体素的几何信息,并直接在这个体素基础上构建另一个体素。图5所示就是一个体素生长的例子,以现有的一个体素为基础,通过公共面,将待拼接体素通过公共面表示出来。但是对于相对复杂的建筑物结构,按照常规的体素生长法,很难一次性完成体素的拼接。以图4(d)的分解方法为例,提出体素生长法建模的一般步骤。

(1) 按照体素最多原则分析模型,建立生长关系图,如图6所示。

(2) 将每个生长关系图转化为树,如图7所示。

(3) 对每一个树选取根节点作为基础体素,确定生长面,在生长面上生成树中的下一体素,并以新生长的提速为基础体素。依此类推,遍历所有节点。最后按照基本的装配原则,对每棵树进行装配。

体素生长法的优势在于能够在快速实现建筑物CSG体素模型拼装速度的同时,减少重叠面重绘带来的数据冗余。

3 结 语

建筑模型是城市三维现场环境中出现较多的模型,本文结合实际应用,突出对城市三维空间的快速构建。利用数码相机进行数据采集,并通过求灭点得到建筑物角点的空间坐标,实现对建筑物结构的快捷采集;在利用CSG体素构建建筑物模型时,提出改进的体素生长法,提高了建筑物模型的组装效率。总之,通过对两种方法的结合,在数据采集和模型分解组装过程中都提高了城市三维空间数据模型的构建速度,基本实现了城市三维空间模型的快速构建。

快速三维分析 篇6

近年来, 大尺寸测量的研究集中于结合计算机视觉技术和近景摄影测量技术的非接触式光学测量法。国外开展数字近景摄影测量技术研究较早, 美国GSI公司推出了V-STARS产品, 德国GOM公司推出了Tritop系统, 但这些国外测量系统价格不斐, 难以普及。 国内对近景摄影测量技术也有着深入研究, 主要偏重于地形、建筑测量, 如中国工程院院士张祖勋推出的数字近景摄影测量系统Lensoft[1]主要用于地质、地理信息测量。

本文针对大型飞机的三维测量难题, 研制了XJTUDP三维摄影测量系统, 用来测量飞机表面粘贴的全局标志点, 建立飞机的整体外形框架;研制了XJTUOM三维光学面扫描系统, 用来测量飞机局部区域的密集点云, 并根据本区域内的标志点自动匹配到全局坐标系。两套系统配合使用, 可以完成大型飞机从测量到建模的全过程。

1 XJTUDP三维摄影测量系统关键技术

大型飞机的三维测量过程如下:①测量准备, 在飞机表面粘贴编码点和非编码点, 如图1所示;②采用高精度数码相机拍摄上百张飞机各个角度的照片, 由XJTUDP三维摄影测量系统计算标志点的三维坐标;③采用XJTUOM三维光学面扫描系统一次扫描1m×1m区域的密集点云, 自动注册到标志点的全局坐标 (图2) , 扫描上百次以完成飞机轮廓的密集点云采集;④数据处理, 将多次扫描的点云合成完整的飞机点云, 自动删除重叠区域的点云, 生成飞机的三维CAD模型。

1.1 标志点检测

在开始测量前要在飞机表面粘贴标志点, 测量的过程就是通过所拍摄的飞机表面多个位置的图像重建出标志点的三维坐标。本文使用两种圆形标志点, 如图3所示, 即黑底白色圆点和带有环形编码的圆形标志点。

使用圆形标志点可以获得比较高的检测精度, 带有环形编码的标志点则可以方便地实现同名点的匹配, 用来实现相机姿态自动定向。圆形标志点经过投影后在图像上呈椭圆形, 标志点检测流程见图4。首先将获取的图像转化为8位灰度图像;再使用Canny算子进行边缘检测[2];在结果中搜索可能的椭圆边界, 同时排除不可能的边缘;对确认椭圆边界的图像点使用梯度均值法进行亚像素修正, 然后使用最小二乘法拟合得到椭圆中心和长短轴、旋转角等信息;最后以该椭圆为中心, 在其外围对原始灰度图进行灰度采样, 得到编码环的编码, 如果存在该编码值, 则认为是编码标志点, 否则为非编码标志点。

1.2 相机姿态自动定向

相机姿态定向就是确定每一幅图像6个外方位元素的过程[3], 分相对定向和绝对定向两种。确定两幅图像相对方位的过程叫做相对定向;确定一幅图像在物方坐标系中的绝对方位的过程叫做绝对定向。相机姿态定向是光学测量的基础, 精确的相机姿态自动定向也是光学测量的难点[4]。本文使用环形编码标志点实现相机姿态的自动定向, 具体流程如下:①对所有图像逐一进行标志点检测, 编码标志点要检测出相应的编码环数值;②搜索两幅包含6个以上公共编码标志点的图像, 根据公共点的数量对搜索结果排序;③对搜索结果中第一组的两幅图像进行相对定向, 如果定向不成功则换下一组图像继续进行相对定向;④两幅图像相对定向成功后, 以其中一幅图像投影中心为坐标原点建立坐标系, 重建出公共编码标志点的三维坐标;⑤在未定向的图像中搜索包含6个以上已重建标志点的图像, 使用直接线性变换 (DLT) 方法进行绝对定向, 定向成功后, 再重建出该图像与其他已定向图像中未重建的公共编码标志点;⑥重复步骤⑤, 直到没有新的图像可以被定向为止。经过以上6个步骤, 就可以实现相机姿态的自动定向。相机姿态绝对定向采用直接线性变换的方法求解, 该方法属于线性解法, 需要至少6个公共点。

1.3 相机自标定与光束平差法

相机自标定是指将相机内外参数放在一起同时进行整体平差计算[5,6], 也就是带有附加参数的整体光束平差计算。本文的光束平差中将相机内参数、相机外参数和物方点世界坐标均作为观测值参与优化。在光束平差时考虑相机镜头的径向畸变、切向畸变和薄棱镜畸变, 以降低重投影误差, 提高标定精度。

1.4 非编码标志点匹配和重建

标志点的匹配就是在多个图像中寻找同一个物体点对应的像点的过程。立体匹配是计算机视觉中的难题之一[4], 由于受光照条件、噪声信号干扰、镜头畸变等诸多因素影响, 使得空间三维目标被投影到二维图像时, 在不同的视角下可能会有较大不同。摄影测量中常用的匹配算法有最小二乘匹配、基于特征的匹配和灰度相关匹配等。对于带有环形编码的标志点, 由于具有唯一标识的编码, 因此, 可以方便利用其特征编码进行立体匹配。然而, 没有编码的圆形标志点的正确匹配却是个难题。在双目立体视觉中, 基于外极几何关系的匹配算法因只能推断出匹配结果在外极线上, 匹配歧异性较大而影响其广泛应用。近景摄影测量中存在多个相机位置, 利用多个图像上的外极线约束就可以大大提高非编码标志点匹配的正确率[7]。

2 XJTUOM面扫描系统关键技术

2.1 计算机双目视觉

XJTUOM采用双目CCD相机, 两相机和投影仪成相同的角度摆放。结合以上的摄影测量原理, 增加左右相机之间的相对关系, 最终获得物体点坐标的计算公式如下:

式中, LR分别为左右相机标定矩阵值, L0, 0、R0, 0分别为矩阵LR中的第 (0, 0) 个元素, 其他依此类推; (uL, vL) 为左相机图像坐标值; (uR, vR) 为右相机图像坐标值; (X, Y, Z) 为物体表面点的空间坐标值。

2.2 外差式多频相移技术

XJTUOM软件采用外差式多频相移三维光学测量技术, 利用空间频率接近的多个投影条纹莫尔特性的解相方法, 能够非常简洁可靠地对条纹进行解包裹。分别投影多种不同空间频率的条纹于待测面上, 摄像机摄取变形的条纹图, 并利用相移法求取多种条纹的相位主值, 从而恢复出条纹的真实相位来。外差式多频相移技术采用四步相移法, 每步三个频率, 共投射12个光栅。四步位相转变模式使用下式获得:

式中, I1 (x, y) 、I2 (x, y) 、I3 (x, y) 和I4 (x, y) 分别为四步位移的光强;T模式周期;Imin (x, y) 和Imax (x, y) 为四步位移光强的最小值和最大值;Im (x, y) 为调制强度。

ΔΦ=arctan[ (I2-I4) / (I1-I3) ] (9)

式中, ΔΦ为相位差。

根据相位调制函数求出ΔΦ和投影光栅上某一点的物体上的偏移距离b:

b=p2πΔΦ (10)

式中, p为条纹周期。

由三角测量法求出物体表面上该点的高度值:

z=blD+b=pl2πDΔΦ (11)

式中, D为相机和投影仪间的距离;l为相机和投影仪所在直线与该点之间的距离。

3 试验与分析

按照大型飞机的测量要求, 参照德国VDI/VDE 2634光学测量标准, 进行以下试验以验证系统精度和稳定性。XJTUDP和XJTMOM软件的使用环境为WindowsXP, 开发语言为VC6.0。

3.1 测试 XJTUDP系统精度

按照德国VDI2634标准, 采用图5所示的测试框架, 尺寸大小为2m×2m×1m, 在框架各处布置参考点和标尺, 然后在多个方向拍摄照片, 重建参考点坐标后测量5组参考点距离, 重复拍摄7次, 同时以德国GOM公司Tritop系统的测量结果作为标准, 对比XJTUDP的测量结果, 如表1和表2所示。

从结果中可以看出, XJTUP系统与德国Tritop系统的测量结果接近, 误差小于0.01mm, 且重复精度较高。

3.2 测试XJTMOM精度

试验步骤一:采用Canon 400D单反相机、XJTUDP软件;被测对象 (图6) 为标准哑铃球, 另有10位编码点若干、因瓦合金标尺1根, 拍摄16张照片后输入XJTUDP软件计算导出全局标志点, 存为标志点文件。

试验步骤二:采用XJTUOM软件, 以图6中哑铃的球模型作为对象, 导入标志点文件, 分别测量相机视区居中、右上、右下、左下、左上5个位置的标准距离、近距和远距, 每组测量5次, 要求尽可能捕获哑铃球的全部点云数据。将获得的哑铃球数据在Imageware中经Merge后, 进行球拟合, 测得单个球径。本次测试使用的哑铃球径r=10.0116mm。

表3列出的测量结果数据显示, 15个方位下的拟合球的半径都接近球的实际半径, 说明本系统在视场内不同区域的测量结果具有一致性。

表3中拟合球的半径与球的实际半径的平均偏差为0.0118mm, 此即为系统误差。标准差为0.0028mm, 反映了XJTUOM系统的随机误差。根据3σ 标准, 本系统的测量精度为0.02mm。

4 结论

本文针对大型飞机的三维测量, 研制了采用工业数字近景三维摄影测量技术的XJTUDP系统和采用计算机双目视觉技术的XJTUOM系统。研究了标志点检测、相机姿态自动定向、相机自标定光束平差与非编码标志点匹配、重建和厚度校正等技术。基于摄影理论开发出XJTUDP软件, 计算出大型飞机表面粘贴的编码点和非编码点, 导出全局标志点, 这些标志点是点云后处理阶段多视拼合的基础和依据。开发的XJTMOM大幅面三维光学扫描系统基于外差式多频相移技术和计算机双目立体视觉技术, 在导入全局标志点后, 自动扫描的每幅点云依据标志点实现无缝拼接, 精确采集物体表面的三维数据。试验结果表明, XJTUDP系统的测量精度为0.01mm, XJTUOM系统单幅面扫描精度小于0.02mm, 完全可以满足大型飞机的三维测量。

摘要:为了实现大型飞机的光学三维快速测量和建模, 采用数字近景摄影测量技术研制了三维摄影测量XJTUDP系统, 采用外差式多频相移技术研制了XJTUOM面结构光密集点云采集系统。对数字近景摄影测量关键技术进行了研究, 使用环形编码标志点实现相机姿态自动定向, 将光束平差应用于相机自标定, 用于优化测量结果。通过多个相机位置外极关系解决非编码标志点的匹配与重建问题, 并去除了标志点厚度带来的测量误差。试验结果表明:XJTUDP系统的测量精度为0.01mm, XJTUOM系统测量精度为0.02mm, 满足50m长度的大型飞机的三维测量建模要求。

关键词:光学测量,近景摄影测量,光束平差,相机自标定

参考文献

[1]张祖勋, 张剑清.数字摄影测量学[M].武汉:武汉测绘科技大学出版社, 1996.

[2]Ho C T, Chen L H.A High-speed AlgorithmforElliptical Object Detection[J].IEEE Transactionson I mage Processing, 1996, 5 (3) , 547-550.

[3]冯文灏.近景摄影测量[M].武汉:武汉大学出版社, 2002.

[4]Luhmann T.Close Range Photogrammetry[M].London, UK:Whittles Publishing, 2000.

[5]Hassanpour R, Atalay V.Camera Auto-calibrationUsing a Sequence of 2D I mages with Small Rota-tions[J].Pattern Recognition Letters, 2004, 25 (9) :989-997.

[6]Fraser C S.Digital Camera Self-calibration[J].Photogrammetry&Remote Sensing, 1997, 25 (4) :149-159.

快速三维分析 篇7

关键词:结构光三维测量,图形硬件,GPU,快速计算

0 引言

基于结构光的三维测量技术[1,2]因为其非接触、高精度等优点,被广泛应用于实际测量中,面扫描三维测量技术和设备是目前最先进的测量手段,也是高端制造最重要的技术之一,已成为提升复杂零部件数字化设计、制造、检测一体化能力的关键环节。现阶段,由于大型复杂零部件的自身特点,快速三维测量存在困难[3,4]。同时,在线测量对测量效率提出了更高的要求[5,6]。

基于相移法的三维测量技术是结构光三维测量的典型代表,其工作过程主要包括4个步骤:1)图像校正;2)相位展开;3)极线匹配;4)三维点计算。由于三维测量工作过程固有的复杂性,在不牺牲测量精度的前提下,时间复杂度难以大幅度降低。更何况目前分辨力为百万级(5百万、8百万)甚至千万级像素摄像机已经进入测量领域,每一幅图像分辨率的大幅度提高,使得三维测量过程中CPU的计算速度更慢,导致测量效率进一步降低[7]。以极线匹配为例,左摄像机获得的惟一特征需要在右摄像机特征中找到惟一匹配点,依据极线约束,要遍历右摄像机的一条极线上的特征,需要1百万乘以极线长度次数的搜索,以百万像素摄像机为例,即要搜索的长度近1千像素,所做的计算约为10亿量级,这还不包括找对应点的插值计算等。现有的提升计算速度主要有以下几种,一是提升CPU计算能力,但近年来单核心CPU在计算能力上很难有质的提高,尽管目前CPU核心数量增加,但其指令系统更倾向于处理任务,计算性能的提升并不明显。尽管CPU已经向多核心发展,CPU的多线程和并行计算功能已应用于众多领域,典型的多线程代表为Open MP,但多核CPU核心数量突破遭遇瓶颈,目前仍以四核、八核为主,受核心数量限制的并行速度提高有限,同时由于操作系统的流水线作业调度方式和CPU本身在浮点运算上的限制,使基于CPU的多线程操作的加速效果仍然无法满足人们对计算速度的需求;二是采用外部硬件加速技术,如采用DSP、FPGA等[8,9],这种方法主要通过对处理结构控制电路的可配置化以及指令化设计,构建与数据组织形式相适应的多级流水线乘加逻辑计算单元来加快运行速度,但该种方式需要增加额外的配置及费用;三是以优化计算过程为手段的加速技术,其中以Fusiello为代表所提出的极线校正方法[10],即所有极线调整为图像水平方向,这样可以避免每次都计算极线方程而缩减计算时间。但该方法在构建水平极线特征需要进行插值计算,计算对应点时需要回算原始坐标,所以总的缩短时间有限。

图形处理器(Graphic Processing Unit,GPU)主要应用于图形、图像处理计算,其拥有数十倍于CPU的浮点运算能力,根据这一特点,如何将其应用到三维测量过程中,大幅度提高测量速度,已经成为目前研究的热点。本文针对三维测量的四个具备并行度的过程,为每个过程设计了在GPU上可实现的具体算法流程,并根据数据规模及GPU特性,采用纹理存储技术,设计了一种全局、全幅面位置记录数据的GPU设备端数据结构组织方式,为结构光三维测量系统提供了有效的加速算法。

1 结构光三维测量

结构光三维测量主要利用双目立体视觉技术,该技术采用两个视点获取同一物体不同视角下的图像,并基于三角法原理进行三维信息的获取,即由两个摄像机的图像平面和被测物体之间构成一个三角形。已知两摄像机之间的位置关系,便可以获取两摄像机公共视场内物体特征点的三维坐标。

双目立体视觉成像模型如图1所示,左摄像机光心为Cl,右摄像机光心为Cr,空间物体表面某位置点P在左右相机成像面形成的像点分别为Pl与Pr,空间位置点P既在直线ClPl上,又在直线CrPr上,P点是这两条直线的交点,可以通过计算,唯一确定该位置点的三维坐标。

设空间点P的齐次世界坐标为P(Xw,Yw,Zw,1)T,其在摄像机成像平面上的齐次投影坐标为p(u,v,1)T,根据针孔成像模型,得到该空间点的图像坐标系与世界坐标系关系

式中:s为缩放系数,(u0,v0)为主点坐标,f为摄像机焦距,ax=f(14)dx为水平方向的焦距长度,ay=f/dy为垂直方向的焦距长度;P=M1M2称为投影矩阵,其中M1由ax,ay,ax,u0,v0决定,由于ax,ay,u0,v0只与摄像机内部结构有关,称为摄像机内部参数;M2完全由摄像机相对于世界坐标系的方位决定,称为摄像机外部参数。为了获得P点的三维坐标,先用摄像机定标的方法分别求出左右两个摄像机的投影矩阵Pl=(p1T,p2T,p3T)T与Pr=(p′1T,p′2T,p′3T)T,若pl=(u,v,1)T与pr=(u′,v′,1)T是一个对应点对,则根据式(1)可以得到其在世界坐标系中的方程分别为

求解这个超定方程即可以获得P的齐次世界坐标。

2 基于GPU的三维测量加速算法实现

GPU的可编程能力和并行处理能力越来越强大,不再局限于传统的图形、图像渲染,逐步开始辅助CPU完成更多的通用计算任务。由NVIDIA公司推出的统一计算设备架构(Compute Unified Device Architecture,CUDA)以更便捷的方式将GPU的计算能力释放出来。CUDA可以把GPU直接视为数据并行计算的设备,使GPU更适合于解决商业、工业以及科学方面的复杂计算问题。现阶段,主流GPU峰值单浮点运算能力是同期CPU计算能力的10倍,GPU的外部存储器带宽接近同期CPU的5倍。GPU比CPU具有更快的技术以及性能的更新频率,价格低廉,在进行通用计算时具有极高的性价比[11]。如何充分利用GPU的并行计算特点实现一些复杂运算的快速求解[12,13],已经成为当今的热点问题之一。

根据三维测量的基本原理可知,三维测量的4个具体过程具备并行度,符合GPU计算的并行性。使得利用GPU进行三维测量的快速计算成为可能。

2.1 GPU执行模型

GPU硬件上的大规模并行是通过重复设置多个相同的流多处理器(Stream Multiprocessor,SM)实现的,每个SM中又包含8个标量流处理器(Stream Processor,SP)。线程块的软件抽象将核(Kernel)函数的一个自然映射转换到GPU上任意数量的SM上。线程块是协作线程间合作的容器,只有线程块内部的线程才能共享数据。线程块内所有的线程都在同一个流处理器上执行,GPU通过在SM内部提供高速内存来实现数据共享。下面以Nvidia公司的CUDA技术为例介绍其执行模型。

CUDA源程序由运行于CPU上的Host端与运行于GPU上的Device端两部分组成。Host端主要负责程序的控制及初始化等工作;Device端则专注于执行高度线程化的并行处理任务,运行于Device端的计算核心(Kernel)由一组线程块(thread block)并行执行。运行时,线程块内的线程共享存储空间,线程块之间互相独立。线程块大小的划分要根据处理数据规模以及GPU硬件参数等因素,合理的线程数量划分对执行效率有很大影响

CUDA采用了单指令多线程(Single Instruction Multiple Thread,SIMT)执行模型,SIMT单元以若干(Tesla架构的GPU为32)个线程构成Warp(线程束)来进行管理线程的创建、执行等工作,也即实际运行中,每个Block会被分割成更小的Warp。Wrap中的线程只与线程序号有关,与Block的维度和每一维尺度无关。在每个时钟周期,SM的Warp调度器按一定准则来确定执行哪个Warp。

2.2 图像校正

理想的透镜成像是针孔模型,但实际中透镜并不完全满足这个条件,由于摄像机还存在光学系统的加工误差和装配误差,因此实际成像与理想的针孔成像之间存在光学畸变误差。畸变可用五个系数描述[14]:三个径向畸变系数k1,k2,k3;两个切向畸变参数p1,p2;径向畸变的中心是主点(u0,v0),设(x,y)是理想的摄像机成像面坐标(单位:mm),(x′,y′)是畸变坐标;设(u,v)是理想的像素坐标,(u′,v′)是畸变的像素坐标,则:

式中r2=x2+y2。根据图像坐标系与摄像机坐标系转换关系,则:

因为校正后的坐标存在非整数值,所以要对该位置的灰度值进行插值处理。插值方法可以采用由CUDA提供的纹理存储器进行线性插值,由于纹理存储器的高速只读性,会使插值效率更高;或者根据需要采用插值精度更高、计算复杂度高的插值方法,如拉格朗日二元二次插值、三次内插法等。

GPU算法实现:

Host端:

a)载入全部图像(24幅)

b)载入标定参数;

c)分配校正后图像的存储空间;

具体为利用cuda Malloc开辟所需的存储空间,用cuda Memcpy将内存中的数据传至GPU的存储器上;

d)调用校正模块核函数

g_img Undistort<<>>(dst_f Img,src_n Img,camera Para,i Width,i Height);

其中:dim Block是一个二维的线程块,dim Block.x表示水平向线程长度,dim Block.y表示垂直向线程长度;dim Grid表示线程块数量,dim Grid.x为(i Width+dim Block.x-1)/dim Block.x,dim Grid.y为(i Height+dim Block.y-1)/dim Block.y;i Width、i Height分别表示图像的宽度与高度。

Device端:g_img Undistort核函数

a)利用下式获得当前水平、垂直线程序号

tx=blockIdx.x*blockDim.x+thread Idx.x;

ty=blockIdx.y*blockDim.y+thread Idx.y;

b)对于(ty

c)根据式(3)与式(4)对图像中(tx,ty)位置进行校正,根据插值计算获得新位置(x′,y′)的灰度值。

在实际操作中可以根据需要将GPU数据结果利用cuda Memcpy回至CPU中,用cuda Free释放掉不用的GPU存储空间。更详细GPU控制使用方法详见文献[11]。

GPU端计时方式采用事件Event方式;利用cuda Event Create创建事件对象,利用cuda Event Record记录事件,用cuda Event Elapsed Time计算两次事件之间相差的时间,cuda Event Destroy销毁事件对象。这种计时方式比用clock方式精度高很多,可达0.5s。注意在第一次调用runtime API函数时启动CUDA环境,为了避免将这一部分时间计入,需要在正式测时开始前先进行一次包含数据输入输出的计算以使测试结果更加准确可靠。

2.3 相位展开

主动视觉测量技术通过向被测物表面投射信息光,求解出具有惟一性的特征,实现了被测物表面的特征表述,最终完成不同视角下的匹配。其中,以正弦光栅投影和相移技术相结合的相移测量技术在测量领域中普遍应用。

采用透射光栅实现正弦条纹的投射,用式(5)表示所获得的光强函数:

其中:I(x)表示光强,I0表示背景光强,A表示正弦条纹的幅度,ϕ(x)表示相位值,Δϕ(x)表示相位差。当采用四步相移法时,四个光栅信号可以表示为

相位可以采用式(6)表示:

首先投射不同频率的三组正弦条纹,对应的频率分别为f1、f2和f3,要求这3个频率满足f1+f3=2f2+1关系,每组正弦条纹相位差为/2共四幅,根据文献[15]中所描述的外差法对相位进行展开。该算法每个像素点的相位绝对独立,即每幅图像中,某点的相位值只与同频率下4幅相移图像中同一位置相关,而与同一幅图像中任何其它点无关。该特点保证了相位计算及相位展开过程中,每个线程可以将某一点的相位通过相关图像中该位置的灰度值直接计算出来,而这种方式能够很好的使用GPU多线程这一特点。

GPU算法实现:

a)获得校正后的所有图像;

b)将每组图像按四步相移法公式进行相位计算;

c)根据频率关系进行相位展开。

最终得到左右摄像机所对应的相位值,并且按图像顺序存储。

2.4 极线匹配

在双目立体视觉测量系统中,数据是由两个摄像机获得的图像,即左图像与右图像。如图2所示,如果pl、pr是三维世界中一点P在两个图像上的投影点,称pl与pr互为匹配点。左右摄像机光心Cl与Cr与空间点P所确定的平面与左右摄像机成像机形成两条极线plel、prer。即左图像某位置点pl,在右图像中与其匹配的点必定要在极平面与右图像成像面的交线上。这样在已知特征的情况下,在极线上进行特征搜索即可,免去了全域搜索的计算量,大大提高了搜索效率。

根据GPU自身特点,设计一种全局、全幅面、位置记录数据的GPU设备端数据结构组织方式。在记录匹配点坐标时,因为要记录左、右摄像机对应点,以图像宽、高位置表示左摄像机的位置点,右摄像机对应点水平坐标存储于图像大小的X坐标存储区对应位置、竖直坐标存储Y坐标存储区对应位置;如X坐标存储区[100]位置存储的为匹配点X坐标,Y坐标存储区[100]位置存储的为匹配点Y坐标,即(100,100)与(X[100],Y[100])为匹配点对。这种方式省去了记录左匹配位置,将左匹配位置隐含在右匹配位置的存储区序号中,有效解决了GPU设备端数据使用、存储问题。

GPU算法实现:

a)获得当前水平方向线程序号tx=block Idx.xblock Dim.x+thread Idx.x;

获得当前竖直方向线程序号ty=block Idx.yblock Dim.y+thread Idx.y;b)以当前线程序号作为的左摄像机相位的待匹配位置;

c)根据基础矩阵计算极线,沿极线在右摄像机相位中找对应点;

d)对于找到的对应点,将水平方向坐标存储在匹配点X坐标存储区XN[ty*Width+tx]位置,将竖直方向坐标存储在匹配点Y坐标存储区YM[ty*Width+tx],未获得匹配点的则将该位置存储区水平、竖直方向[ty*Width+tx]坐标置为零,表示未获得匹配点;

2.5 三维点计算

双目立体视觉系统中,对两个摄像机的摆放位置不做特别要求,如图1所示,根据式(2)可知,当已知左右摄像机投影矩阵及对应匹配点对的情况下,即可以形成AX=b的超定方程组的情况,当ATA非齐异,就可以利用线性最小二乘方法进行求解,公式如下所示:

GPU算法实现:

a)获得当前水平方向线程序号tx与竖直方向线程序号ty;

b)根据tx、ty计算图像位置索引号i=ty*i Width+tx,其中i Width表示图像宽度;

c)如果YM[i]!=0且XN[i]!=0,表明左图像(tx,ty)位置对应的右图像匹配点位置为(XN[i],YM[i]),根据式(7)进行计算三维点坐标。

三维坐标x、y、z,分别存储于三维点X坐标存储区Xp、Y坐标存储区Yp、Z坐标存储区Zp的[ty*Width+tx]位置中。

3 实验结果分析

CUDA中可以利用的存储器主要有全局存储器(Global Memory)、纹理存储器(Texture Memory)。其中全局存储器位于显存,CPU、GPU都可以进行读写访问,整个网格中的任意线程都能读写全局存储器的任意位置,全局存储器能够提供很高的带宽,但同时也具有较高的访存延迟。纹理存储器是一种只读存储器,由GPU专用的图形单元发展而来,可以通过缓存加速减少读取延迟。插值工作中非整数坐标精确度值是根据该插值点邻域内整数位置点的灰度值计算得到的,即需要根据领域内各位置的灰度值进行解算,所以会经常被访问到,很多数值会被重复读取,为了提高访问效率,本文采用纹理存储器。

在GPU中要根据被处理问题的规模为计算设置一个Kernel,根据计算的规模,确定Kernel的网格块(Grid Block)大小。实验中根据所采用GPU设备特性,及图像大小确定网格块大小,原则是行数、列数所能容纳2的最大次幂的整数倍。如果最大整数倍比最大线程数目还大,就置为最大线程数目的一半。以这样方式进行设置能够更好的调动线程的工作效率。

本文所采用的实验平台为Intel Core i3 530,主频为2.93 GHz,系统内存为4 G,显卡采用的是Ge Force GTX460,显卡内存为768 M,显卡的核心频率为700 MHz,显存位宽192 bit,操作系统为Windows XP,系统实现基于CUDA 5.0,软件平台为VS2010。实验数据为130万像素(1 2801 024)、500万像素(2 5921944)分辨力的8位图像序列进行试验,分别对GPU与CPU及Open MP的实验结果进行了对比。表1列出了130万像素数据在GPU和CPU、Open MP上执行相关计算的实验结果。表2列出了500万像素数据在GPU和CPU、Open MP上执行相关计算的实验结果。其中,计算时间为数据到达开始至数据解算完成的时间。GPU端计时采用Event方式计时,表中GPU times指数据到达GPU至GPU解算完成时间。GPU times(include transform times)指在CPU端计时,包括将数据传至GPU时间、GPU计算时间以及GPU回传数据时间。GPU整体计算时间(All cal times)是指将三维测量4个步骤时间进行求和计算,各步骤不需要向主机端返回中间计算结果,当计算全部完成时一次性向主机端返回测量结果。

通过实验可以看出,在GPU上执行整个三维测量中的各步骤计算时间及整体计算时间同CPU相比具有明显的加速效果。尤其在处理高分辨率(500万像素数据)数据时采用单纯CPU时间计算需要近10 min的时间,即使采用多核运算的Open MP也需要2 min的时间,这在实际应用是用户很难忍受的问题,而采用GPU进行计算即使算上数据传输时间也仅为4 s。此外,通过实验可以看到在GPU上进行各步骤计算时如果频繁将中间结果传回主机端会占用大部分的数据传输时间,如三维点计算、及相位展开过程中,本身在GPU计算时间很短,但将结果传至主机端时耗费了大部分时间,因此在实现过程中采用整体计算模式,即将图像数据及参数一次性传至GPU端,分别进行计算,将中间结果只保存在GPU端的存储器上,当计算全部完成时再将需要的结果一次回传至主机端,这种方式可以有效减少因中间数据在GPU端与主机端交互所产生的传送数据耗时

用于在GPU计算上的数据结构与组织形式架构后,影响GPU计算效率的主要因素有:1)数据传输带宽,由于CPU与GPU不共用存储器,在GPU工作之前需要将数据传至GPU的存储区,计算完成后再将结果传递回内存中,这是必须要耗费的时间,因此GPU设备的位宽也是减少整体计算时间的主要因素;2)流多处理器数量,更多的流多处理器会分担更多的处理任务,尤其是当数据处理规模很大时,流多处理器的总量会直接影响GPU的计算时间。

4 结论

快速三维分析 篇8

人脸是一个人外貌特征最显著的标志,是辨认人的身份的重要根据。近几年来,随着技术的发展,社会上越来越多的行业、领域,都对于人脸相关的处理有了很多的需求。人脸建模技术作为计算机图形学的一个分支也越来越受到人们的重视,人脸建模技术的研究也成为了近年来的热点方向。

目前,电影、广告、人物动画、计算机游戏、视频会议、可视电话、医学、信息安全、人机交互等各个方面都对于人脸建模有着很大的需求,而不同的行业对于模型的精细度确不完全一致,电影、人物动画等需要对人脸的模型进行精密的构建与生成,对于最终的模型质量与贴图质量有着很高的要求。而在其他的行业中可能并不需要高质量的模型,这时,就需要使用一种快速而又简便的方法进行人脸的建模工作。

2 Candide3模型

Candide模型是一种参数化的模型,最初的目标是为了服务于基于模型的人脸编码应用,因为只有较少的若干顶点参数,是的应用该模型进行3D人脸绘制只需要很少的计算时间,从而广泛应用于视频传输以及视频动画当中。Candide3是Candide模型的第3个版本,它由113个顶点与168个面组成。通过对该模型113个顶点的坐标连接便可绘制出该模型。该模型如图1所示

3 目前常用的人脸建模方法

(1)手工建模。制作者通过使用一些常用的模型制作软件,如3Ds max,MAYA等,在计算机上直接使用软件绘制出3D人脸模型。虽然这种方法的不受环境影响、易于实现,但是使用这种方法制作起来费时费力,模型的质量与制作者的水平关联很大,因此对于软件的使用者的绘制水平要求很高,需要进行一些专业的训练才可建出质量比较高的3D人脸模型。

(2)特征建模。这种方法是从照片或视频中的人脸提取特征点,将不同角度提取的相同特征点进行对应计算,算出特征点的空间坐标,然后用这些特征点坐标构建出一张中型人脸网格,重构出三维人脸模型。通过不同方向拍摄的人脸照片,通过矩形标出眼睛鼻子等人脸的关键特征所在的区域,在每个特征区域中搜索图像边界来确定特征点所在的位置,从而根据对应关系确定出具体特征点的位置得出特征点的三维坐标来差值变形一个中性人脸网格,从而构造出特定的三维人脸模型。

(3)扫描建模。使用三维扫描仪来创建人脸模型。这种方法构造的模型非常精细,准确度高。但是需要复杂昂贵的设备,并且需要模特在场。条件苛刻。

4 基于Candide3的快速人脸建模

以上所述的建模方法大多通过比较高的要求,耗费比较多的资源来生成一个比较精细的模型。针对有些对模型精细度无太大要求的应用状况时使用以上的方法就有些过于浪费。因此本文选择Candide3模型进行一个人工的快速的低精度的模型构建。所需要的素材为一张待构建的人脸正面图片,如图2所示。

在对应给予输入图像后,载入Candide-3的标准模型,将Candide-3模型在三维坐标空间中的X、Y、Z三轴上的极值记录为minX、maxX、minY、maxY、minZ、maxZ,作为初始纹理映射坐标的依据,然后载入输入的图片,将材质映射坐标(0,0)对应到空间坐标系的(minX,minY,0),材质坐标(0,1)映射到(minX,maxY,0),(1,0)映射到(maxX,minY,0),(1,1)映射到(maxX,maxY,0)。之后需要对材质进行处理,将材质投射到Candide-3的标准模型上。此时需要对Candide3模型的对应的关键点进行调整,Candide3的一些关键点如表1。

通过对这些关键点的坐标进行微调,将Candide3的模型中每一个点P(x,y,z),对其向XY平面做投影,分别与输入图像的所对应的关键点对应,从而将原输入图像划分为若干个三角形的区块。在XY平面上所划分出来的若干个三角形区块分别对应于Candide-3在XY平面上投影的三角形的纹理部分。对每一个三角形将该部分三角形纹理对应映射到其对应的三角形位置上,在opengl环境下,即通过glTexCoord()函数为Candide3模型的每一个三角形面指定其对应投影的材质三角形坐标,完成了材质的映射,结果图如图3所示。

通过结果可以看出该方法可以在尽量保留真实性的情况下快速生成有一定还原度的简易三维人脸模型,操作相较于传统的方法简单便捷,对于系统使用者而言不需要很高的技术水平,在系统开销上占用很小,能够很快的生成纹理与最终产出的模型。在小开销的前提下可以用于进一步的如安检之类的实际需求中。

5 结语

本文针对当前人脸快速建模存在的一些问题上,阐述了当在仅有正脸照片的情况下对于给定的人脸利用Candide3进行快速建模,从而可以将快速生成的模型进行进一步的识别、特征处理等操作,系统开销小,操作简便。不足之处则是模型质量不够高,但足以适用于很多对精细度要求不高的场所。

参考文献

[1]Jian Huang;Ziling Su;Ruomei Wang 3D Face Reconstruction Based on ImprovedCANDIDE-3Model Nov.2012.

[2]Fengsong Hu;Yaping Lin;BeiJi Zou;Maojun ZhangIndividual 3D Face Generation Based on Candide-3 for Face Recognition May2008.

[3]黄福,潘广贞,纪丽婷,刘军.基于多角度照片的真实感三维人脸建模研究[J].电子测试,2010年05期.

[4]易法令,熊伟,王胜,张皓明.人脸自适应三维建模的研究与实现.计算机工程与应用,2010年19期.

[5]胡峰松,林亚平,邹北骥,张茂军.应用于人脸识别的基于Candide-3特定人脸三维重建[J].湖南大学学报(自然科学版),2008年11期.

快速三维分析 篇9

激光共聚焦扫描显微镜、受激发射损耗(STED)显微镜、双光子显微镜等高分辨率光学显微镜与普通光学显微镜相比,具有更高的灵敏度与分辨率,统称为超分辨显微镜。它们可对细胞或组织样品进行光学断层扫描,得到样本的多层次二维横断层图像。再利用三维可视化技术,对多层次二维断层图像进行三维重构,实现标本的三维立体精确显示,提供直观准确的结构信息[1]。常用的三维可视化方法有表面重建、容积重建、最大密度投影MIP、最小密度投影等,其中MIP是三维可视化最常用的方法[2]。MIP运用光线投射法,从视点向可视化平面投射平行光线穿过各体素,并进行等距采样,测量各采样点的灰度值,最终在可视化平面呈现灰度值最大的采样点。MIP算法能反映相应像素的X线衰减值,并能体现出较小的密度变化,可以较为明显地观测到血管的狭窄、扩张、充盈缺损等变化[3]。

随着组织样品染色的新型彩色荧光染料的出现,光学显微图像由灰度图像走向RGB彩色图像。现有的MIP算法仅能对灰度图像进行可视化,不适用于彩色显微图像。此外,一个样本的超分辨显微图像较普通光学显微图像的数据量极大增加[4],传统的基于CPU的单线程串行计算模式的MIP方法耗时太长,无法满足实时显示的要求。

近年来,GPU已发展成为拥有上千核心、具有强大计算能力的数据处理单元。统一计算设备架构(CUDA)的提出使GPU的应用领域从图形处理扩展到通用计算,适用于执行计算密集型的并行计算任务。本文在过去仅能对灰度图像的三维可视化的基础上,进行改进,使算法能解决彩色图像的MIP计算。通过向彩色三维数据场投射多条平行光线,根据插值计算光线上等间距点的RGB值,取各光线上最大亮度点的RGB作为该光线对应像素的颜色值。为了应对彩色图像相较灰度图像数据更加庞大导致的运算速度问题,本文利用彩色图像的MIP光线投射过程的并行性与CUDA架构下GPU的并行计算能力,对所提出的彩色显微图像MIP算法进行加速,再对GPU内核函数的计算结果使用Open GL直接渲染,进一步加快图像的绘制速度[5,6,7]。

1 彩色显微光学图像的MIP算法

彩色显微光学图像的MIP算法可分为四个步骤:(1)密度计算;(2)采样点插值;(3)最大亮度采样点定位;(4)投影图像绘制。算法的原理如图1所示。

分辨率光学显微镜对荧光染色组织进行断层扫描,获得一组标本彩色二维断层图像。读取这组二维图像的像素信息,并按照图像序号把数据依次连接起来,最终建立一个由这组图像数据组成的三维体数据场D[8]。定义vi为D中的体素,C(vi)=(Rvi,Gvi,Bvi)为vi的红(R)、绿(G)、蓝(B)三通道颜色分量。采用体素的亮度作为密度的测度,体素的亮度I(vi)定义如下:

如图1所示,设投影图像S大小为宽W个像素、高H个像素,采用光线投射法,根据设定的视线方向,向S中每个像素点各发出一条光线lk,投影光线lk与三维体数据D相交。在体数据D的空间范围内,设定采样距离d,沿光线lk进行等距采样,得到m个采样点pj(j=0,1,…,m-1)。由pj附近8个体素的坐标及亮度值,使用三线性插值[9]方法进行插值,得到pj的亮度值I(pj)。

依据亮度值I(pj),找出光线lk的路径上m个采样点pj(j=0,1,…,m-1)中亮度最大的采样点pmax。依据pmax附近体素坐标与三通道颜色分量,使用三线性插值方法,得到pmax的三通道颜色分量C(pmax)=(Rpmax,Gpmax,Bpmax)。令S上的像素xk的三通道颜色分量C(xk)=C(pmax),对S进行绘制,完成三维体数据D的可视化。

2 基于GPU的MIP算法

传统的基于CPU的串行计算模式需要对投影图像的每一个像素依次进行光线投射计算,当数据量较大时,像素个数过多,计算效率会严重降低。MIP生成的投影图像缺少深度信息,实际应用中常常需要对体数据进行不同方向的观察。当入射光线投影角度改变时,需实时绘制出新的投影图像,基于CPU的串行计算模式无法满足实时显示的要求。

CUDA架构是一种将GPU作为数据并行计算设备的软硬件体系,在CUDA架构下,一个程序分为两个部分:主机端和设备端[10]。主机端是指在CPU上执行的部分,而设备端则是在GPU上执行的部分。设备端上的程序被称为内核函数,在内核函数中编程模型分为线程网格、线程块、线程三层结构,每个线程网格由若干个线程块组成,每个线程块又由若干个线程组成。程序以线程块为执行单位,同一个线程块中的线程通过共享存储器来相互协作,各个线程块内的线程可作并行计算。使用CUDA的三层架构来实现MIP算法,以提高计算速度[11,12]。

首先需要在CPU中对光学图像的像素信息进行读取,实验对象是数十张彩色光学显微图像,所以每个像素点的信息都包含R、G、B三个通道的颜色分量。然后构建出一个包含了所有数据信息的三维数据场D,并为在GPU中的工作进行准备。根据GPU的计算能力和投影图像大小,将投影图像按行划分为H个区域,每个区域为W列。这些区域分别作为一个线程块,并且每个区域中的W条射线依次对应一个线程,并把数据场信息从CPU端复制到GPU端的纹理处理器中。

MIP算法中每条光线之间的计算方式是相同的,计算过程是相互独立的,所以可以在CUDA架构下进行算法的并行化处理,编写MIP内核函数完成加速计算。首先构建一个空间三维立体坐标系,根据线程块和线程索引计算出每一个数据点所在的坐标值,以及设定的投影平面起始点的坐标值。这样投影平面每个像素点的位置为已知,可以根据投射光线的方向向量依次采样出每等距点的坐标,并根据三线性差值求出每个采样点的像素信息以及通过MIP算法计算出该光线的像素信息结果。每个线程并行执行相同的处理步骤,最终得到投影平面S中每个像素的三通道颜色分量C(xk)。

GPU可以同时作为图像显示与通用计算的处理单元。为了避免CPU与GPU之间、内存与显存之间频繁拷贝数据,进一步加速可视化图像的渲染与显示,使用cuda GLMap Buffer Object函数将Open GL的像素缓冲区对象PBO映射到CUDA的内存空间上。内核函数的计算结果可直接保存在PBO上,并使用Open GL对PBO进行直接渲染,生成最终的投影图像。

本文基于GPU的MIP算法的基本流程如图2所示。

3 实验结果与分析

实验采用的硬件平台:DELL T3610计算机,CPU为Intel Xeon E5-1603@2.8 GHz,内存16 GB,GPU为Nvidia Quadro K4000(3 GB显存、768个流处理器)。软件平台:Windows 7操作系统,CUDA 5.5。

采用两套测试数据进行实验结果验证,其中一套为由Imaris软件提供的细胞样本显微图像,大小为356×317×18,数据量为2 MB;另一套采用由实验室自行研制的激光共聚焦扫描显微镜原型机采集的小鼠肾细胞显微图像,空间分辨率220 nm,大小为1024×1024×50,数据量为50 MB。

分别采用基于CPU的单线程串行计算方法和本文所提算法对这两套数据进行MIP可视化实验,为了保证可视化效果一致性,两种实现过程均设置相同的MIP参数。以读入图像数据到生成最终的可视化图像所需的时间为评价指标,表1给出了两种算法的测试结果。其中CPU代表基于CPU的MIP算法,GPU代表基于GPU的MIP算法;另外,给出了基于GPU方法相对于基于CPU方法的加速比。图3与图4分别显示了细胞样本显微图像与小鼠肾细胞显微图像的可视化结果。

由实验结果可以看出,基于GPU的MIP算法与基于CPU的MIP算法所得到的可视化效果是一样的;在保持可视化效果一致的条件下,相对于基于CPU的MIP算法,基于GPU的MIP算法的计算速度明显加快。从表1的比对中发现,当数据场规模是356×317×18时,本文算法运行速度是基于CPU算法的9倍;当数据场规模是1024×1024×50时,本文算法运行速度是基于CPU算法的90倍。这是因为可用来进行并行运算的线程增加,而串行运算没有任何优化。从上述实验数据可以看出,本文算法在数据场规模较大的情况下,运算效率的优势愈加明显,充分体现出GPU多数据流水处理的特点和CUDA架构并行运算的优点,对整个图像绘制速度提升有显著作用。

4 结语

本文利用基于CUDA架构的GPU并行计算技术,采用MIP算法对彩色显微光学图像进行快速三维可视化。实验结果证明,所提方法能大幅提高三维可视化的效率。随着数据量的不断增大,并行计算的优势能得到更加充分的利用。所提方法能够满足彩色显微光学图像三维可视化的实时显示要求。

参考文献

[1]Bentes C,Labronici B B,Drummond L M,et al.Towards an efficient parallel raycasting of unstructured volumetric data on distributed environments[J].Cluster Computing,2014,17(2):423-439.

[2]Héritier M,Noumeir R.Fast maximum intensity projection with 3D nonlinear wavelets[C]//Medical Imaging 2006:Visualization,ImageGuided Procedures,and Display,2006:71-78.

[3]朱奭,常晋义.基于CUDA的数字化放射图像重建算法[J].计算机应用研究,2014,31(5):1577-1580.

[4]Fishman E K,Ney D R,Heath D G,et al.Volume rendering versus maximum intensity projection in CT angiography:What works best,when,and why[J].Radiographics,2006,26(3):905-922.

[5]刘进锋,郭雷.CUDA和Open GL互操作的实现及分析[J].微型机与应用,2011,30(23):40-42.

[6]Chen Z H,Huang Y Y,Zhang J W.CUDA parallel computing combined with Open GL interoperate[J].Advanced Materials Research,2013,774-776:1812-1815.

[7]Zhang J,Shang S Y,Feng Z S.A method of texture mapping with convex-depression effect based on Open GL[C]//ISTM/2001:4th International Symposium on Test and Measurement,2001,1-2:1157-1159.

[8]Adamson J,Chang Z,Wang Z,et al.Maximum intensity projection(MIP)imaging using slice-stacking MRI[J].Medical Physics,2010,37(11):5914-5920.

[9]吕理伟,顾耀林.移动立方体算法的三重线性插值研究[J].计算机工程与应用,2005,41(32):41-44.

[10]Fangerau J,Krmker S.Parallel Volume Rendering Implementation on Graphics Cards Using CUDA[M].Facing the Multicore-Challenge:Aspects Of New Paradigms And Technologies In Parallel Computing.Heidelberg:Springer,2010:143-153.

[11]Marsalek L,Hauber A,Slusallek P.High-Speed Volume Ray Casting with CUDA[C]//IEEE Symposium on Interactive Ray Tracing,2008:185.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:三维运动学分析 下一篇:三维非线性有限元分析