APP下载

基于SIFT算法的飞机驾驶舱按钮开关识别

2023-01-11彭卫东苏子钦

现代计算机 2022年20期
关键词:按钮像素模板

彭卫东,苏子钦,魏 麟

(中国民用航空飞行学院,广汉 618307)

0 引言

目前熟练飞行员缺口较大的问题在全世界都存在,而这一问题对世界民航业的发展有很大的影响[1]。人工智能技术的发展使得能够实现完全自动驾驶的无人机、无人车以及无人船等正在日常生活中逐渐普及,在军事上也有将退役战斗机改装为无人机的案例,但是目前尚无运用了完全自动驾驶技术的载人航空器出现。如果将人工智能自动驾驶技术运用在现有飞机上,那么熟练飞行员缺口较大的问题就能得到很好的缓解,但是多数现有的载人飞机在设计的时候并没有作出智能驾驶方面的考虑,如果直接对现有的载人飞机进行改装则会面临高昂的改装成本[2]。因此,产生了另一种在现有载人飞机上实现智能驾驶的方案,即在副驾驶座椅的位置安装一台有视觉系统等多种传感器以及多组机械臂的飞机自动驾驶机器人,这种机器人驾驶飞机的方式与人类飞行员相近,使用视觉系统观察各仪表、指示灯以及机外环境等并读取相关数据,使用机械臂完成各种操作,也使用视觉系统对驾驶舱内的按钮开关进行识别和定位,从而引导用于按钮操作的机械臂完成按钮操作[3]。因为采用非侵入式的改装,安装飞机自动驾驶机器人的改装成本要显著低于直接对现有飞机进行改装,同时也能快速地适应不同的机型[2]。

1 按钮操作机械臂与视觉系统分析

1.1 机械臂与视觉系统的关系

因为在维护过程中将机械臂进行拆卸、重新安装会不可避免地出现安装误差,故飞机自动驾驶机器人的按钮操作机械臂需要使用具有立体视觉能力的视觉系统来引导。机械臂与视觉系统之间有眼在手上和眼在手外两种安装关系,其中眼在手上的方式为视觉系统安装在机械臂的末端上,这种方式操作精度更高,但观察范围较小,且机械臂的运动容易使视觉系统拍摄到的画面模糊;眼在手外的方式为视觉系统安装在机械臂的旁边,观察范围较广,但是操作精度低于眼在手上方式,易受机械臂自身遮挡影响[4]。

考虑到按钮操作机械臂需要精确地对目标按钮进行操作,并且不能因为有遮挡而出现对目标按钮识别失败的情况,故采用了眼在手上的视觉方式。当然,还需要通过手眼标定才能获得从摄像机坐标系到机械臂末端坐标系的转换关系。

1.2 按钮操作机械臂的工作流程

按钮操作机械臂及安装在其末端上的视觉系统工作流程如图1所示。

图1 按钮操作机械臂及视觉系统工作流程

首先飞机自动驾驶机器人做出按钮决策后会控制机械臂使末端指向目标按钮的大致位置,位于末端上的视觉系统对目标按钮进行识别,然后确定按钮的精确空间位置和姿态,飞机自动驾驶机器人再根据定位和姿态测量的结果规划机械臂的运动轨迹,最后控制机械臂完成按钮操作。

1.3 立体视觉方式的选择

常用的立体视觉方式有双目视觉、ToF深度视觉和结构光深度视觉,三种方式的特点如表1所示[5]。

表1 三种立体视觉方式的特点对比

通过对空客A320飞机的模拟机舱(所有面板均为1∶1还原)中各按钮的尺寸测量可知,多数按钮的边长或直径都在8毫米以上,最小为6毫米,因此视觉系统的定位精度至少需要达到毫米级。双目视觉系统的空间定位精度符合针对飞机驾驶舱按钮开关进行空间定位的精度需求,并且拥有较高的分辨率,硬件成本较低,所以适合作为按钮操作机械臂的视觉系统。

2 按钮识别的实现

2.1 硬件配置

