点云数据直接缩减方法及缩减效果研究

点云数据直接缩减方法及缩减效果研究
郑德华
(河海大学土木工程学院,江苏南京210098)
摘 要:分析了国外点云数据处理中数据缩减方法的研究现状,针对实际工程中三维激光扫描数据采集的过密情况,提出利用扫描间隔进行点云数据直接缩减的方法,并编程实现所提出的算法。通过对真实的三维激光扫描点云数据的缩减处理,建立点云数据直接缩减的预测模型。关键词:三维激光扫描技术;点云;数据缩减;预测模型
中图分类号:P225   文献标识码:A    文章编号:1006-7949(2006)04-0027-04
The data reduction of point cloud and analysis of reduction effect
ZHEN G De-hua
(Institution of Civil
Engineering ,Hehai University ,Nanjlng 210098,China )
Abstract :The foreign research background of point cloud data reduction is reviewed in the paper.To the dense data processing of point cloud ,the direct reduction method of point cloud is proposed and the provided algorithm is programmed.Finally ,the forecasting model of data reduction is build by the reduction processing with real 3D laser scanning point cloud data.
K ey w ords :3D laser scanning technique ;point cloud ;data reduction ;forecasting model
收稿日期:2006-01-03
项目来源:江苏省交通科学研究计划项目(05Y01)作者简介:郑德华(1972~),男,讲师,博士.
  三维激光扫描数据量较大,一幅扫描影像数据中可以包含几十万到上百万个扫描点;扫描数据密度高,一些高清晰扫描系统采集数据点的平均间隔可达112mm 。在三维激光扫描数据应用中,这些特点使得三维激光点云的数据处理变得十分复杂和困难。近年来,国外学者为了提高点云数据的处理效率,在各类扫描点云数据处理中提出了一些数据有效缩减方法,解决扫描数据量过大的问题。如,2001年Jianlin G ao 提出了点云格网的缩减方法,并对缩减后的格网进行了拟合[1]。Lee 等人针对表面光滑物体的线扫描点云数据,提出了利用几何信息进行三维激光扫描点缩减的方法,该方法是基于三维格网点的法线向量进行数据缩减[2]。2002年,S -M Hur 等人提出了在点云数据狄罗里三角化的过程中
实现数据的缩减,从而使得生成STL 文件的大小得到了有效的减小[3]。提出的方法可以降低模型误差、减少计算机运行时间,同时也可保证RP 模型的精度。D-Y Chang 和Y -M Chang 以数据重新组织
宠物清洗机和自由曲面重建为目的,提出了数据缩减的方法,并用于逆向工程数据处理[4]。N Dyn 等人对大量的散乱点云提出了双变量适应性缩减的方法,可以获得与原始点云所表达物体表面的接近效果[5]。T Xiaodong 等人在逆向工程中提出了超面(super-face )的概念,并通过计算散乱点的弧度值实现了格
网中三角形的缩减[6]。从数据处理的角度来看,数据缩减方法是对高密集度的点云数据进行裁截实现点云数据量的减小。数据缩减常常包含在其它数据处理过程中,其实现算法也相当复杂。本文主要针对土木工程应用中外业扫描数据采集过密的情况,提出通过设定数据重采样间隔对点云数据进行直接缩减算法。
1 点云数据的直接缩减算法
功夫杯
111 包含点云数据长方体的确定
  为了确定包含所有扫描点的最小长方体的大小,对于点云数据P (p i ∈P ),搜索P 中所有点三维
第15卷第4期                测 绘 工 程                Vol.15№.42006年8月        EN GIN
EERIN G OF SU RV EYIN G AND MAPPIN G         Aug.,2006
方向的最大值、最小值x min 、x max 、
y min 、y max 、z min 、
z max 。则点云数据三维边界框的8个点坐标为:(x min ,y min ,z min )、(x min ,y max ,z min )、(x min ,y min ,z max )、
(x min ,y max ,z max )、(x max ,y min ,z min )、(x max ,y max ,z min )、
(x max ,y min ,z max )和(x max ,y max ,z max )。112 点云数据三维边界框细化
确定包含所有点的最小长方体沿x 方向、y 方向和z 方向边进行分割成m ×n ×l 个细小的基本长方体单元格。基本长方体单元格3条边的大小分别为g x 、g y 和g z ,则微电解水杯
m =IN T (x max -x min )/g x +1(1)n =IN T (y max -y min )/g y +1(2)l =IN T (z max -z min )/g z +1
(3)
  对于空间基本长方体单元格的位置可用1个三
