王一波,柳 建
(1.广西科技大学鹿山学院 电气与计算机工程系, 广西 柳州 545001;2.装甲兵工程学院 工程中心, 北京 100072)
光刀三维测量的应用日益广泛,受到不同领域研究人员的青睐[1-5],而手持光刀测量法是对光刀法改进,具有精度高、速度快、便携等优点,其基本原理如下:利用已经标定好的线激光器与CCD摄像机,在已知像点坐标的情况下,反求物点的空间位置。但由于受到测量环境、零件表面反光、无关背景等不确定因素影响,最初得到的零件点云数据一般都会有噪声,情况不好时可能会是散乱的点云数据,如果不加处理,对后续测量带来巨大的误差。为此,点云滤波就显得尤为重要。一般点云数据去噪分为网格化噪声去除和无网格点云模型去噪两种方法,网格去噪典型的代表有Taubin使用拉普拉斯滤波算法对网格模型进行去噪[6],还有Fleishman和Jones等使用具有各向同性的双边滤波进行网格模型的去噪[7-8],这种方法可以借助网格特征提高去噪效率,但由于需对网格的拓扑信息进行重建,增加了算法的复杂度并可能导致网格拓扑信息出现错误。无网格点云模型去噪直接作用于点云,算法的复杂性大大降低的同时,可以有效避免拓扑信息错误发生,赵乾、刘英等运用小波滤波方法对实木板材的点云数据进行预处理[9],陈超等将点云数据按照X与Y方向进行自适应的分块基础上进行自适应滤波[10],张芳菲等使用近邻搜索的算法对孤立噪声点进行了有效滤除[11]。这些方法都是面向特定的应用场景,无法满足手持光刀法点云数据预处理需求。本研究首次针对手持光刀三维测量的原始点云数据特征,基于包围盒的思想,提出了集平滑、压缩以及背景分割的综合滤波方法,分步骤进行了设计和验证,最后利用标准件测量综合检验了算法的精度。
手持光刀法是在固定光刀测量法基础上,运用电磁跟踪单元实时测量相对世界坐标系光刀平面与摄像机位姿,基于三角测量原理,通过整理得到手持光刀法三维测量模型如下:
(1)
图1 手持光刀扫描
由图1可以看出,手持光刀扫描和固定光刀扫描相比,点云数据会出现碎片化、密度大、背景冗余等问题,后续需进行拼接处理,这就要求点云数据滤波能够克服上述问题,提供鲁棒性好的处理算法。
包围盒算法最初用于虚拟现实空间两个不规则物体碰撞检测,采用构建AABB包围盒的方法来查找两物体之间的可能相交区域,沿坐标轴的包围盒AABB在碰撞检测的研究历史中使 用得最久、最广。轴向包围盒AABB是被定义为包含该对象各边平行于坐标轴的最小的六面体如图2所示,是应用最早的包围盒。AABB可表示为
{(xe,ye,ze)|ax≤x≤bx,ay≤y≤by,az≤z≤bz{
(2)
式中ax,bx,ay,by,az,bz分别是该AABB在X、Y、Z坐标轴上的投影的最小和最大坐标值。分别计算组成对象的图元集合中各个元素顶点的X坐标、Y坐标和Z坐标的最小值和最大值即可确定,因此描述一个AABB仅需6个标量[12]。
图2 AABB包围盒
点云滤波是针对光刀测量特点,对点云数据进行相应的平滑处理、数据压缩以及消除背景等过程的统称。
数字图像处理中处理的是灰度信息,即根据像素所在的位置和它们的灰度信息来计算新的灰度信息,而三维点云数据没有灰度信息,需要把其中的一维当作灰度信息来处理,通常选Z坐标值。运用包围盒划分思想,首先找到点云中所有点坐标在X,Y,Z三个方向的最大值和最小值:Xmax,Xmin,Ymax,Ymin,Zmax,Zmin。定义包围盒为边长分别是Xmax-Xmin,Ymax-Ymin,Zmax-Zmin,以(Xmax,Ymax,Zmax)和(Xmin,Ymin,Zmin)为对角点的长方体,其所有面分别和坐标轴平行。然后按坐标轴方向将包围盒分割成小正方体,每个正方体的边长设置为:
l=1.5+ε(mm)
(3)
其中,1.5表示扫描线的间隔,根据经验确定;ε为自定义的容差。设N为点云中所有点的总数目,V为包围盒的体积,ρ为每个小正方体中所包含的点的平均数目,则它们与小正方体边长存在以下关系:
(4)
为确定每个点所在的小正方体,设任意一个点的三维坐标为(x,y,z)。这样,根据其坐标值就可以计算这个点所属的小正方体的坐标:
(5)
(6)
(7)
然后将这个点在点云数据中的索引存入对应的小正方体(α,β,γ)数据结构中,遍历点云数据中的每个点,重复以上的计算,就把所有点都存入了对应的小正方体中。
点云降噪的最后一个步骤是比较每个小正方体中点的数目,一般情况下小于平均数ρ比较多的点即全部认为是噪声点,比如只有一个或两个点,将其坐标置为(0,0,0)。
激光扫描测量每分钟会产生上万的点数据,这种点云提供了完整的对象零件几何信息。但如何处理大批量的数据(点云)成为继激光扫描测量造形的主要问题。如果直接对点云进行操作,大量数据的存储和处理将是不可突破的瓶颈,由点生成曲面耗时长会降低几何模型重构的效率,且整个过程也变得难以控制。实际上并不是所有点都有用,高密度的“点云”中存在大量的冗余数据,因此,有必要在保证一定精度的前提下减少扫描数据量。数据精简的目的就是压缩不必要的数据点,在保证精度的前提下生成适合于后续拟合的结构,故而并不产生新点,只是简单地对原始点云中的点进行删节,并尽可能多地保留原始数据点的形状特征。
为了简化散乱的点云数据以达到数据压缩的目的,本研究将同样采用基于包围盒的方法。这种方法首先采用体包围盒来约束点云,然后将大包围盒分解成若干个均匀大小的小包围盒,在每个包围盒中选取最靠近包围盒中心的点来代替所有包围盒中的点。接着采用了相同的均匀网格,然后用中值滤波的方法将同一网格中的所有数据用滤波得到的一个中值点代替。这种方法简单高效。因为通过上面所述工作已经把所有点划分到了所对应的小正方体中,这样压缩的工作可以在每个小正方体中进行。距离求解如下:
d2=(x-xm)2-(y-ym)2-(z-zm)2
(8)
其中,xm,ym,zm为小正方体中心的坐标值。这样省去了开方运算,节约了不少计算时间。
扫描时会摄入背景信息,干扰三维成像系统的整体精度,而且背景信息经常是一片片的出现,所形成的点云也具有很高的密度,上节所述包围盒划分去噪方法并不能将其去除。本研究提出采用交互式的背景去除,其步骤如下:① 旋转点云至合适角度,确定被测目标点云与背景点云相对位置;② 生成一个通过这条线段且和屏幕垂直的空间平面,称为剪切面[13];③ 判断点与剪切平面的相互位置关系,可以去除不需要的点云,即背景信息。
判断的依据是简单的空间解析几何原理:设空间任意一点P的坐标为(x0,y0,z0),所画剪切平面的方程为:
Ax+By+Cz+D=0
(9)
这个平面把三维空间分成三个部分,正面、背面和平面本身。把点P的坐标值代入平面方程,如果所得结果大于0则点P处在平面的正面,小于0则在负面,等于0则在平面上。
视点是从三维空间中的物体反射回来的所有光线的唯一汇聚点,这与眼睛观看物体的过程是一样的。视点所能看到的范围是视图体,它是一个标准的金字塔形的棱台,把它还原为金字塔时就是视锥,锥顶就是视点所在的位置。
为了校验滤波算法的效果,本研究用两个标准零件来检测系统的精度,一个为标准平面;另外一个即标定使用的标准球,两个零件的实物照片如图3所示。
利用本测量系统,分别对平面和球体进行扫描,前者用以表征物体表面曲率变化很小的测量精度,后者用以表征当曲率变化较大时系统的测量精度。然后对图像进行光刀中心提取,根据三维重建模型进行空间点三维坐标解算,这样就可以获得在同一测量坐标系下零件表面所有采样点的坐标,本文将重建后各点与拟合后的标准面的距离定义为系统的测量误差。测量得到的平面和球体的点数据如图4所示。
图3 标准零件
图4 标准件点云
分别采用双边滤波法、和近邻搜索法本文算法对上述点云进行处理,近邻搜索法近邻数选择文献[8]中实验的经验值20,双波滤波法σd取3,结果如表1所示。
表1 不同算法去噪结果
根据去噪结果分析,双边滤波法处理速度最快,近邻搜索法由于没有受到复杂的拓扑关系影响,去噪比较彻底,但时间也最长,综合来看,本文提出的算法,去噪效率最高。
为了进一步验证算法对于扫描结果的影响,分别对本文算法得到的点云数据进行标准平面和标准球拟合分析,其结果分别如图5所示。
由图5可以看出,系统在测量平面时其平均误差大约在0.2 mm左右,最大误差为0.35 mm,测量球时其平均误差大约在0.3 mm左右,最大误差为0.47 mm,符合一般的测量要求。总体来看,基于包围盒的滤波算法可以有效滤除噪声影响,为手持光刀测量提供了有效的支撑,精度符合最后零件测量要求。
图5 拟合精度分析
1) 对于点云数据平滑处理,发现基于包围盒的平滑滤波不仅可以得到较好的平滑效果,还能很好地保留原始点云数据的上升沿、下降沿等特征信息,保留了曲线的棱角特点。
2) 对于点云数据的精简,采用基于包围盒的压缩算法,可以有效压缩冗余点云数据,在曲率变化较小的地方,扫描线相对平缓,保留的点云相对较少,在曲率变化大的地方,保留的点云较为在曲率变化大的地方,保留的点云较为密集。
3) 针对点云数据的背景,采取交互式的目标与背景分割,基于OPENGL特性可以有效去除多余的背景,准确提取目标点云数据。
本文将包围盒思想用于手持光刀三维测量点云数据滤波,实验证明,可以满足零件的三维测量需要。今后,将围绕点云数据去噪、压缩等算法的普适性进行研究。