APP下载

基于圆形块匹配的无人机航向角解算算法*

2022-03-23李天松张浩强杨溢凡

传感器与微系统 2022年3期
关键词:航向方形像素点

李天松, 张浩强, 杨溢凡, 连 涛

(桂林电子科技大学 信息与通信学院, 广西 桂林 541000)

0 引 言

无人机(unmanned aerial vehicle,UAV)由于其成本低、功耗低、灵活性高等优点已经越来越多地应用于生产生活当中。由于捷联式惯性导航技术的快速发展与微机电系统(MEMS)惯性器件的日趋成熟,无人机的实时姿态解算与控制问题已经成功解决。但是,使用传统的六轴传感器,只能将加速度计与陀螺仪所得数据进行卡尔曼滤波[1]或者互补滤波[2]来修正横滚角与俯仰角,无法对无人机的航向角漂移进行补偿修正,航向角精度会随着时间的增长而不断降低[3]。目前,比较常用的航向角检测方法是使用地磁检测传感器,这种方式有效解决了航向角漂移问题,但地球磁场是极其微弱的,无人机的地磁传感器又工作在复杂电流、电机旋转等因素引起的电磁场复杂的环境中,极易对地磁传感器的检测造成干扰。目前,视觉运动感知系统,即光流传感器已经成功应用于无人机的悬停定点[4]。光流是由相机和场景相对运动产生的,光流场是指图像灰度模式的表面运动。Horn和Schunck在灰度图像分析中引入了二维速度场的概念[5],并建立了光流基本约束方程,为早期的光流计算发展起到了奠基性作用。由Lucas与Kanade发明的Lucas-Kanade算法[6]可以计算出连续拍摄序列图像序列上的光流信息,得到了广泛的应用。

块匹配算法是最通用的光流计算方法,本文将块匹配光流算法进行了改进,通过圆形块匹配方式改善了匹配效果,并将其应用于无人机的航向角检测。经过对连续的拍摄画面进行逐帧检测,证明该方法可以准确地解算出无人机的航向角,并且相较于陀螺仪有效抑制了漂移,相较磁力计没有电磁干扰带来的影响。

1 块匹配光流算法原理

1.1 匹配过程

在摄像头与被拍摄物体存在相对运动时,所拍摄的不同帧之间会有边界遮挡的现象,所以难以检测整幅图像的运动状态。而且,在连续的视频中检测全局图像运动情况会有极大的运算量。在此情况下提出了块匹配光流算法。块匹配技术的前提是:所拍摄的画面在运动量很小、时间间隔很小的情况下默认两幅图像中物体在画面中所呈现的灰度没有引起变化;在足够小的区域内,物体的运动情况是相同的[7]。在此前提下,将视频图像序列分为很多不重叠的小块,假设块内的所有像素点的运动状态相同,且只发生平移运动,然后在目标图像中按照一定的匹配准则、通过一定的搜索算法寻找与此小块最相似的块,计算出该小块在目标图像中相对位置的变化即为运动矢量。如图1所示。

图1 块匹配光流法示意

图1为第k-1帧图像与k第帧图像进行匹配的示意图。图1中M,N分别为所设置匹配块的长和宽,一般取M与N相等。这里,当M与N的取值过大时,则上述块内所有像素运动状态相同的前提条件就会不成立,而M与N的取值过小会使块内包含的信息量过小导致匹配精度下降。在目前的H.26x与MPEG[8]等视频压缩标准中,均按式(1)取

M=N=16

(1)

这个取值已经被实践证明过能取得较好的匹配效果。um与vm为匹配块的最大横向位移与纵向位移,则长宽分别为M+2um,N+2vm的矩形区域则为在第k帧图像中搜索范围的大小。经过一定的搜索算法得到最佳匹配块,则向量w为匹配块在k-1帧到k帧间的运动矢量。

1.2 匹配准则

光流的块匹配准则主要有均方差准则(MSE)、归一化相关函数(NCCF)、平均绝对误差准则(MAD)、绝对误差和准则(SAD)等。其中,MAD与SAD容易实现,是比较常用的两种匹配准则,这里对其进行介绍。

平均绝对误差准则是指待匹配块与搜索块对应像素点灰度值之差的绝对值的平均值

(2)

式中M与N为所选取块的长宽,fk与fk-1为第k帧与第k-1帧的像素点灰度值,(i,j)为像素点在匹配块中的坐标,u与v为搜索块相对于待匹配块的横向与纵向位置偏移。当MAD最小时,则认为向量(u,v)为第k-1帧待匹配块在第k帧的运动位移。由于平均绝对误差准则不需要进行平方运算,运算的复杂度较低,所以经常被使用。

为了进一步降低运算的时间复杂度与空间复杂度,提出了绝对误差和准则。由于M与N的值在匹配过程中是确定的,所以,对上述所得的像素灰度绝对值不取平均值则为绝对误差和准则

(3)