维向量(λ,u ,k )表示,则其对应的三维空间位置关系为
λ
u k
→x min +λg x ,x min +(λ+1)g x
y min +ug y ,y min +(u +1)g y
z min +kg z ,z min +(k +1)g z
(4)
对于任意一点p i 有一个对应所在的一个基本长方体单元格,对应单元格编号计算如下λi =floor ((x i -x min )/g x )
(5)u i =floor ((y i -y min )/g y )(6)k i =floor ((z i -z min )/g z )
(7)
上式中,函数y =floor (x ),表示y 是小于或等于x 的最大整数。
图1 最短距离法的数据缩减
113 基本长方体单元格内的数据缩减准则
每个基本长方体单元格内的数据点的缩减准则是:每个基本长方体里的数据点只保留一个数据点,为了使缩减后的数据点在空间位置尽量均匀,计算基本长方体里的每个数据点到基本长方体中心的距离,距离最短的点保留下来,其它数据点排除掉,如图1所示。
114 点云数据三维边界框划分的实现算法
点云数据的直接缩减算法的实现步骤大致分为3步。
1)点云数据表的设计与建立。点云数据的直接
缩减方法中,首先确定所有点的X 、Y 、Z 的最小值
x min 、y min 和z min 。三维边界框设置成立方体三维边
界框,根据扫描点云的平均间隔确定三维边界框的棱长大小为d ,设计一个数据表Point Table ,其数
据结构中8个字段分别为pointNum 、X 、Y 、Z 、Intensi 2ty 、V 、U 、K ,其中pointNum 为长整型,用于存放数
据点的编号,X 、Y 、Z 分别存放数据点的三维坐标,Intensity 为整型,存放扫描点的反射强度信息,V 、
U 、K 为长整型,用于存放该点所在的立体三维边
界框的编号。通过数据文件将扫描点云的point 2Num 、X 、Y 、Z 、Intensity 5个字段数据写入Point 2Table 表中。
2)每个立体三维边界框中中心最近点的搜索。
为了在点云数据中,搜索每个立体三维边界框中中
心最近点,排除掉其它的数据点。运用数据库SQL 查询语言中的U PDA TE 和SEL ECT 命令实现点云数据的三维边界框划分和中心最近点搜索。使用VB610实现该项功能,具体实现的伪代码段为
Function PointCloudUpdate ( 
)As Boolean 定义数据库变量名为dbsPO IN T ,记录表变量名为rst PO IN T ,记录表查询字符串变量名为str 2Query ;将dbsPO IN T 设为打开Point Table 所在数据
库;strQuery =“SEL ECT 3FROM Point Table ”;将resPO IN T 设为打开的Point Table 数据表;执行rst 2PO IN T.MoveFirst ;
Do Unitl rst PO IN T.EOF Then
将rst PO IN T 表中V 、U 、K 字段分别设为Floor ((X -x min )/d ),Floor ((Y -y min )/d )和Floor
((Z -z min )/d );执行rst PO IN T.Update ;执行rst 2
PO IN T.MoveNext ;
LOOP
strQuery =“SEL ECT 3
FROM Point Table
ORDER B Y V ASC ,U ASC ,K ASC ”;
Set resPO IN T =OpenRecordset (strQuery );
关闭rst PO IN T 所对应的数据表;关闭dbs 2PO IN T 所对应的数据库;
End Function
通过以上的伪程序代码的实现,Point Table 数
・82・测 绘 工 程                  第15卷
据表中的点按V 、U 、K 字段升序排列,所以在同一个立体三维边界框中点在数据表中是连续存放的。通过对数据库的操作可以出每个立体三维边界框中心最近点。
3)数据缩减过程。以下的伪程序代码的功能,
将缩减后点写入一个新表PointNew 中,缩减以后保留点的数目为M ,压缩比率存放在变量A 。实现的伪代码段为
Function PointCloudReduction ( 
)As Boolean 定义数据库变量名为dbsPO IN T ,记录表变量名为rst PO IN T ,记录表查询字符串变量名为str 2Query;定义变量X X 、Y Y 、ZZ 、Intensity0、V V 、
U U 、K K 用于临时存放记录表中X 、Y 、Z 、Intensi 2
ty 、V 、U 、K 字段;定义变量DD 和D 临时存放点
到边界框中心距离;定义点数累计变量名为N 和
M ;定义数据缩减率变量名为A ;
将dbsPO IN T 设为打开Point Table 所在的数据库;
设置strQuery =“SEL ECT 3FROM Point 2Table ”;
将resPO IN T 设为打开的Point Table 数据表;
废盐焚烧炉选型高炉喷煤N 设为1,M 设为0;
执行rst PO IN T.MoveFirst ;X X 设为res 2PO INT.X ;Y Y 设为resPO IN T.Y ;ZZ 设为res 2PO IN T.Z ;Intensity0设为resPO IN T.Intensity ;
V V 设为resPO IN T.V ;U U 设为resPO IN T.U ;K K 设为resPO IN T.K ;
DD =
(X -x min -V d -d/2)2+(Y -y min -U d -d/2)2+(Z -z min -Kd -d/2)2
;
  Do Unitl rst PO IN T.EOF Then
N =N +1;执行rst PO IN T.MoveNext ;
IF (V V =resPO IN T.V 且U U =resPO IN T.U
且K K =resPO IN T.K )Then
D =
(X -X min -V d -d/2)2+(Y -y min -U d -d/2)2+(Z -z min -
Kd -d/2)
2
  else IF (D <DD )Then
