油罐变形点云数据处理软件开发
2018-12-17焦光伟
寇 智,焦光伟
(中国人民解放军陆军勤务学院, 重庆 401331)
1 三维激光扫描技术在油罐变形检测中的运用现状
随着我国国民经济的快速发展,我国已成为石油进口大国,能源紧缺的矛盾日益突出[1],为了缓解能源紧缺,我国建成众多大型油库,同时油罐的建设也越来越大型化。但是油罐在使用过程中,由于施工质量低劣、焊接工艺不符合技术要求,或在运行中的油罐出现故障、操作不当,以及发生地震等灾害,都会导致油罐安全运行问题的发生[2-3]。
三维激光扫描作为一种新的数据获取技术,具有高精度、高效率、无接触、快速等优势,通过三维扫描方式获取被检测油罐的三维点模型数据,并对其进行逆向建模,分析油罐变形情况已经成为当前油罐变形检测的研究热点。郭巍等[4]基于 Leica TM30提出了在罐外检测油罐形变的方法,即 OATS 法 ( outside the tank by automatice total station)。该方法通过确定基准点的位置坐标与基圆的圆心,测量测站至罐壁各测点的平距,经计算间接得到各圈壁板椭圆度和径向偏差。他光平等[5]使用徕卡 HDSP20三维激光扫描仪对油罐进行罐内扫描得到油罐点云数据,通过分析点云数据实现对西部管道某末端站大型储油罐进行储备罐的半径检测、垂直度检测及油罐高度检测。姬斌等[6]使用 ScanStation C10 三维激光扫描仪对球形储罐进行三维扫描,获取利用Visual Studio 2010 64位软件和PCL源码包开发了三维重建及变形分析程序,利用 Geomagic Studio 2013 软件对点云进行三维重建,通过对罐体、各支柱三维表面模型的剖切和计算,建立误差模型,获取罐体变形量、各支柱的变形量。张柱柱等[7]利用PENTAX S-3180V三维激光扫描仪对储罐罐顶变形进行三维扫描测量,提出了基于三维点云数据的变形罐顶球面拟合方法,并编制Matlab程序实现了该算法,该方法可有效识别罐顶变形区域和范围。陈伟等[8]利用三维激光扫描仪对立式罐进行扫描测量,获取罐体三维点云坐标数据,通过拟合的方法得出各个圈板切片的截面圆圆心坐标,通过提出的4种新方法对立式罐的倾斜度进行计算。任志明等[9]采用高精度Leica HDS激光三维扫描仪系统扫描储气罐的点云数据,使用软件Cycloned 对点云数据进行预处理,通过程序编程实现了自动剔除噪音以及罐体和柱体的圆心坐标计算,并绘制罐体、支柱的相关模型,且对计算的数据进行了误差分析,通过数据比较及各种透视图来进行罐体和支柱形变的评估工作,形成了一套可行的应用方案。刘春晓等[10]使用天宝TX8三维激光扫描仪采取宁波某罐区大型原油储油罐的点云数据,通过分析油罐点云数据实现储罐圈板椭圆度检测、壁板凹凸度检测、半径检测、倾斜量检测。随着三维激光扫描技术在油罐变形检测中的频繁运用,本文采用Visual Studio 2015软件和点云数据库PCL开发一套油罐变形点云数据处理软件,采用Oracle数据库对点云数据进行管理与存储。使得该软件对储罐点云数据进行正确的计算,从而快速地、准确地判断出储罐是否几何形变与储罐形变的具体位置,同时也能避免影响油罐的正常使用,造成不必要的经济损失,为储罐的安全使用、管理、储罐变形检修提供依据。
2 软件系统分析设计
2.1 系统功能需求分析
在进行油罐变形点云数据处理软件开发前,需要确定软件开发的功能需求,通过查阅软件开发资料,同时结合本软件的用途,该软件应满足以下功能[11-13]:
1) 用户识别:对使用软件的人员进行识别,只有同时输入正确的用户名和密码才能使用该软件,如果用户输入不正确提醒用户重新输入。
2) 数据管理:导入储罐设计之时的基本信息,包括储罐的高度、圈板数量、储罐的直径、罐顶的半径等,同时规定录入的数据格式、数据的计量单位等;导入、导出储罐的点云数据;数据的添加、删除、修改与更新。
3) 数据处理:数据处理是本软件的核心,选择实用性强、普遍认可的理论计算公式或经验公式对点云数据进行去噪、压缩、滤波、特征提取、三维重建等,实现油罐的高度、倾斜度、椭圆度、罐顶凹凸度的检测计算;
4) 油罐使用寿命预测:采用灰色预测法对油罐变形进行预测,为油罐的使用提供科学依据;
5) 结果输出:对检测结果生成简单的汇总报表,打印系统生成的报表,方便用户对检测结果的查看;
6) 历史查询:保存储罐最近10次的检测结果,满足用户对历史数据的查询,为油罐的使用提供更加合理的方案。
2.2 系统框架设计
目前应用软件的框架结构很多,主要有多层体系结构、C/S结构、B/S结构、C/S+B/S混合结构,本应用软件采用面向对象的设计思想,根据该应用软件开发功能需求与软硬件平台条件,在.NET平台上,采用B/S结构进行软件开发,B/S结构的主要特点是其开发和维护都非常简单、方便,而且成本低、分布性良好[11]。B/S结构将软件框架分为:界面操作层、业务逻辑层、数据层,在这种3层结构中,每一层都是相对独立的,不会影响各自的开发,能够提高工作人员的软件开发效率[14-17]。软件按照各层级中的配置文件完成业务流程的控制,生成整体结构严谨、规范有效的Web应用程序。一个好的界面操作层设计,可以方便用户对该软件的使用,本系统的用户操作层设计以操作简单、用户界面友好为主。本软件界面操作层主要用于确认登录用户的身份,然后根据用户的操作请求调用业务逻辑层相应的功能,并将调用结果回送到用户界面层显示等。业务逻辑层是本软件的核心,实现软件对点云数据的调用与处理,实现油罐变形情况的计算。数据层的主要功能是实现数据的导入导出、数据的存储、数据的备份、数据的查询、数据的增加、数据的更新、数据的删除等功能。
3 数据库设计
随着油罐建造的大型化,三维激光扫描仪扫描油罐得到的点云数据量越来越大,同时精度也越来越高,还带有光学特征。巨大的点云数据会降低软件对点云数据处理的效率。为了提高软件处理点云数据的效率,要求点云数据库系统在储存和管理数据时具有高效性。在设计点云数据库时,数据库的性能应满足:一是扩展性高,满足不同大型油罐海量点云数据的存储;二是读写性能高,由于点云数据的庞大,为了提高软件对点云数据调用与处理的效率,需要数据库系统有较高的读写性能;三是安全性高,每一次检测的油罐点云数据都是判断油罐是否变形的重要证据,需要对数据进行保存,为油罐的后续使用提高依据[18]。
Oracle数据库具备完善的数据处理功能、支持多元化数据、具有分布式存储、可以提供可靠的安全性、实施数据完整性,并且在操作性上具有可连接、可兼容、可移植等几大特点[19]。本软件选用Oracle数据库对储罐点云数据进行储存与管理,选用Oracle数据库中的Spatial技术实现空间数据与属性数据的一体化存储。该技术能够把点云数据的三维信息X、Y、Z坐标转换成Geometry类型的点,原先在表中的存储形式是以X、Y、Z为字段,经过转换过后,只需要用一个字段Point来存储点云数据的几何类型,该Point字段存储了3个坐标值的信息,并且以二进制形式存储在计算机中,能够极大地提高数据访问的效率[20-23]。因储罐的点云数据量较大,需要使用数据库索引技术对储罐点云数据进行管理,本文对传统数据库索引与空间数据库索引进行比较,得出空间数据库索引能极大地节省查询用时,提高工作效率。目前,空间数据库索引包括BSP树、四叉树、八叉树空间索引方法等,本软件采用线性四叉树的点云索引方法,对点云数据进行分块空间索引,以实现对储罐点云数据的访问管理[24-25]。
表1 索引效率对比
4 点云数据处理
在被测油罐的测量过程中,三维激光扫描仪在拍摄过程中易受外界光线的干扰产生刺点、跳点,会因为镜头、支架的抖动等因素产生干扰点,同时油罐周围物体也会被扫描到,这些数据点就是噪点。噪点的存在会严重影响后续的储罐曲面重构,为保持储罐曲面的几何特征、增强曲面重构的精度及光顺度,需要对点云数据进行处理。点云数据处理包括:点云数据预处理(点云配准、点云滤波、点云压缩)、特征和特征描述、目标识别检索、三维重建。
点云数据预处理包括:点云数据配准、点云数据去噪、点云数据压缩。对于点云数据配准,采用人工布设自制标靶,通过软件Geomagic Studio 12处理。
由于扫描油罐会扫描到周边物体,为了保持油罐的边缘信息,需要对点云数据进行去噪处理。本文对高斯滤波与双边滤波进行比较,两者都能很好地去除噪点,但双边滤波在去除噪点的同时能够很好地保留物体边缘信息。本文选择双边滤波方法进行点云去噪处理[26-28],双边滤波方法考虑了像素值相似度σr和像素点的空间邻近度σd,两个相似度因子σd和σr控制着图像去噪的精度,σd变大,会使图像每个区域的权重基本源于值域滤波的权重,对空间邻域信息不太敏感;σr变大,则不太考虑值域,权重多来自于空间距离,因此近似于普通的高斯滤波,图像的保边性能下降。因此,要对图像精心去除更多的平滑区域的噪声,增大σd的值 ;同时要保持图像边缘,则应该减小σr的值。以下是双边滤波的公式:
其中:
d(ζ,x)=d(ζ-x)=||ζ-x||
σ(Φ,f)=σ(Φ-f)=||Φ-f||
随着油罐建造的大型化,扫描油罐获得的点云数据量越来越大,大量的点云数据会严重影响点云数据处理的效率。本文对一个300 m3的立式油罐进行扫描,得到24 935组数据。在保留点云主要特征的同时,为了提高点云数据处理效率,需要对点云数据进行压缩处理。目前,点云数据压缩方法有2种:一是对网格重建后的点云数据进行压缩,减少三角面片的数据来实现数的简化;二是建立散乱点云的拓扑关系,直接对点云数据进行压缩。本文选择第2种方法对点云数据进行压缩[23]。
点云数据的特征点提取主要用于约束点云建模,是三维重建过程中非常重要的部分。点云特征的提取主要针对两方面:一是从散乱点云中直接提取;二是从网格中提取[23,29-30]。本软件采用曲面拟合的方法对油罐曲率进行估算,如果在某处曲率变化越大,则表明油罐该表面有可能存在凹凸形变。
三维重建即建立点云之间的拓扑关系并逼近表达目标对象的过程,三维重建方法有:微切平面法、三维Delaunay剖分、基于移动最小二乘重建方法[23]。基于移动最小二乘重建方法具有拟合精度高、通用性强的特点,本软件采用基于移动最小二乘重建方法对油罐进行三维重建与表达。
5 油罐变形量化
储罐倾斜度量化:根据国家计量检定规程 JJG 168—2005《立式金属罐容量》中规定立式金属罐的计量性能要求之一是罐体倾斜度不得超过1°[31-32]。本文为了能够更加贴近储罐倾斜的实际,沿罐体Z轴方向以约 0.2 m为间隔对油罐进行切割,储罐的每层圈板可获得约10个水平截面圆。储罐的第n个圈板的第m个截面圆的圆心坐标为(xnm,ynm),相对储罐基圆的高差为hnm,相对基圆圆心水平偏差为dnm,对所有的hnm、dnm进行线性回归处理,从而求得储罐的倾斜率。
储罐罐壁凹凸度量化[33-34]:对于处理后的点云数据进行三维重建,得出被检测油罐的模型,在检测储罐的直径时对储罐进行等间距分割,测得储罐的直径,将测得的直径与储罐设计的直径进行比对,得到储罐的凹凸度。
表2 底圈壁板1 m高处允许偏差
表3 罐壁的局部凹凸变形允许量
罐顶凹凸度的量化[33-34]:对油罐罐顶的点云数据进行拟合得到一个球体,得出球体的球形所在位置,可算出每一个点云数据到球心之间的距离,该距离与设计的半径进行比对,得出罐顶的凹凸度。
表4 罐顶凹凸度允许量
储罐罐壁高度的量化:选取储罐最上与最下的2个截面圆,在2个圆上随机选取15组对应的点,求出每组对应点的高差,求出平均值与储罐设计的高度比对。
表5 高度允许变化量
储罐变形预测[35-38]:储罐变形主要指标有罐体的倾斜度、罐壁板凹凸变形、圈板半径、储罐高度等。测得储罐长期使用后变形指标的一系列数据,然后采用灰色预测模型对储罐变形单个指标进行预测[39-40],从而预知油罐变形的趋势。分别采用 GM(1,1)与 GM(1,N)对某油罐的倾斜度进行预测[41-42]。某油罐6年来的倾斜度分别为 0.138 6 °、0.152 7 °、0.172 7 °、0.195 2 °、0.218 2 °和0.245 9 °,取前5年的数据建立油罐倾斜度 GM模型。
由表6、7可以看出:GM(1,N)模型预测的结果相比GM(1,1)模型预测的结果更接近实际数据,但是GM(1,N)模型需要所有影响因素的数据,所需数据量较大。
表6 GM(1,1)预测结果
表7 GM(1,N)预测结果
6 结束语
本文对三维激光扫描仪在油罐变形检测中的应用做了简单介绍,确定了点云数据处理应用软件的功能和需求,采用常用3层服务设计方针完成了软件的框架设计;确定了Oracle数据库对点云数据进行管理,Oracle数据库的Spatial技术对点云数据进行存储、线性四叉树法对点云数据进行索引,以及点云数据库的性能要求。选择了双边滤波方法对点云数据去噪,基于移动最小二乘重建方法进行三维重建,完成油罐变形点云数据处理应用软件的总体设计。