邱鹏瑞
(1. 昆明理工大学 国土资源工程学院, 昆明 650093; 2. 昆明冶金高等专科学校, 昆明 650033)
光流是由于物体表面、边界和物体本身在被观察场景中与观察者之间发生的相对运动而产生的表观运动方式。光流理论问世于20世纪80年代,光流中包含了很多的结构和运动信息,因此很多异常检测、避障和运动物体跟踪都能用到光流信息。光流是由三维空间中的点A=(X,Y,Z)在摄像机坐标系下的旋转和平移运动产生[5-6],如图1所示。
图1 计算光流的投影几何
其中,O为摄像机坐标原点,f为摄像机焦距,点A在图像平面的投影a=(x,y),点A在方程中的时间导数,为式(1)。
(1)
(2)
(3)
(4)
计算光流的技术主要基于块匹配法,具体操作是把图像序列里相邻的图像子块进行匹配来对运动进行估计[8-9]。算法将图像分成若干个子块,相同子块的像素运动均相同。按照物理学运动合成分解的法则,复杂的运动可以分解为若干简单平移运动的和。块匹配法原理就是将运动的物体视为多个或者一个平移运动刚体,其前提条件是在图像场景中没有大的遮挡物。假定有两帧图像,把第一帧图像分为N*N或者N*M像素的子块,在(N+2w)*(N+2w)的匹配窗口中把待处理块同第一帧待处理块进行对比,按照匹配标准来实现最佳匹配,确定处理的块的替代位置。匹配标准采用均方差MSE和平均绝对值误差MAE,其定义为式(5)、(6)。
(5)
(6)
式(5)、(6)中,i≥-w,j≤w。I1(m,n)是待处理的块在第一帧图像的(m,n)位置,I2(m+i,n+j)是待处理的块在第二帧图像的(m+i,n+j)位置。使用全搜索法对(N+2w)*(N+2w)窗口中的所有图像计算最小匹配误差子块,对每个运动向量进行迭代搜索,次数为(N+2w)*(N+2w)次。由于采集的视频图像具有连续性,目标运动范围不会有大的跃迁,可以设置搜索范围、搜索跨度和搜索块大小。块匹配方法具有较快的速度,但是精度受搜索环境影响,在具体应用中,为了对光流进行有效计算,需要满足采集图像的亮度相对恒定的问题,物体表观在实验场景中照度发生变化时会产生运动的误判。事实上,在物体相对静止情况下,光源位置改变也会使得图像传感器检测到阴影的运动。同时,图像纹理丰富程度也是光流计算的重要条件[10-11]。
室内飞行和定点悬停是四旋翼无人机在GPS信号缺失的情况下通过视觉传感器完成的重要功能。本文自行搭建基于Pixhawk的四旋翼无人机光流硬件系统平台,光流传感器采用PX4FLOW,系统架构,如图2所示。
对于大国,老子同样以强弱的辩证关系切合自身的危机意识,通过谦逊处下的方式而不是以战争兼并天下领土与百姓的形式使小国归附。 提供给小国生存空间,使别国认可并接受自身统治,达到“王天下”的实质与目的。 在整体的层面上通过切合统治者危机意识,在适当与平衡的思维和行为上达到认同与共存,从根本上消除或减弱社会的现存威胁。 例如:
图2 系统架构
Pixhawk是基于ARM芯片的开源自动驾驶仪,由改进的APM和PX4发展而来,能够运用于直升机、固定翼无人机、多旋翼无人机、水下航行器等无人机,Pixhawk有与之相匹配的开源地面站QGroundControl进行地面控制。地面站能够对系统固件进行升级、修改,对控制参数进行设定,并完成与无人机的连接和控制功能[12]。本研究基于Pixhawk研发的无人机在各种环境进行试飞,存在飞行不稳定,无法定点的情况,主要原因是采用块匹配法进行光流定位时,自然光及周边环境对块匹配算法的影响较大,特别是在频闪和弱光条件下导致视觉数据偏离理想值较多,因此对算法进行如下的改进。
视觉传感器在采集数据阶段不可避免受到周边环境噪声的影响,通过中值滤波对采集图像数据进行预处理。具体步骤是把窗口中的像素点按照像素值的大小排序,对像素集取中间值并将其确定为中心点,然后进行滤波。以3*3大小的窗格举例,将9个像素的像素值属性进行排序,把确定的中值替换中心处的像素值。同时为了保障遍历窗口中所有的点,将图像的边缘进行扩展,即把图像原来的N*M扩大到(N+2)*(M+2),扩展后的区域边缘值和顶点值为原来图像的边缘值和顶点值。中值滤波预处理的模式是非线性滤波,其把图像数据中一个像素点的值用该点领域内各点的中值代替,使得周围噪声像素接近真实值,从而对孤立噪声点进行滤除。具体流程,如图3所示。
图3 中值滤波预处理流程图
在无人机飞行过程中遇到的高亮度与低亮度光照交替出现时,将导致采集图像数据产生较大误差。本文采用对相邻帧进行比例系数的设定,按照相邻帧的像素值对比例系数更新的方法对图像数据更新,消解误差影响。如图4所示。
210180150180160240170130220
(a) 高亮度帧
(b) 低亮度帧
(c) 渐进帧
图4 比例判定示意图
以3*3像素图像为例,其中I,a为判定系数,I通过高亮度图像和低亮度图像的各像素点值之和确定,a∈(0,1)。
使用块匹配进行光流计算效率高且较为简单,估算效果在固定环境中较好,但受到的限制也很明显,在计算时必须先假定Ω领域内各个像素点对应光流恒定不变。如果领域内存在不满足约束方程的点,光流的估算将会受到很大影响。本文利用Hessian矩阵判断领域内的异常点并进行剔除。
对光流约束方程x,y求偏导得到公式(7),其中I为像素点t时刻的亮度,u、v分别为该点的光流x分量和光流y分量,如式(7—9)。
(7)
转化为矩阵公式(8):
(8)
Hessian矩阵即为公式(9):
(9)
为验证改进光流算法的具体效果,在无人机定点悬停时采用均方根误差(Root Mean Square Error,RMSE)进行评价,即理想状况下,地面站在无人机定点悬停时获取光流数据与无人机运动一致,但在实际环境中会获得非一致的数据,以Pixel为单位,计算噪声得到的均方根误差越小则定点悬停效果越好。如公式(10)所示。
(10)
在自然光、弱光和频闪光条件下基于Pixhawk系统架构采用未改进的源码进行真机飞行实验,实验操作控制四旋翼无人机定点悬停,并采集实验数据,采样5次数据进行RMSE指标计算。之后将改进后的算法源码编译后通过QGroundControl写入固件,并进行相应条件的悬停实验和数据采集。四旋翼无人机飞行实景,如图5所示。
通过实验数据得出的RMSE,如表1所示。
通过实验验证,改进算法在自然光、弱光和频闪光条件下能够实现更好的定位悬停效果。
(a) 自然光
(b) 弱光
(c) 频闪光
图5 四旋翼无人机飞行实景
本文基于Pixhawk开源飞控和PX4FLOW光流传感器提出一种改进的光流算法,首先采用中值滤波预处理滤除部分光流噪声,并采用相邻帧比例判定削减频闪光对光流数据的影响,然后通过Hessian矩阵阈值处理剔除异常点,最后将改进的光流算法通过地面站软件QGroundControl上传飞控并进行实验。实验结果表明,改进光流算法在自然光、弱光和频闪光条件下能够实现更好的定位悬停效果,具有较强的鲁棒性。