王增专,蒋 明,付小健,谭力恒
(1.华中科技大学 武汉光电国家研究中心,武汉 430074;2.华中科技大学 鄂州工业技术研究院,湖北 鄂州 436044)
激光除冰[1-5]作为一种新颖的非接触式除冰技术,能在远距离快速去除目标物体表面附着的冰雪覆盖物,主要应用于输电线路与桥梁拉索等冰雪灾害防护领域。激光远程除冰过程中,随着工作距离的增大激光功率密度会大大降低,根据工作距离动态调节输出激光束的参数、时机及作用位置,可以有效提高融冰速度。传统的用于激光除冰系统测距的方法主要有:红外测距[6]、超声测距[7]以及激光测距[8]等。红外测距具有测量精度高、速度快及结构简单等优势,但在强光直射环境下会导致测量误差。超声测距测量结果不受光照的影响,具有测距迅速、处理信息简单等优势,但由于冰目标表面光滑易产生镜面发射而导致测量误差。激光测距具有快速测量、实时动态以及测量范围大等特点,在工业领域得到了广泛的应用。
激光三角测距法[9-11]是由学者D.Burrows和J.Hadwin于1973年提出的一种将传统三角测量法与先进的激光检测技术相结合的非接触式测距技术,具有铺设简单、功耗低等优点。在激光三角测距仪设计方面,陈念年[12]提出了一种高精度单点激光三角测距方法,在校正CCD相机畸变的基础上利用亚像素定位技术检测光斑中心,测量均方根误差为24.9 μm。朱铮涛[13]建立了基于远心镜头的主动式激光三角测距模型用于检测物体厚度,测量精度在5 μm以内。张思详[14]搭建的激光三角测距仪避免了传统测量方法中需要选取基准点的缺陷,将测量范围提升至750 mm时,测量精度可达0.3 mm。武泽键[15]搭建的利用功率自适应的激光三角测距仪有效保证了光斑图像的稳定性,测量精度可达0.05 mm,大幅提升了测量精度。但现有激光三角测距仪由于激光采集设备的接收范围有限,导致其无法胜任大范围的测距任务,从而影响了激光三角测距仪的应用灵活性。
为了弥补普通激光测距仪范围受限、灵活性差等不足,结合PTZ相机具有可变视角和可变分辨率能力,提出了一种测量范围可调的激光测距方法,通过软件控制PTZ相机进行旋转运动和变倍调节,实现了不同位置、大范围目标的测距功能,有助于辅助与增强激光除冰系统的工作性能。
激光除冰视觉测距系统装置如图1所示。本系统主要由PTZ相机、指示激光器、三角支架及计算机等硬件设备和图像处理软件组成。本文使用的PTZ相机是海康威视DS-2DC7423IW-A型400万像素高清网络球机,支持2 560×1 440@30fps高清画面输出,内部集成云台能够承载相机水平360全角度旋转及垂直90°翻转,镜头可伸缩可光学变焦,焦距为4.8~110 mm,支持23倍光学变倍,相机自身水平视角为59.5~2.9°(广角-望角),满足工程上场景范围动态变化和视觉测量精度的要求。指示激光器使用宏达公司HD-D635P5-F1670型650 nm/5 mW红色点光源。PTZ相机与指示激光器分别固定于三角支架上,且支持高度和俯仰位置调节。图像处理软件是在Windows 10环境下,采用Visual Studio 2015和MFC进行界面层开发,基于OpenCV开源视觉库和海康威视相机SDK开发包,设计视觉处理算法。
图1 激光除冰视觉测距系统结构图
系统工作原理是激光三角测距原理[16-18]。要使测量系统具有较大的测量距离又能保证合理的测量范围,必须保证采集设备具有可变视角和可变分辨率的能力,为此本文基于PTZ相机实现了一种测量范围可调节的激光测距功能。如图2所示,激光器向待测目标投射一束激光,PTZ相机中心点在激光束投射路径上的垂直投影点为测距起点,激光器与相机镜头中心点的间距为h。通过控制PTZ相机进行位姿调节和变倍调节,使待测目标出现在拍摄画面中,此时待测点和相机中心O之间的连线与测距起点和相机中心O之间的连线会存在一个夹角θ。当待测目标沿激光出射方向前后移动时,相机画面中的光斑位置及大小也会随之发生变化,从而造成θ的变化。依据激光三角测距法的位置关系,可以得出待测距离D的大小为:
D=htan(α±Pfc·Rpp+ro)
(1)
其中:α为相机云台转角,Pfc(pixels from center)为光斑像点到成像中心的像素个数,Rpp(radian per pixel)为单个像素点所代表的弧度,ro(radian offset)为安装补偿因子。Rpp和ro由相机固有参数决定,由式(1)可知,定焦距下θ的大小主要取决于α和Pfc。可以通过一定的图像处理算法获得Pfc的大小,在海康威视相机SDK开发包的支持下,获得对应的云台转角α大小,进而实现激光测距功能。由于PTZ成像视野大小的影响,固定位姿下系统的测量范围受限,如图2所示,位置A为测量的最小距离,位置C为测量的最大距离。另外,合理调节PTZ相机变倍值得到高分辨率的光斑图像,会降低由环境光线干扰而导致的测距误差,进而实现远距离测距。
图2 测量范围可调的激光三角测距法原理示意图
图像处理软件是整个视觉测距系统的关键所在,负责完成光斑图像的采集、识别、定位及距离解算。软件运行的过程是,首先利用海康威视提供的开发包对PTZ相机进行二次开发获取实时光斑视频流数据,并解码为YUV图像数据结构,再利用cvCvtColor()函数转换成OpenCV提供的库函数设计光斑图像的处理算法,配合PTZ的云台控制实现激光测距功能。视觉测距系统软件设计流程图如图3所示。为了满足测距的实时性需求,作者采用MFC多线程和链式队列相结合的方式,实现图像数据采集与处理过程的协同工作,最小化系统开销。
图3 系统软件算法流程图
云台指的是支撑和安装PTZ相机的平台,可以通过云台控制器对外部信号的响应实现PTZ相机两个自由度的旋转及画面缩放。使用的海康威视PTZ相机支持水平0~360°旋转、垂直-15~90°旋转及23倍光学变焦,且该款相机提供了通信及二次开发接口,便于用户控制云台转动及变焦调节。云台控制的任务是根据用户指令驱动云台旋转与变倍,保证画面中捕获高分辨率的光斑图像。系统云台控制工作流程是,首先在使用SDK中的基础API之前,调用函数NET_DVR_Init初始化SDK;接着使用函数NET_DVR_Login_V30实现注册登录设备;再利用带速度的控制函数NET_DVR_PTZControlWithSpeed依据用户指令向云台发送控制码,PTZ接收后经云台控制器解码并驱动相机调节姿态和焦距,云台转速有6个等级,支持上下左右以及左上、左下、右上、右下共8个方向旋转,镜头可伸缩可光学变焦;最后在系统活动结束前需要调用函数NET_DVR_Cleanup释放SDK内存资源。
图像进行预处理[19]能减轻后续识别任务的负担,提升图像质量。针对背景区域和噪声干扰的问题,利用光斑ROI定位算法和中值滤波算法对光斑图像进行了增强,突出了图像特征。
PTZ采集图像的视场通常超过光斑的大小,为了使后续算法处理目标更集中,通过设置图像感兴趣区域ROI的方式截取图像中的光斑区域,以消除背景带来的影响。使用OpenCV库函数cvSetImageROI设置ROI的大小,将图像中光斑区域标记截取出来。由于激光反射形成的光斑易受到散射、衍射和自然光的影响,从而导致采集到的光斑通常出现色变和形变等现象,提升了光斑识别与定位算法的难度。为了滤除图像噪声及增强目标的可处理性,选用中值滤波算法对噪声进行抑制。中值滤波是一种非线性滤波算法,其处理过程是将图像中任意像素点的像素值更新为其邻域内的中值。使用OpenCV库函数medianBlur实现均值滤波操作,该方法在抑制噪声的同时可以有效地克服由线性滤波算法导致的图像模糊等问题,达到了“保边去噪”效果。
在图像处理过程中,颜色是一种描述图像非常有力的因子[20]。区别于灰度图像,彩色图像对图像的信息往往表达更完整。通过对原始光斑信号的分析,发现光斑在图像中呈现红色或中心为白色且被红色包围的颜色特征。此时若采用单阈值分割的方法对图像进行处理将丢失光斑的颜色信息,基于此本文采用HSI颜色阈值分割算法实现光斑初步检测。由于系统采集到的原始光斑图像是基于RGB颜色空间的,需要进行颜色空间转换以获得HSI颜色空间下的光斑图像。首先将H、S、I分量取值范围标准化到[0,255],再利用OpenCV库函数cvThreshold分别对各分量进行红色区域提取,当阈值满足H:[220,255]、S:[43,255]、I:[46,255]时可以准确分割出光斑区域,最后使用函数merge合并成单通道图像,得到二值化的光斑图像。为了填充空洞和去除边缘毛刺,采用OpenCV库函数floodFill对区域进行漫水填充,再调用形态学开操作函数open平滑边缘。
由于检测出来的二值图像通常存在背景区域的干扰,如树叶、红色标记物等,需要进一步验证结果区域是否为激光光斑。通常激光光斑表现为具有规则圆形或椭圆形的轮廓特征,基于此采用圆形度检测算法对二值图像进行区域筛选,以提高光斑识别的精度。圆形度是用于表征目标边缘轮廓复杂程度的物理量,其取值范围为(0,1]。使用OpenCV库函数contourArea和arcLength计算区域面积A和周长L,进而计算得到圆形度ω的大小为:
(2)
考虑到光斑的轮廓特征及系统的实时性要求,选用圆拟合法对光斑进行定位。圆拟合法指的是当目标区域的形状是圆形或椭圆时,可以通过提取图像边缘点并采用最小二乘法来逼近其轮廓。由于光斑边缘一般具有较好的对称性,因此边缘检测算子的选用对光斑中心的计算精度影响可以忽略不计。使用OpenCV库函数Canny提取光斑轮廓,并将边缘点的图像坐标保存到容器vector
图4 光斑图像处理流程图
图5 光斑图像处理结果图
在应用公式(1)进行测距之前,由于系统参数h、Rpp及ro需要进行标定。其中h可以通过卡尺或测距仪测量得到,而不同Zoom值下Rpp及ro的大小则通过对已知目标测量对应的像素值和角度值,通过计算得到。
搭建的激光三角测距实验平台如图6所示,激光器与相机位置固定,且h=1 200 mm,ro=1.607°。
图6 激光三角测距实验平台
Rpp实验标定结果如图7所示,在Zoom=3/5/10/15/20倍的条件下,Rpp值分别为0.008 7/0.005 4/0.002 8/0.002 5/0.001 5°/pixel。
图7 参数实验标定结果图
将待测目标放置于距离相机不同的位置处,通过软件计算得到定点的测距结果,并与实际距离作比较。测量结果如表1所示。结果表明,固定变倍值下系统的测量误差随着距离的增大而增大,测量误差在Zoom=3倍时不大于54 mm,在Zoom=5时不大于27 mm,测量误差在Zoom=10时不大于19 mm,在Zoom=15时不大于15 mm,在Zoom=20时不大于11 mm。
表1 不同变倍值下40 m范围内测距结果
图8展示了不同变倍值下实际距离与测量绝对误差的变化关系,观察可得,系统测量误差随着变倍值的增大而减小,这是由于随着Zoom值的减小,相机固有的视场角会变大,即Rpp值会增大,从而导致测量误差放大。
图8 不同变倍值下实际距离与测量绝对误差变化关系图
综上所述,可以通过调节相机Zoom值实现40 m范围内不同位置处的精确测距。具体地,当待测距离在5 m以内时Zoom值的可选区间为[1,5)倍,在5~10 m时Zoom值的可选区间为[5,10)倍,在10~20 m时Zoom值的可选区间为[10,15)倍,在20~30 m时Zoom值的可选区间为[15,20)倍,在30~40 m时Zoom值的可选区间为[20,23]倍。实验中,单帧图像处理耗时为29.95 ms。
为了实现激光远程除冰系统视觉测距需求,基于OpenCV平台和海康威视相机SDK开发包实现了一种范围可调的激光三角测距系统。本测距系统融合了PTZ相机水平360°全角度旋转、垂直90°翻转以及23倍光学变倍能力,通过调节相机位姿及相机视场角(59.5~2.9°),有效扩大了基于机器视觉的激光三角测距范围,实现了40 m范围内目标的精确测距,单帧图像处理耗时为29.95 ms,满足激光除冰在线测量的要求。