由于安装在飞机自动驾驶机器人机械臂末端上的视觉系统需要在一定距离对目标按钮进行识别与定位,因此该视觉系统需要有较高的分辨率,同时飞机自动驾驶机器人还需要实时处理交互、多个机械臂的控制以及对飞机运行参数的监控等多项任务,这对飞机自动驾驶机器人的计算机系统提出了比普通工业机器人更高的要求,需要配备多核CPU和GPU。因此采用了在同时配备多核CPU和GPU的PC机上完成实验,PC机的CPU型号为Intel i7-9750H,为六核CPU,主频2.6 GHz;总内存为32 GB;显卡型号为Nvidia GTX1650,CUDA核心数为896,显存为4GB,CUDA版本为V10.1。

选用了锐尔威视RER-1MP2CAM002-V70型双目摄像机,单个摄像头分辨率为1920×1080像素,视场角70°,帧率30 fps,信噪比39 dB,最低照度0.1 lux。

2.2 前置步骤

在对目标按钮进行识别之前需要对摄像机进行标定、畸变校正与图像预处理[6]。通过标定可以获得摄像头的内外参数和畸变矩阵,畸变校正的目的是根据畸变矩阵和摄像机内参数校正摄像头图像的畸变,图像预处理包括图像增强和图像平滑滤波,用来解决光照不足或光照过强导致的图像退化问题,降低噪声对图像的干扰。其中标定方法选用了张正友标定法,图像增强选用了γ变换,通过多次尝试发现在实验过程中取γ=1.2时增强效果较好,图像平滑滤波选用了既能有效滤除噪声又能很好地保护图像边缘和细节部分的双边滤波算法。

2.3 使用SIFT算法识别按钮的实现方法

尺度不变特征转换(SIFT)算法由Lowe教授在1999年提出,2004年完善和总结[7]。SIFT算法是一种基于图像特征点匹配的目标识别算法,通过SIFT算法能够提取出图像的特征点以实现对图像局部特征的检测与描述,具有良好的鲁棒性、尺度不变性、旋转不变性,适合用来识别飞机驾驶舱按钮这类形状特征较为丰富而颜色特征不明显的目标。SIFT算法的实现流程如图2所示。

图2 SIFT算法流程图

现使用SIFT算法对一张512×512像素的图片进行特征点提取,结果如图3所示。

图3 SIFT算法特征点提取结果图

在图3中使用SIFT算法一共提取了360个特征点,用时约34毫秒,这些特征点相对较为分散,很好地覆盖了图像中特征明显的点,例如明显的角点等,且小尺度的用于表示图像细节特征的特征点较多。

只对待检测图像使用SIFT算法提取特征点并不能实现目标识别,需要同时对当前需要识别的目标按钮识别模板和待检测图像提取特征点,然后将两者中特征描述相近的特征点匹配起来,具体实现方法是根据特征点的欧式距离进行匹配[8],然后使用随机抽样一致(RANSAC)算法通过多次迭代运算找出明显偏离正常匹配点对所构成的单应性矩阵模型的点对,并将误匹配点对从已完成匹配的点对集合中删除,剩下的匹配点对通常可以认为能够将模板图像与待检测图像中相同的特征点关联起来。特征点匹配的算法有快速最邻近搜索包(FLANN)匹配与暴力(Brute Force)匹配等。通过Brute Force匹配可以得到最佳的匹配结果,但是需要消耗较长的时间;FLANN匹配则相对较快,但是只能获得一个相对良好的匹配结果,而不是最好的匹配结果[9]。对于飞机自动驾驶机器人来讲,实时性是一个非常重要的因素,因此本文中的视觉系统更适合采用FLANN匹配。经过筛选后的特征点匹配对能够反映从模板图像到待检测图像目标区域的映射关系,通过对至少3对特征点匹配对进行相关运算可以获得从模板图像到待检测图像目标区域的透视变换矩阵,通过透视变换运算可以获得模板图像的轮廓在待检测图像中的投影,如果特征点匹配良好则模板图像轮廓的投影能够准确指出目标区域的像素范围。通常目标按钮所在图像区域的像素范围对于飞机自动驾驶机器人来说并没有意义,如果要将识别的结果用于后面的基于双目视觉的定位和姿态测量环节,则需要在两侧待检测图像中确定目标按钮上某一特征点的像素坐标,然后根据同一特征点在两侧图像中像素坐标的差异来实现针对该特征点的空间定位,通常使用按钮中心点的空间坐标表示目标按钮的空间位置;如果要将识别结果用于双目视觉的定位和姿态测量环节,则需要根据目标按钮上至少三个不共线的特征点的像素空间坐标来确定目标按钮所在平面的法向量。

