基于LabVIEW图像处理的激光测距系统
2019-09-09钟俊平王美琴郑伊玫
钟俊平,王美琴,郑伊玫
(佛山科学技术学院物理与光电工程学院,广东佛山528000)
激光测距是可以实现非接触式测量的一种高精度测距的方法。传统的激光测距的实现方法有相位法和脉冲法[1]。而基于相位法和脉冲法激光测距系统侧重远距离高精度测量,且造价高,结构复杂,不适合应用于一些近距离测量的场所,现近距离测距使用较多的是超声波传感模块。RB URFv1.1超声波传感器可用于检测周围的物体,是机器人领域最常用的测距避障模块,其有效侦测距离为3~340 cm,探测分辨率为0.5 cm,探测误差为±0.5%,即测量范围在20~200 cm时测量误差为±1~10 mm。且超声波的传播速度易受环境温度的影响,从而影响测量的精度。
与超声波传感模块相比,在现有条件(测量误差±0.2~±3.8 mm,测量范围20~200 cm)下,本测距装置有效测量范围较短,但精度更高,测量分辨率更高,成本低廉。在理论情况(测量误差±0.1 mm,测量范围10~500 cm)下,本测距装置有效测量范围更广,精度更高。同时,激光测距方法的测量准确性不受环境温度的影响。
1 测距原理
1.1 系统的组成
激光测距系统装置如图1所示。该系统主要包括激光光路系统、图像采集系统和电脑处理终端。激光光路系统包括由发光管芯、聚光透镜组成的激光二极管模块,出射激光波长为650 nm,功率为5 mW,工作电压为5 V。激光准直后在15 m处光斑直径为10~15 mm;图像采集系统包括由CMOS感光元件和聚焦镜头组成的免驱摄像头,其最大分辨率为640×480。测量时,电脑处理终端触发相机采集图像,利用LabVIEW开发平台对图像同步进行定位、分割、图像数字处理和激光点坐标测量等操作,实时显示测量距离等参数信息。
图1 激光测距原理示意图
1.2 测距原理
区别于传统激光测距的原理,本文采用的是基于摄像头的激光测距[2],如图1所示。假设激光投射到目标物体上,同时位于与激光管同一平面的摄像头画面内能够捕捉到激光照射点,且要求激光光线和摄像头成像轴完全平行。这样,照射到目标物体的激光点和摄像头成像平面连线和摄像头轴线之间会有一个夹角θ,通过在摄像帧图像里面对这个激光点相对于轴心的像素点的判断,可以确定出θ的大小,从而就能得到距离D。根据几何关系,容易得出距离D的测量公式:
将式(2)代入式(1),可得
以上公式中的pfc指激光点在摄像头拍摄的图片上到摄像头轴心的距离,rpc指的是每个像素点的弧度,ro为角度的补偿因子。rpc和ro是由摄像头本身的参数决定的,可以通过测试两组D和pfc来联立方程求得。只有pfc为变量,根据图像处理,即可求出pfc,进而求得距离D。
同时可以根据实际数据的测量实验或几何关系可以得出:假如激光管安装在摄像头的正上方,则激光在CMOS感光元件成像上,根据距离的不同,只是在Y轴上有偏移,X轴方向的坐标位置固定。若激光管装在摄像头的左边或者右边,激光点在CMOS感光元件成像上只是在X轴方向发生偏移,而且距离D和激光点到相机轴心的距离是成反比的[3]。
2 系统的实现
2.1 系统的搭建
图2所示装置需要一个功率为5 mW、电压为5 V的普通激光管和一个最大分辨率为640×480的摄像头,摄像头与激光管的水平距离h=5 cm。将激光管置于与摄像头同一水平线或竖直线(本文激光管安装在与摄像头同一水平线的左边)。调节激光管的俯仰角,使得激光管出射的准直光与摄像头成像轴平行。启动PC端程序,调用摄像头,根据拍摄画面中的参考物对镜头调焦及摆正。调节镜头与待测目标物距离适中,保证激光点处于拍摄的画面中,则待测未知量pfc就是激光点在画面上X轴方向的偏移量。
图2 激光测距外观装置图
2.2 图像处理
LabVIEW是一种新型的图形化编程软件,有着极为丰富的界面控件,主要用于开发数据检测,数据测量采集系统,工业自动控制系统和数据分析系统。运用LabVIEW的视觉模块对摄像头采集的图片进行图像处理,能够简化程序的结构和内存,大大提高了程序运行的效率。所以本文采用在LabVIEW的环境下进行开发[4]。
基于LabVIEW图像处理寻找激光点的坐标分为彩色图像匹配、图像分割、图像预处理、图像质心求解和坐标转换等步骤。
2.2.1 彩色图像匹配
本系统的彩色图像匹配算法主要是利用LabVIEW自带的颜色匹配模块来实现,该模块主要包括学习和匹配两种控件。对于该学习控件,需要调试的主要参数有:是否提取平移不变性或旋转不变性匹配信息、学习模式设置数据、学习模具设置。对于该匹配控件,调试的主要参数有:匹配数量上限、最小匹配分数、匹配模式设置数据、是否匹配平移不变或旋转不变图像;还需要参考设置的参数有:旋转角度范围的设定、是否返回匹配结果的亚像素精度、目标区域描述、匹配阈值设置。
上述参数设置的正确与否将直接关系到匹配操作能否成功。在使用时,需要输入提前从采集图像中截取的激光点区域图像,作为学习的图像;然后由学习控件将学习结果图像输入到匹配控件中,计算机将相机拍摄图像同时输入匹配控件中,即可输出在采集图像中的激光点区域信息,达到定位目的。
程序运行的效果图如图3所示。
图3 基于颜色匹配框取激光点
2.2.2 图像分割
由于后续需要采取求取整张图片的质心方法来求取激光点的坐标,需根据颜色识别获取的激光点位置的4个顶点坐标,用LabVIEW视觉模块的IMAQ Extract2 VI将激光点截取出来,即在摄像头拍的原图中将激光点从其背景中截出来,用于后续的激光点质心的求取,以提高激光点坐标计算的准确率。
2.2.3 图像预处理及求取质心
由于截取的激光点图片是彩色图,为了方便运算,需将激光点二值化。由于激光点周边有光晕,也会对图象求取质心获得激光点的坐标造成影响,需要对图像进行滤波、腐蚀、开运算,最大限度地消除噪声[5],获得只有激光点的像素二值化图片。最后需要对二值化后的激光点图像求取质心,从而获得激光点在图像上的坐标。需要注意的是,此坐标不是原本摄像头拍摄图片的激光点质心坐标,而是截取出来的激光点图片的质心位置(x1,y1),所以需换算回去,最终可得到摄像头拍摄图片上激光点的坐标(X,Y)。由于画面是640×480的分辨率,则
经图像处理后激光点的二值化图像如图4所示。
图4 激光点的二值化图像
2.3 数据处理及研究
本装置摄像头与激光管水平距离h=5 cm。对系统进行初始调试时,对两段距离的测量结果见表1。将表1的数据代入式(3)后,即可得到参数rpc和ro。算得该固定参数设置为rpc=0.001 1,ro=-0.232 4。
表1 系统初始调试数据cm
再次使用本系统进行测距时,即可由图像处理后获得的pfc代入式(3),得到目标物体到摄像头的实际距离D。由于计算机控制相机实时采集的同时,计算机同步处理图像,因此本系统可实时显示距离信息。测量效果如图5。
图5 基于LabVIEW图像处理测算距离效果图
由图5计算的D1=20.05 cm和实际距离D2=20.00 cm,可计算得到绝对误差Δ=-0.05 cm,相对误差为:0.25%。测量近距离和远距离的多组数据如表2。
表2 测量误差
由表2可知,测量范围在20~200 cm,测量绝对误差为±0.2~±3.8 mm,相对误差为0.1%~0.22%。由此说明该装置测量的精度较高。
于位置D=42.60 cm和D=85.90 cm测量多组数据,求得系统的标准差来判断系统是否稳定,数据如下表3所示。
表3 求系统测量的标准差cm
由表3中的数据可知D=42.60 cm和D=85.90 cm两个不同测量位置的系统测量标准差很小,由此可判定该装置的系统稳定性高。
3 分析与改进
在实际测距场合中,带PC端的激光测距系统的灵活性和便携性不高。对此,本文提出了一种不需PC端的设计方法。即计算机可被装有LCD显示屏的Openmv模块替代,Openmv模块提供的图像处理程序可替代LabVIEW图像处理程序来识别激光点及获取激光点坐标位置,并将处理得到的测量距离在LCD显示屏上实时显示。Openmv模块自带摄像头,可将激光管与Openmv模块装在一起,组成一个一体化的激光测距装置,提高激光测距装置的灵活性和便携带性。
4 结论及尚存在的问题
4.1 结论
通过实验发现,该仪器的有效测量范围为20~200 cm,该范围内的测量误差为±0.2~±3.8 mm。此处实验采用的摄像头分辨率为640×480,为了提高精度,可以选用更高分辨率的摄像头[2]。另外增大激光管和摄像头之间的距离,可以测量得更远,但是这样又会牺牲测量的精度和最小的测量范围,所以本系统适用于近距离的高精度距离测量的场所。
4.2 存在的问题
目前本系统有待进一步研究的问题是,装置使用时对环境光线要求较高,强光照射和各种反射物的干扰都会导致系统无法正常使用,使用范围有待扩大。另一方面,系统误差对测量结果精确程度的影响也很大,激光准直平行和光路调节精确程度有待提高。
由于本系统是通过图像像素信息获取实际距离信息,理论上测量精度可达到微米级别。然而目前测量误差为±0.2~±3.8 mm,测量精度仍有提升空间。解决方案的关键在于,使用更高分辨率的相机,严格把控装置参数的准确性,并提高图像处理算法的准确度。