同样的,当SAD最小时,向量 (u,v)为第k-1帧待匹配块在第k帧的运动位移。

2 圆形块匹配法

2.1 方形匹配块存在的问题

现有的块匹配光流算法中,选取16×16的正方形匹配块,并且默认匹配块只做平移运动而没有旋转、缩放等运动。但是,搭载光流传感器的设备尤其是无人机,做航向调整、拉升及降落是常用到的动作。例如,飞机在旋转速度很快时,相邻的两帧图像就会有过大的相对旋转角度,后面一帧搜索到的匹配块与待匹配块的相似性就会大打折扣。图2(a)为在某图片中选取的16×16的方形待匹配块灰度的平面分布图,图2(b)为此图片旋转过一定角度后对待匹配块进行匹配所得块的灰度平面分布图。

图2 正方形块灰度平面分布

如图2所示,匹配结果灰度值分布中,“黑影”部分相对于整块的位置相较待匹配块“黑影”部分相对于整块的位置有了一定的变化。由于图像转过了一定的角度,而匹配块依然使用相对于原图像没有旋转的正方形块,所以导致了匹配质量一定程度的下降。

2.2 圆形匹配块匹配法

由2.1节知,方形匹配块在图像发生旋转时会有一定的缺陷。由此本文提出一种新的匹配块:圆形匹配块。圆形是没有方向的,所以如果使用圆形块作为匹配块,即使图形发生旋转,理论上也可以准确地得到匹配结果。圆形匹配块的生成如图3所示。

图3 圆形匹配块的生成

边长为16,具有256个像素点的方形匹配块已经被证明具有较好的匹配效果,所以,此圆形匹配块依然保留256个像素点。以9个像素点的长度为半径画圆,圆的边界处大于1/2的像素点保留,小于1/2的像素点去掉,得到的匹配块即为包含256个像素点的圆形匹配块。

图4(a)为与图2(a)同一位置选取的圆形待匹配块灰度的二维分布图,图4(b)为在图像旋转过后对圆形待匹配块匹配所得块的灰度二维分布,图4(c)为将匹配所得块逆时针旋转一定角度所得块的灰度二维分布图。

图4 圆形匹配块灰度分布

如4图(a),(b)所示,在相邻两帧图像旋转过一定角度后,匹配所得块中的“黑影”确实发生了旋转,但由于圆形匹配块的方向性表现不强,如图4(c)将匹配所得块再逆时针旋转一定角度后,依然可以得到与待匹配块较相似的块。

设圆形匹配块偏移矩阵为block,偏移矩阵block为256行2列的矩阵,每一行为以18×18方块左上角像素点为起点的偏移坐标。用block(i)表示block矩阵中第i行所表示的坐标,则

(4)

式中L为圆形匹配块包含的像素点数,即L=256。同样的,当SAD最小时,(u+v)为当前匹配块的位移向量。

2.3 圆形块匹配光流算法实验

为了检验用圆形匹配块的匹配效果,分别用传统的方形块匹配与圆形块匹配光流算法检测如图5两幅画面的光流情况,其中图5(b)图像相对于图5(a)发生了一定角度的旋转,两幅均为同一相机采集的像素为300×400 的图像。为了方便展示与计算快捷,均采用稀疏光流检测[9],且为了消除光流检测的边界遮挡带来的影响,只取图像中心位置7×7的方阵,共49块匹配块来进行匹配,且两次检测的匹配块偏移的起点均相同。

图5 光流检测图片样例

首先采用方形匹配块进行匹配检测,匹配效果如图6(a),然后采用圆形匹配块进行匹配检测,匹配效果如图6(b)。在图6(a)与图6(b)中,用白色的线条表示所检测到的匹配块的位移向量。观察图6(a)与图6(b)可以发现,在图像发生一定角度旋转后,采用正方形匹配块检测得出的光流信息已经发生了失真的情况,而采用圆形匹配块检测的光流信息则没有出现失真情况。在这里,提出用两次检测所有匹配块匹配的SAD值之差来定量比较匹配效果

图6 光流检测效果

(5)

式中SADD为两次检测所有匹配SAD之差,SAD(i)为对第i块圆形匹配块进行检测的SAD值,SAD2(j)为对第j块方形匹配块进行检测的SAD值,p为选取的匹配块个数,即p=49。

由于SAD值越小,认为搜索到的匹配块与待匹配块越相似,那么可以得出当SADD值小于0时,则可以认为圆形匹配块的匹配效果总体上优于方形匹配块的匹配效果,对以上两次检测计算SADD,得出结果为-1 120。

光流检测经常是一个连续的过程,接下来连续的画面进行基于圆形匹配块与方形匹配块的光流检测,对比其检测效果。截取分辨率为300×400 的30帧的视频进行连续的光流检测,并对两次检测逐帧计算 ,得出结果如图7所示。

图7 连续光流检测SADD对比