XX 设为resPOINT.X ;Y Y 设为resPOINT.Y ;ZZ
设为resPOINT.Z ;Intensity0设为resPOINT.Intensity ;
Else
将X X 、Y Y 、ZZ 和Intensity0作为保留点保存在新表PointNew 中;M =M +1;
End IF LOOP
将X X 、Y Y 、ZZ
和Intesity0作为保留点保存在新表PointNew 中;M =M +1,A =M /N ;
关闭rst PO IN T 所对应的数据表,关闭dbs 2PO IN T 所对应的数据库;
End Function
2 数据缩减实例及分析
211 数据缩减实例
  为了考察直接缩减方法的缩减效果,对孔子塑像三维扫描点云数据进行了缩减。孔子塑像点云中含有1543个点,扫描的平均间隔约为40mm 。缩减立体三维边界框的棱长分别设置为40mm 、50mm 、60mm 、70mm 、80mm 、90mm 、100mm 、120mm 、160mm 、200mm 、240mm 、280mm 以及320mm 。
其中缩减前的点云、以80mm 间隔缩减的点云、以200mm 间隔缩减的点云、以320mm 间隔缩减的点
云4种点云情况生成的格网图,如图2所示。以上13种间隔缩减的计算结果见表1。
图2 4种不同缩减间隔的点云格网图
92・第4期            郑德华:点云数据直接缩减方法及缩减效果研究
表1 不同间隔缩减结果
方格宽度d /mm 方格宽度与扫描
间隔比值
点数
压缩比率A /%
4011001404901991575011251125721909926011509276010777770117573247144005802100618401051859021255143313117310021504312719326120310034022103516041001971217673420051001378187880824061001097106416128071006541212573320
8100
62
41018146
212 缩减预测模型分析
为了分析直接缩减方法的压缩比率与立方体方格大小的关系,对表1中方格宽度与扫描间隔比值和压缩比率之间作幂函数回归分析
,生成曲线和拟合曲面,如图3所示。
图3 压缩比率与立体方格大小的关系图
从幂函数拟合的结果可以得到直接缩减方法的经验模型
A =111023d
-115714
.(8)
拟合的复相关系数R 2为01991,比较接近于1,表明了拟合的经验模型的相关性比较好,采用幂函数模型进行拟合是合理的。将式(8)进行变换可得到经验缩减公式
A 2
d
311428
=11215065.(9)
  根据图2可以看出,直接缩减后点云在空间分布是比较均匀的,缩减后的点云没有出现过度集中或过度分散现象。经过以上研究分析,建立的压缩
比率经验模型是较为合理的,同时也较为精确,在实际工作中式(8)和式(9)可以作为数据缩减效果的预测模型。
3 结束语
为了提高数据处理的效率,点云数据的缩减已经成为三维激光扫描数据处理的一项重要研究内容。本文提出的直接缩减算法可以解决外业扫描数据过密的问题,并通过对真实的三维激光扫描数据的直接缩减处理得到缩减预测模型,可用于直接缩减效果的预测。该算法将会在古建筑物保护、考古、城市规划建设的扫描点云数据处理中得到实际应用。由于三维激光扫描数据处理的目的和过程千差万别,不同的工程应用中所需要的数据缩减算法和缩减效果也截然不同。本文在点云数据缩减方面作了基本的研究,为了完善三维激光扫描数据的处理过程,今后需要系统地应用于点云数据处理的各类缩减算法,并分析各类数据缩减算法的效果。
参考文献
[1]J IANL IN G AO.2D and 3D surface image processing algo 2rithms and their applications [D ].New Jersey Institute of Technology ,2001.
[2]L EE K H ,WOO H ,SU K T.Point data reduction usin g 3D grids[J ].The International Journal of Advanced Manu 2facturing Technology ,2001,18:201-210.
[3]HUR S -M ,KIM H -C ,L EE S -H.STL file generation with data reduction by the delaunay triangulation method in re 2verse engineering [J ].The International Journal of Ad 2
vanced Manufacturing Technology ,2002,19:669-678.[4]CHAN G D-Y ,CHAN G Y -M.A freeform surface modelin g system based on laser scan data for reverse engineering[J ].
The International Journal of Advanced Manufacturing Tech 2nology ,2002,20:9-19.
[5]D YN N ,FLOA TER M S ,ISKE A.Ada ptive thinning for bivariate scattered data [J ].Journal of Com putational and Applied Mathematics ,2002,145:505-517.
[6]XIAODON G T ,YU EXIAN W ,XION GHU I Z ,XU EYU接地母排
R.Mesh simplification based on super-face and genetic algo 2rithm[J ].The International Journal of Advanced Manufac 2turing Technology ,2002,20:303-312.
[责任编辑:刘文霞]
03・测 绘 工 程                  第15卷

本文发布于:2024-09-21 10:29:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/218302.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   缩减   扫描   方法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议