基于激光点云的三维测量系统设计
来源:用户上传
作者:
摘 要: 基于Matlab图像处理平台,以设计激光点云的三维测量系统为目标,展开激光束坐标获取、点云数据配准、测量距离校正等相关内容研究。通过激光测距原理,解析摄像头成像与物体表面信息之间的几何关系;采用Arduino微处理器完成扫描装置的舵机控制;运用Matlab提供的校正工具对相机定标,减小相机边缘畸变;利用灰度矩阵中的亮度最高的像素点,获取激光束的坐标;使用极坐标配准方法,实现不同视场中三维点云数据的配准;根据多组距离值的测算,得到系统测距的校正参数。最终完成了激光扫描、点云配准、三维数据成像的测量系统设计,为低成本、高速度的激光扫描装置研究提供典型范例。
关键词: 三维测量; 激光扫描; 系统设计; 点云配准; 相机定标; 参数校正
中图分类号: TN206?34; TP242.6+2 文献标识码: A 文章编号: 1004?373X(2020)14?0048?04
Design of 3D measurement system based on laser?point cloud
ZHANG Jingjing, BAI Xiao
(College of Computer and Information Engineering, Xinjiang Agricultural University, Urumqi 830052, China)
Abstract: The relevant contents of laser beam coordinate acquisition, point cloud data registration and measurement distance correction are studied based on the image processing platform using Matlab to design the measurement system of laser point cloud. The geometric relationship between camera imaging and object′s surface information is analyzed by means of the principle of laser ranging. The rudder control of the scanning device is completed by using the Arduino microprocessor. The camera is calibrated by the aligning tool provided by Matlab to reduce the camera′s image edge distortion. The coordinates of the laser beam are obtained by using the pixels with the highest brightness in the gray matrix. The registration of 3D point cloud data in different field of view is realized by means of the polar coordinate registration method. The calibration parameters of ranging of the system are obtained according to the measurement and calculation of multi?group distance values. The design of the measurement system with laser scanning, point cloud registration and 3D data imaging are completed, which provides a typical example for the research on low?cost and high?speed laser scanning device.
Keywords: 3D measurement; laser scanning; system design; point cloud registration; camera calibration; parameter correction
0 引 言
激光掃描是一种非接触主动式快速获取物体表面三维密集点云的技术,较之传统的测绘方法,利用激光扫描对物体表面信息提取的方式具有数据量大、测量速度快和精度高等突出特点[1]。
扫描装置通过对物体表面的扫射,能够获取具有三维坐标(x,y,z)的点云数据,将被测物体的点云数据传送至计算机进行图像处理,即可实施多模式的图像分析与研究[2?5]。
激光的线扫描分为水平和旋转两种方式,水平扫描是指首先固定x轴或y轴的运动轨道,启动动力装置后,通过带动扫描设备沿着轨道运动,不断地采集待测对象表面的z轴坐标信息,由此构成三维点云[6]。该技术在铁轨损坏程度检测、工件3D成像、考古文物修复重建、服装设计、汽车制造业以及水下目标三维成像等诸多领域有广泛应用[7?8]。
基于线扫描的三维激光器还能够通过旋转方式获取待测对象的三维点云[9],然而由于旋转中心的存在,一定程度上导致了测距误差。本设计选择在空间极坐标系下完成激光点云的数据配准,就激光旋转方式测量某物体的表面信息而言,具备测量优势。 1 激光扫描装置的硬件及组成
1.1 激光测距原理
系统的简易激光扫描装置主要包含相机、红外线激光器、滤镜、扫描杆等,激光测距过程中,激光束发射后的俯视效果如图1所示。
图1中,系统采用光学测距方法获取点云[10]。首先将激光射线投射到待测对象表面,其光束将在扫描杆另一端的摄像头中成像。当摄像头捕捉到激光束或光斑后,将根据成像光点x轴像素值的不同,计算激光在待测对象表面反馈的深度信息。
对于固定的扫描装置而言,下式参数即为已知数据,则:
式中: [β]为激光器与旋转轴的夹角,实验装置选取约83°;[s]为激光器中心与摄像头中心点距离,实验中固定为210 mm;[f]为摄像头的焦距,取值6 mm;[x]指摄像头获得的水平方向的像素值;d为激光测得的距离。由式(1)求导得到:
由式(3)可知,[f·s]的值越小,越适合测量近距离的物体;反之则精度越好,测量距离越远。
1.2 简易激光扫描装置
基于低成本、便携式设计要求,实验中激光扫描装置的主要部件包括CCD工业相机、线性激光器、Arduino微处理器、舵机等,其中处理器和舵机被置于底座,通过操纵杆与相机、激光器相连。此外,激光影像数据需送至上位机处理,微处理器通过串口控制舵机,由此完成扫描装置连接,如图2所示。
将上述部件固定于扫描装置,旨在获取激光扫描后待测对象的影像信息。限于光线强度和激光器的成本因素,实验中将待测对象的扫射范围控制在500~1 000 mm之内。首先通过微处理器控制舵机转动,逐帧变换扫射位置,且将舵机的扫射角度设定为0°~90°。与此同时,转轴带动摄像头旋转,在1 s内获取60帧激光影像,并从激光影像中提取线激光束坐标,经拼接、配准构成待测物体单侧表面的三维信息。
2 激光点云的极坐标配准方法
基于扫描装置得到的激光束分布于不同视场,激光配准过程需将不同视场的数据匹配到同一坐标系下,实验中采用三维极坐标系完成激光点云的数据配准。
如图3a)所示,[O′]为摄像头透镜中心点,[O]为旋转中心,激光在摄像头平面成像为[PP′],[f]为摄像头焦距,摄像头分辨率为640×480,x轴水平向右为正方向,y轴垂直向下为正方向,将摄像头成像方式呈现到极坐标系下即为图3b)所示。
以摄像头获取的任意激光点坐标(x,y)为例,计算极坐标中极径[O′P]、高度角pitch与方向角[yaw]的方式如下:
1) 计算高度角pitch与极径[O′P]:
式中:[Spix]为图像中一个像素在成像平面的实际值;c为测距误差校正参数,则:
2) 计算方向角[yaw]:
[O′]为[P′]到LC的垂足,[α=90°-β],[OO′=O′L-OL],OL可以实际测量,那么:
3) 物体到旋转中心的距离d为:
值得一提的是,极坐标中方向角[yaw]还可以根据扫描装置中舵机的旋转角度而定,如限定每帧激光画面相对旋转1°,即方向角[yaw]在1 s内变化为60°。由图3b)中不难看出,轴心[O]与透镜中心[O′]不重合,旋转过程中方向角[yaw]会存在固定偏差,计算中可采用c作为测距误差校正值,本实验中取值为2.818,该值的求解在3.3节中详细论述。通过上述pitch、极径[O′P]及[yaw]的计算,拼接获得激光点云的三维极坐标,经过空间转换即可得到笛卡尔坐标(x,y,z)。
3 系统测试与集成
3.1 系统设计框架
根据激光点云的计算及配准要求,实验中依次完成扫描装置的安装、舵机的控制、相机校正、线激光束坐标提取、点云数据配准、距离参数的修正、点云图像的获取等过程,系统整体设计框架如图4所示。
图4中,Arduino作为微控器除控制舵机旋转外,还为线性激光器提供电源。基于Matlab图像处理平台,本设计运用其较强的图像处理、矩阵运算能力实现激光扫描过程的点云计算。设计中,执行扫描系统的初始化程序后,Matlab与Arduino联合控制图像采集、灰度变换、数据存储过程。其中灰度矩阵进行一次变换后,即向串口发送命令控制舵机旋转一次,依此循环获取480×60个像素的灰度矩阵,将其存放于新建的坐標矩阵中,即可进行后续的距离计算与点云配准实验。
3.2 获取线激光束坐标
依据激光测距原理,实验中首先通过摄像头获取线激光束坐标。本设计采用的摄像头的单个像元边长为6 μm。为了减少光线干扰,实验中在摄像头前添加了650 nm的高通滤光片,通过调整摄像头参数,在Matlab中逐帧扑捉激光束图像,如图5所示。
获取线激光束坐标前,首先需将Matlab获取的图像转化为灰度矩阵。灰度矩阵是由像素亮度值排列不均匀的480×640大小的数字矩阵,通过矩阵运算,取出画面中最亮点的像素坐标(激光束坐标)及其行列值,并保存于坐标矩阵中。为了降低图像噪声,实验中将亮度低于60的像素点进行点云精简,精简后的坐标矩阵每组包含22 092个数据。
3.3 求解校正参数c
校正参数c是指计算激光束坐标时投影距离和实际投影距离x的偏差。据测距实验过程分析,该偏差产生的可能原因在于测距原点的位置存在偏移,无法固定在成像平面感光阵列的第一列或第一排,且通过摄像头主光轴的光线在图像中像素坐标可能不在画面中心。修正过程中,以激光测距实验为基础,通过获得多组距离值进行数据测算,估测最佳的校正参数c。表1为修正前获取的多组距离数据。
通过数据测算,选取2.818为校正参数较为合理。 3.4 相机校正
鉴于光学摄像机的边缘畸变[11],笔者选择常用标板,采用了Matlab提供的畸变校正方法对摄像头进行校正,实验中运用Camera Calibration Toolbox校正工具对相机定标,定标前后效果对比如图6所示。
由图6不难看出,相机边缘畸变产生的影响得到明显改善,就计算图像后期灰度矩阵的像素坐标而言,修正图像边缘畸变对减小计算误差的作用显著。
3.5 软件设计与测试
系统软件设计过程中,首先完成了串口及摄像头模块的初始化程序,并于Matlab中打开摄像头,获取视频流;其次根据测量需要初始化舵机驱动程序,设置舵机转动次数为60次/s。启动舵机旋转后,逐帧获取待测物体的激光影像。通过图像预处理程序,将激光影像转换为待测物体的灰度矩阵,随后依次进入激光束坐标提取、距离计算及点云配准等程序设计。最终形成三维点云图像如图7所示。
4 结 论
综上,运用激光的光学测距原理及点云数据配准方法,文中详细描述了短距离的3D激光测量装置的设计原理。在此基础上探讨了极坐标的点云配准方法、相机定标、测距参数校正等激光测距中需要解决的关键问题。实验结果表明,以距离300~700 mm的待测物体为例,实验中测距误差约为1~10 mm之间,误差比例在0.5%~1.7%之间。就激光扫描方式、点云获取与配准方式、点云精简方式而言,系统设计源于实验的反复测试,尤其在三维极坐标的配准方法设计中,经过反复推演,该配准方式在激光测量的运算时间和算法简洁方面具备优势。因此,本系统属于低成本激光扫描装置的典型范例之一。
参考文献
[1] 杨必胜,梁福逊,黄荣刚.三维激光扫描点云数据处理研究进展、挑战与趋势[J].测绘学报,2017,46(10):1509?1516.
[2] 臧伟,钱林,孙宝军,等.地面三维激光扫描技术在工程测量中的应用[J].北京测绘,2015(3):130?135.
[3] 彭勇.三维激光扫描仪在石质文物保护中的应用研究[D].西安:长安大学,2015.
[4] 张洪吉,罗勇,裴尼松,等.基于三维激光扫描的古建筑文物三維数字化保护研究:以四川乐山文庙大成殿为例[J].测绘与空间地理信息,2016,39(7):42?44.
[5] 陈德立,陈航.三维激光扫描技术应用于建筑基坑变形监测[J].福建建筑,2014(7):88?90.
[6] 雷霆,秦东兴,胡峰,等.基于CMOS激光位移传感器的板厚测量系统[J].自动化与仪器仪表,2012(5):144?145.
[7] 周森,郭永彩,高潮,等.基于三维激光扫描的移动大尺寸圆柱体工件长度快速检测系统[J].光学精密工程,2014,22(6):1524?1530.
[8] YANG Y, ZHENG B, ZHENG H Y, et al. 3D reconstruction for underwater laser line scanning [C]// 2013 MTS/IEEE OCEANS?Bergen. Bergen: IEEE, 2013: 1?3.
[9] 林洋,冯燕.一种三维激光扫描成像仪的成像方法:CN201410300768.0[P].2015?01?07.
[10] 曹鹏,尹文庆,吴林华,等.基于激光传感器的稻种轮廓形状测量方法研究[J].传感器与微系统,2017,36(3):29?32.
[11] 陈永明,冯盛淼,戴颖超.基于最小二乘法的拟合曲线CCD相机畸变校正[J].机电技术,2018(3):31?35.
转载注明来源:https://www.xzbu.com/8/view-15283742.htm