如图7,实线表示两次检测的SADD值,虚线表示图像旋转过的角度。图7显示:有73.3%的SADD检测结果小于0;关键的,那些大于0的SADD值除去个别点外几乎都处于0的附近,此时对应的旋转角度也几乎为0;旋转角度超过0.5°的19个点中有16个点的SADD小于0,占84.2%;旋转超过1.5°的15个点中,有14个点的SADD小于0,占93.3 %。因此可以得出结论,当画面发生一定旋转时,圆形匹配块的匹配效果总体上优于方形匹配块的匹配效果。

3 基于圆形块匹配的航向角检测

3.1 光流航向角检测算法

通过第2章得出结论,由于圆形匹配块的方向性较弱,当图像发生旋转时,圆形块的匹配效果优于方形块,所以本小节针对搭载光流传感器的无人机,提出基于圆形块匹配的航向角检测算法。

首先,如图8(a)所示,以原图像第一个像素点为原点,水平像素点方向为x轴,竖直像素点方向为y轴,在原图像中选取两块相距一定距离的圆形待匹配块A和待匹配块B,在原图像中的坐标分别为(xa0,ya0),(xb0,yb0)计算块A与块B的连线与X轴的夹角α0。则有

(6)

图8 圆形匹配块航向角检测示意

其次,如图8(b)在旋转后的图像中搜索块A与块B,得到目标块A1,B1,其坐标分别为(xa1,ya1),(xb1,yb1) ,则A1与B1的连线与x轴的夹角为α1

(7)

则搭载此光流传感器的无人机在这一帧的航向角变化量Δyaw1为

Δyaw1=α1-α0

(8)

连续进行航向角检测,无人机的航向角即为Δyaw的累加

(9)

将式(8)代入式(9)得

(10)

3.2 航向角检测实验验证

拍摄一段对着固定物体在夹角60°内左右摇晃的视频,截取其中5 s,视频帧速率为28.08帧/s,帧宽度为300 P,帧高度为400 P。对此视频的前130帧图像逐帧进行基于圆形块匹配的航向角检测,输出结果如图9所示。

图9 连续视频航向角检测结果

如图9所示,3.1节中提出的基于圆形块匹配的航向角解算算法可以有效地检测出摄像头正对的画面旋转情况,即无人机的航向角。

传统的航向角检测方法中,对于陀螺仪检测,由于重力加速度与无人机z轴共线,所以加速度计无法修正航向角的漂移,致使检测结果会有积分累积误差;对于磁力计检测,虽然可以解决漂移的问题,但由于地球磁场极其微弱,一般情况下只有微弱的0.5 Gs,而一个普通的手机喇叭当相距2 cm时仍会有大约4 Gs的磁场,所以磁力计检测所得的航向角极易受到干扰。图10为分别使用陀螺仪采用四元数法[10]、磁力计、圆形块匹配光流法进行30 s的静态检测结果。

图10 陀螺仪、磁力计、光流所得航向角对比

由图10可以看出,陀螺仪积分所得的航向角在30 s产生了5°左右的漂移,磁力计数据没有漂移但是噪声很大。使用圆形块匹配光流法解算所得的的航向角静态数据既没有产生漂移,也几乎没有受到干扰。因此可以得出结论,采用圆形块匹配航向角解算算法所得的航向角静态数据具有几乎无漂移、不易受干扰的优点。

但是,值得提出的是:实际上上文所提出的圆形块匹配光流航向角解算算法也是采取了累积的方法,在进行长时间动态检测时,同样会产生累积误差。此外,图像处理算法的空间与时间复杂度较高,图像数据采集周期较长,所以,基于光流法的航向角检测数据输出频率以及所需要的硬件资源远远高于陀螺仪与磁力计。因此,基于圆形块匹配光流检测所得的航向角可以用来定期修正航向角,而不可以用来直接进行姿态控制。

4 结束语

本文分析了传统块匹配光流算法的位置解算思路,并发现在检测画面发生旋转时传统正方形块匹配算法存在的缺陷,在此基础上,提出了圆形块匹配光流算法。通过实验计算两次检测所有匹配块匹配的SAD值之差得出:圆形块匹配算法在检测画面发生旋转时相较于方形块匹配算法有较好的检测效果。由于圆形块对方向的不敏感性,本文基于圆形块匹配光流法进一步提出基于圆形块匹配的航向角解算算法。实验证明:此算法可以有效检测所拍摄画面旋转角度的变化,并相较于陀螺仪、磁力计检测具有静态无漂移、不易受环境干扰的优点。

猜你喜欢

航向方形像素点
基于事件触发的船舶航向逻辑切换自适应控制
风浪干扰条件下舰船航向保持非线性控制系统
我的方形创想
基于局部相似性的特征匹配筛选算法
用“国家使命”导引航向——大学之大,重在推进产学研深度融合和科技成果转化
一种X射线图像白点噪声去除算法
消除大班额的正确“航向”
基于canvas的前端数据加密
图像采集过程中基于肤色理论的采集框自动定位
数图形