假设有一对匹配良好的特征点,在模板图像中的特征点的像素坐标为(u0,v0),在待检测图像中的特征点的像素坐标为(u1,v1),在待检测图像中的特征点的像素坐标的齐次坐标形式为(U,V,W),则透视变换公式可用式(1)表示。

其中参数a11、a12、a21、a22用来表示线性变换,参数a13、a23用来表示透视变换,参数a31、a32用来表示平移,a33的值通常取1。则待检测图像中特征点的像素坐标可以表示为

为了方便比较,这里以按钮中心点、四个角的顶点以及模板图像的四个顶点为目标点,将这九个特征点在模板图像中的像素坐标代入透视变换的公式进行运算,并通过在部分目标点之间绘制连接线来表示模板图像轮廓以及按钮轮廓在待检测图像中的投影,得到结果如图4所示。

图4 模板图像与按钮轮廓投影结果图

从图4可以看出,在特征点匹配良好的情况下通过透视变换可以准确地指出待检测图像中指定的特征点的像素位置。使用SIFT算法完成目标识别的流程如图5所示。

图5 SIFT算法目标识别流程图

2.4 按钮识别实验

以空客A320型飞机的按钮为参考,使用一块同时印有“EXT PWR”与“GND CTL”键的模拟面板作为按钮识别的目标,模拟面板的设计如图6所示。以“EXT PWR”键(面板中的左侧按钮)为目标,使用SIFT算法针对模拟面板的识别效果如图7所示。

图6 模拟面板设计图

图7 SIFT算法识别结果示意图

可以看到尽管有少量误匹配的特征点对,但是经过RANSAC算法筛选、提纯之后能够准确地识别出目标按钮。接下来模拟一些飞机自动驾驶机器人可能会遇到的不良工作环境,例如目标按钮的文字部分存在一定的污损,以及环境光照不足或过度导致摄像机拍摄的图像过暗或过亮等,以“GND CTL”键为识别目标,并且目标位于图像的边缘处,因为摄像机拍摄角度不佳目标按钮还存在较为明显的变形,该图像进行γ变换的γ取值为0.8,而非最适合实验场景的1.2,这也进一步降低了图像的对比度。文字部分存在部分污损时识别效果如图8所示,过亮时识别效果如图9所示,过暗时识别效果如图10所示。这里通过对图像文字部分进行涂抹来模拟污损,过暗与过亮通过修改图像亮度来模拟。

图8 文字部分有污损时的识别结果示意图

图9 过亮时的识别结果示意图

图10 过暗时的识别结果示意图

通过图8、图9、图10展示的实验结果可以看出,在目标按钮存在文字部分的污损、摄像头拍摄的图像过亮与过暗等识别条件不理想的情况时使用SIFT算法均能准确识别目标按钮,在过亮的环境条件下按钮模板轮廓在待检测图像中的投影有轻微的变形,产生这一现象的主要原因是在该条件下图像的对比度相比原图有非常明显的降低,图像质量退化严重,特征点匹配受到了较大的影响,但是根据按钮及模板轮廓在待检测图像中的投影可看出,通过按钮识别计算出的按钮目标点与待检测图像中对应目标点的实际位置偏差较小。

3 结语

针对飞机自动驾驶机器人使用视觉系统对飞机驾驶舱的按钮开关进行识别、定位和姿态测量的应用场景,本文主要研究了基于SIFT算法和透视变换算法的飞机驾驶舱按钮开关识别方法,能够准确地识别出摄像机图像中的目标按钮,并计算出按钮特征点上的目标点(中心点、四个顶角点)的像素坐标,能够适应按钮文字部分有污损、光照过亮或过暗等飞机驾驶舱内可能出现的不良情况。由于SIFT算法具有计算复杂、实时性较差的缺点,直接使用GPU进行加速虽然可以带来明显的加速效果,但是并不能充分利用GPU的硬件资源,因此还可以对SIFT算法进行改进,将部分串行计算的步骤改为并行计算,从而进一步提升实时性。

猜你喜欢

按钮像素模板
铝模板在高层建筑施工中的应用
当你面前有个按钮
高层建筑中铝模板系统组成与应用
铝模板在高层建筑施工中的应用
像素前线之“幻影”2000
Inventors and Inventions
“像素”仙人掌
死循环
高像素不是全部
内心不能碰的按钮