马云龙,高云玲,卿黎飞,熊悠然
(1.中国民航大学电子信息与自动化学院,天津 300300; 2.中国民航大学计算机科学与技术学院,天津 300300)
由于飞机起降时轮胎摩擦产生的橡胶附着、恶劣天气、天然灰尘沉积等原因,机场助航灯发光口会受到污染,使其发光强度降低,影响飞行员的视觉判断,危及航空安全。目前,助航灯清洗普遍采用的是在夜间休航时人工清洗。随着民航业的发展和机场规模的扩大,人工清洗效率低、成本高。实现灯具自动清洗的关键是对灯具进行精确定位,普遍使用的定位方法有GPS定位、射频RFID定位[1]、金属探测定位[2]、超声波定位[3]和计算机视觉定位[4]。GPS定位精度最高可达2 cm左右,但费用高;RFID技术需要完成所有目标的信号标签布置和定位,工程量大;金属探测技术是通过检测目标在交变磁场中产生的涡电流所激发的磁场来实现定位的,需要探测设备距离灯具足够近才有效;超声波定位法通过检测声波经过目标的反射波来定位,而嵌入式助航灯一般高出地面12 mm左右,无法反射足够强度的回波,且机场环境复杂,回波干扰较大;相比之下,计算机视觉定位可利用摄像机取得的画面获取灯具位置信息,成本低、效率和精度高、实时性好。
基于视觉的定位方法分为单目视觉定位、双目视觉定位、多目视觉定位[5]3种。双目视觉定位采用2个摄像机完成目标定位,可以实现单帧单目标点定位,对目标物体无几何约束,应用场合灵活,但系统复杂、运算量大、成本较高;多目视觉定位需要多个摄像头,虽然对目标物体无几何约束要求,但系统非常复杂,运算量特别巨大,应用场合受限,成本很高。本文采用单目视觉定位[6]的方法,即利用一个摄像头完成定位,具有系统简单、运算量小、成本较低等特点,同时建立了地面约束坐标系,满足单目视觉定位需要几何约束的要求。
通过计算机视觉对助航灯具及其发光口进行定位和识别的关键是获取噪声小且稳定的、实时性好的图像,经过计算机处理计算,以确定灯具与摄像头的相对位置。摄像机的安装位姿和内外参数的确定对定位识别性能和精度有一定的影响。
图1 摄像头安装位姿模型
摄像机获取的图像与实际空间中的物体存在一种线性关系:[图像]=M[实物],利用该关系可以将图像还原为实际物体,参数M的确定过程称为摄像机标定。
1.2.1 摄像机的标定模型
摄像机标定常用4个层次的坐标系,即世界坐标系、图像坐标系、像素坐标系和摄像机坐标系,4者之间的关系如图2所示。
图2 4个层次的坐标系
世界坐标系与图像坐标系之间存在转换关系:
1.2.2 标定方法
摄像机的标定方法[7]可以分为传统法、主动视觉摄像机标定法和摄像机自标定法。传统法适用性广泛,精度高,但过程复杂,需要高精度的已知结构信息;主动视觉标定法鲁棒性高,可线性求解,但需要已知的摄像机运动信息;自标定法可依据多幅图像之间的关系进行标定,灵活性好,但其属于非线性标定且鲁棒性不高。
本文采用普遍使用的张正友[8]的平面棋盘标定法,该方法介于传统法和自标定法之间,操作简单、鲁棒性高、成本低廉。利用Matlab中的标定工具箱TOOLBOX_calib来标定。总共采集了12幅棋盘图,分辨率为640×480。图3为拍摄的棋盘图,图4为图像的角点提取结果。
图3 使用的棋盘图
图4 角点提取过程
标定结果为:
助航灯具的定位需要知道灯具相对于摄像机的位置坐标,为了求出位置坐标,需要知道发光灯具中心在图像中的像素坐标。助航灯具在白天不发光状态下目标图像呈现为椭圆,所以采用最小二乘法对灯具及发光口轮廓进行拟合,求出灯具中心像素坐标。在夜晚发光状态下,发光口发出的光在摄像机中呈现各种形态光斑,经过与其他方法的对比,质心法对光斑的检测具有更强适应性,且运算过程简单,能够有效地检测出各种形态亮斑中心的像素坐标。
在用最小二乘法和质心法检测之前先要对图像进行预处理[9],为灯具的轮廓提取消除环境干扰,提高精度和运行效率。图像预处理分为图像去噪、自适应阈值分割[10]、形态学处理和边缘检测等4个步骤。
2.1.1 图像去噪
在图像的灰度图中通常包含各种噪声,会对图像的检测造成各种干扰。消除图像中噪声主要有均值滤波、中值滤波、低通滤波这几种方法。均值滤波是指在图像上用目标像素邻域全体像素的平均值来代替目标原来的像素值。均值滤波不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点;低通滤波可以过滤掉空间频率较高的噪声,但同时也可能过滤掉部分边缘信息;中值滤波[11]是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。中值滤波能够有效地去除椒盐噪声,并能有效地保留边缘信息。中值滤波是比较常用的去噪方法。图5为进行中值滤波的效果对比,可见,图5(a)环境噪声的影响十分明显,图5(b)去噪效果显著,目标轮廓和细节较为突出。
(a) 中值滤波前 (b) 中值滤波后
2.1.2 自适应阈值分割
在灯具发光状态下为了分割光斑,需要对图像进行二值化处理,根据设定的阈值将图像分为0和255的二值图像。阈值的设定分为固定和自适应2种。固定阈值分割原理简单但适应性不强,所以本文通过自适应阈值来对光斑进行分割。
自适应阈值分割中,Otsu(大津法)[12]能够得到最佳的阈值处理,该算法的处理速度快,分割效果较好,具有较好的实时性。
2.1.3 形态学处理
阈值分割后的二值图像边缘不完整,存在很多噪声点,并且边缘不平滑,会对下一步边缘检测造成影响,不能提取出完整的边缘轮廓。基础的形态学运算包括腐蚀和膨胀[13]这2个部分。腐蚀可以去掉较小的噪声点,并使得图像向内部收缩,面积减少。膨胀可以将“空隙”填满,并使得物体面积增大。
腐蚀和膨胀组合可以得到开运算和闭运算,开运算和闭运算经常用于物体检测,闭运算将误分割成碎片的物体重新连接,开运算移除场景中比较小的物体。本文采用先腐蚀再膨胀的开运算,先通过腐蚀去除噪声点,再通过膨胀平滑边界。图6为对自适应阈值分割后的图像进行开运算的效果。其中图6(a)可以看出轮廓边缘有锯齿状突起或缺口,影响边缘检测的精度;图6(b)轮廓边缘平滑,且面积有适度增大,可以减小边缘检测时的误差。
(a) 开运算前的二值图像 (b) 开运算后的二值图像
2.1.4 基于Canny算子的边缘检测
Canny算子[14]是比较常用的边缘检测方法,也是本文所采用的边缘检测方法。传统Canny算子的原理:
1)高斯滤波平滑图像。
3)对梯度幅值做非极大值抑制。
4)采用双阈值算法检测及连接边缘。
灯具不发光状态下直接对去噪后的灰度图进行边缘检测,灯具发光状态下对经过形态学处理的二值图像进行边缘检测。图7为使用Canny算子进行边缘提取的效果。
(a) 原图 (b) 提取的灯具以及发光口的轮廓
在边缘检测获得白天不发光灯具轮廓的基础上,寻找最大轮廓,通过最小二乘法[15]拟合椭圆实现对灯具轮廓的检测识别。随着灯具距离的接近,可以提取到较为清晰的发光口轮廓,先排除掉面积大于发光口的轮廓(主要是排除灯具轮廓的影响),再寻找最大轮廓,通过最小二乘法拟合椭圆实现对发光口的识别。整体算法流程如图8所示。
图8 算法流程图
最小二乘法的主要目的是为了寻找一组椭圆参数,使得边缘点到椭圆的距离平方和最小。平面内某点(x0,y0)到方程f(x, y)=0所代表曲线的代数距离就是f(x0,y0)。
(a) 灯具轮廓 (b) 发光口轮廓图9 灯具及其发光口的轮廓拟合
通过预处理可获得各种形态的亮斑轮廓,光斑的中心可以近似看作灯具的中心。高庆吉等[16]采用随机霍夫圆检测将光斑近似为圆形,但由于发光强度以及角度等问题,光斑形状不规则,识别不稳定。经过形态学运算的光斑去除了毛刺以及内部空洞,图像连续性较好,可以采用质心法[17]求出亮斑的中心像素坐标。
在现代汉语中,“让”字除了基本的含义和用法外,还可以后面连接补语(complement)形成表示使役义的“动补结构”,从而形成“使役过程”的小句,这时,小句所表达的意义一方面取决于“让”字的使役义,而另一方面和“让”字后面的补语成分共同表达小句的使役类的及物性过程意义。例如,在例句(3)中,此句是由作为小句主要动词的“让”字加上后面的小句“人们造出无限的句子来”共同表达是使役动作过程意义,从而形成含有使役义的动补结构,即“使役动补”结构。
求质心坐标的方法有2种:阶矩法和平均值法。阶矩法运算复杂、计算量大。平均值法通过遍历图像所有像素并求平均值来求得质心坐标,运算过程较为简单。本文提出一种改进的平均值质心法求取中心点像素坐标,即仅遍历目标轮廓像素坐标,采用平均值法求得轮廓质心。此方法去除了大量冗余运算,运算量小、实时性高。f(u,v)为轮廓的拟合函数,(u,v)为轮廓任一点像素坐标,则质心的像素坐标为:
图10为光斑的质心定位效果,其中图10(a)为灯具强光状态下的衍射光斑,图10(b)中虚线围成的闭合曲线为提取的光斑轮廓,圆圈中心点为轮廓质心的像素坐标;图11为发光口的质心定位效果,其中图11(a)为弱光状态的灯具,图11(b)为发光口的轮廓及其质心的像素坐标。
(a)衍射光斑 (b) 光斑轮廓及质心图10 光斑质心的求取效果
(a) 发光口 (b) 发光口质心图11 发光口的质心求取效果
本文中摄像机安装位姿已知,根据摄像机的成像原理以及立体几何关系,建立地平面约束坐标系如图12所示。
图12 地平面约束模型
图12中,点C为摄像机光心,以过C且垂直于地平面的直线作为Z轴,CC1为摄像机光轴,面F1F2F3F4为像素平面,C0为光轴与像平面交点即主点,P0′为P′的像,P0为目标特征点P的像。已知C0,θ,OC,CC0即焦距f,可求出P点世界坐标(XW,YW,ZW)。
1)求YW。
2)求XW。
3)求ZW:嵌入式助航灯与地平面近似持平,故ZW=0。
综上所述,通过摄像机标定的结果和几何关系,可计算出灯具中心点的世界坐标,即表征了摄像机与灯具的相对位置。计算机根据得到的灯具坐标(XW,YW,ZW)计算出自动清洗车到达目标灯具所需的前进方向和前进距离,由转换器转换为直流驱动电机角速度和转向装置的转角,控制清洗车到达指定位置。
为验证算法理论的可行性,提高定位精度,需进行一系列实验确定误差,并进行误差校正。
产生误差的原因有3类:1)摄像机的参数误差,标定内参时可通过重复多组标定提高参数精度;2)摄像机的安装位姿带来的误差,操作过程中尽量避免;3)实验环境带来的误差,比如地面不平、干扰物多等,可人为消除。此外,轮廓提取质心计算等带来的误差可通过Matlab拟合测量值与实际值的线性关系来消除。
1)按照图1(见1.1节)摄像机的安装位姿模型安装设备。
2)X轴方向校正。将灯具放置在Y轴上距离原点3 m处,保持Y轴距离不变,左右沿图12中PP′方向平移灯具,每隔30 cm采集一张图像,左右各5组,测量记录测量值和实际值如表1所示。
表1 X轴测量数据 单位:cm
通过Matlab的线性回归和线性拟合[18]得到测量值与实际值的关系函数X实=0.96678X测-1.5178。
3)Y轴方向上的校正。沿图12中OP′方向移动灯具,每隔100 cm采集一张图像,共采集5组,测量记录实际值和测量值如表2所示。
表2 Y轴测量数据 单位:cm
通过Matlab的线性回归和线性拟合得到测量值与实际值的关系函数Y实=1.0164Y测-7.0194。
随机确定5组已知坐标点,将灯具分别放置于5个点上,记录测量值,并采用求得的2个方向上的关系函数进行校正,求得绝对误差如表3所示。
表3 校正结果 单位:cm
综上所述,校正后的绝对误差小于灯具直径30 cm,满足精度要求,有效可行。
本文通过摄像机的标定以及地平面约束模型的建立实现了助航灯具的定位以及发光口的识别;通过多种图像处理方法的比较和搭配,有效消除了噪声,精确识别了灯具和发光口;通过改进的质心法求得灯具和发光口的中心坐标,减小了运算量,提高了实时性;通过摄像机的标定以及地平面约束模型的建立得到了助航灯具的相对位置。为了进一步提高定位精度,可以加入电子里程计和其他非视觉定位方法,进行多传感器的数据融合,消除视觉定位存在的环境干扰等问题,并且研究多目标情况下的识别逻辑和算法,在助航灯的自动清洗方面具有广阔的应用前景。