APP下载

基于单目视觉的四旋翼飞行器目标跟踪算法研究

2018-06-22张立国李晓松燕山大学河北省测试计量技术与仪器重点实验室河北秦皇岛066004河北省自动化研究所河北石家庄050000

计量学报 2018年3期
关键词:卡尔曼滤波旋翼轮廓

张立国, 李晓松, 肖 磊, 金 梅, 董 浩(. 燕山大学 河北省测试计量技术与仪器重点实验室, 河北 秦皇岛 066004;. 河北省自动化研究所, 河北 石家庄 050000)

1 引 言

无人飞行器(unmanned aerial vehicle,UAV)是由集成惯性导航系统(inertial navigation system,INS)、全球定位系统(global position system,GPS)、图像采集系统、控制器等组成的复杂系统。四旋翼飞行器结构简单、机动能力强、可垂直升降,特别适合对室内、隐蔽环境中移动目标的监视、侦查、跟踪。国内外已经就无人机对移动目标的跟踪展开了大量的研究并提出多种跟踪方法[1],包括Meanshift算法[2]、Camshift算法[3]、光流跟踪算法[4]、HOG跟踪算法[5]、TLD跟踪算法[6]等。吴凤和采用灰度阈值法进行图像分割,实现具有单像素边缘的图像轮廓提取[7];黄桂平对单目视觉测量方法进行研究、分析[8];吕强利用四旋翼实现了室内路径识别与路径跟踪[9];Pestana采用TLD算法实现了人物识别和跟踪[10]。本文提出一种新的跟踪策略,目的是克服跟踪过程中跟踪目标颜色与周围环境颜色相近时的干扰情况。

本文侧重实现对视频中移动单目标的跟踪,实验中使用的无人机为Parrot生产的AR.drone 2.0。该四旋翼无人机搭载前置单目摄像头,地面站通过WIFI连接AR.drone,并采用跨平台计算机视觉库(open source computer vision library,OpenCV)结合交互多模型卡尔曼滤波[11]算法进行视频中移动目标位置的预测与修正,实现对移动目标的跟踪[12~15]。

2 视频中移动目标信息估计

2.1 卡尔曼滤波运动目标跟踪

卡尔曼滤波算法引入状态空间的概念,可以对当前、过去状态进行估计,特别适用于变量多、时变系统,是线性系统中最常用的一种最优估计算法,可以较精确地估计视频中目标的位置与速度信息。

依据卡尔曼滤波原理,首先引入一个离散时间过程控制系统,该系统可用线性差分方程表示为:

xk+1=Axk+Buk+wk

(1)

zk=Hxk+vk

(2)

式中:A,B,H分别为系统的状态转移矩阵、输入增益矩阵、观测矩阵;xk为k时刻的系统状态;uk为k时刻对系统的控制量;wk,vk分别为系统噪声、观测噪声;zk为k时刻的测量值。

系统噪声和观测噪声满足:

E(wk)=0, cov(wk,wi)=Qkδki

(3)

E(vk)=0, cov(vk,vi)=Rkδki

(4)

cov(wk,vi)=0

(5)

式中:cov为协方差;E为期望;Qk为系统噪声wk的白噪声矩阵;Rk为观测噪声vk的白噪声矩阵;i为不同于k的其它时刻;δki表示Kronecher函数。式(3)和式(4)中,白噪声矩阵Q和R由协方差组成,因此也称其为协方差矩阵。由式(5)可知,wk,vk是相互独立的。

卡尔曼滤波算法大体上分为2个阶段,即预测阶段和修正阶段。预测当前时刻的系统状态,并结合当前系统的观测值预测当前时刻的真实状态。卡尔曼滤波递推公式如下。

状态预测方程:

(6)

误差协方差预测:

Pk|k-1=APk-1AT+Q

(7)

卡尔曼增益计算:

Kk=Pk|k-1HT(HPk|k-1HT+R)-1

(8)

误差协方差修正:

Pk=(I-KkH)Pk|k-1

(9)

状态估计方程:

(10)

当所研究的目标为非机动目标时,状态方程可以简化为:

(11)

将式(7)~式(11)组合成方程组,即为目标运动状态的卡尔曼滤波方程。

利用AR.drone四旋翼飞行器自带的单目摄像头采集得到的视频序列,相邻帧时间间隔为ΔT,以视频图像中移动目标在X,Y轴的位置和速度作为状态变量,以图像中移动目标的位置为观测值进行目标信息的估计,卡尔曼滤波的初值和噪声参数等是经过反复试验后选定的,适合跟踪做匀速运动的物体的状态。转移矩阵、观测矩阵、协方差矩阵设置为:

(12)

(13)

(14)

(15)

常规的卡尔曼滤波器使用线性随机差分方程来描述离散时间过程的状态变量;对于线性高斯模型卡尔曼滤波器通过有限维统计量来精确计算后验分布;当应用系统不是线性系统时可以采用扩展卡尔曼滤波器或者无迹卡尔曼滤波器。在卡尔曼滤波算法中的状态转移方程和观测方程的被估计量都是随时间变化的,仅采用基本的卡尔曼滤波算法往往不能够完全覆盖目标的所有运动状态;交互多模型(IMM)算法使用两个或者更多的模型描述工作过程的可能状态,并通过加权融合进行系统的状态估计;采用合适的四旋翼解算算法可以提高解算精度;采用交互滤波器进行姿态解算能够同时降低低频和高频干扰;梯度下降法需要对多向量函数求导,利用梯度下降法可以求得一组姿态四元数,但是梯度下降法的步长非动态,当步长过大时会导致估计不准确,特别是当高速运动时,容易导致延迟较大、姿态解算失败;基于反步法的四旋翼轨迹跟踪,将四旋翼控制系统分为前后、左右、上下、偏航4个子系统,但是不能消除由于模型参数不确定性带来的影响,飞行质量、转动惯量与飞行器所受的干扰往往是不确定的。

IMM算法可以根据实际的运动状况实现模型间的转换,因此本文采用IMM算法作为目标跟踪的算法。

假定目标有r种运动状态,对应着r个运动模型,则可以由目标状态方程表示的第j个模型为:

xj(k+1)=Fjxj(k)+Gj(k)wj(k)

(16)

式中:Gj(k)为驱动噪声矩阵;wj(k)为均值为零、协方差矩阵为Fj的白噪声序列。

测量方程见式(2)所示。

对无迹卡尔曼滤波算法(UKF)和扩展卡尔曼滤波算法(EKF)分别采用交互多模型卡尔曼滤波算法进行分析,2个模型分别为IMM-UKF和IMM-EKF。在非线性条件下对两种算法的滤波效果进行仿真分析。

假如状态方程为:

(17)

观测方程为:

(18)

图1中的仿真结果是IMM-UKF和IMM-EKF在各个时刻对真实状态的估计结果,图2对比了各个时刻的IMM-UKF和IMM-EKF估计偏差结果。从图中结果可以看出IMM-UKF的估计结果比IMM-EKF估计结果要精确。

结合图1和图2的仿真结果可知,在非线性条件的大多数情况下,IMM-UKF的滤波误差比IMM-EKF的滤波误差要小,所以在状态估计的准确性上IMM-UKF要明显优于IMM-EKF,IMM-UKF具有更高的滤波精度。采用基于交互多模型的卡尔曼滤波算法,不仅对做匀速直线运动和圆周运动的目标可实现跟踪,而且当运动模型发生变化时仍能够稳定地跟踪。

图1 2种状态估计结果对比

图2 各个时刻估计偏差对比

2.2 颜色空间选择

计算机视觉最常用的颜色空间模型有RGB,YUV,HSV,HSI等模型。其中R,G,B为红、绿、蓝3个通道颜色的值。

在目标跟踪过程中,若背景亮度随光照发生变化时,如出现目标不跟随的现象,本质上是因为RGB对光照反映敏感的原因。HSV在计算机视觉、目标跟踪系统中经常被使用。其中H、S、V为色调(hue)、饱和度(saturation)、明亮值(value)的值。HSV颜色空间的H的取值范围是0°~360°,其中红色是0°,绿色是120°,蓝色是240°;饱和度S的取值范围是0~1,值越大色彩越纯,值越低色彩逐渐变灰;明亮值V的取值范围是0~1,值越大色彩越亮。RGB模型到HSV模型的转换公式为:

V=max(R,G,B)

(19)

(20)

(21)

如果H<0°,H=H+360°,将色度转换到0°~360°之内。利用OpenCV的CV_BGR2HSV_FULL颜色转换模型将RGB色彩空间转换到HSV色彩空间时,为了显示深度图像,将其规范化为像素值是0~255范围的伪灰度图像。

2.3 目标识别

为了能够使目标能够从背景中提取出来,需要对图像进行去噪,经过OpenCV形态学变换的闭运算消除小型黑洞连接一些缺口,使物体轮廓光滑达到去噪的效果。运动目标物体的检测算法有基于特征的算法、基于光流的算法、基于轮廓的算法,其中基于特征算法的特征提取和匹配过程中计算量较大;基于光流的算法运算量较大,无法保证实时性。本文采用基于目标轮廓的算法。通过OpenCV的cvFindContours检索所有目标区域二图像的轮廓并分为两层,顶层为各部分的外部轮廓,第二层为空洞的边界。

在cvFindContours中Image的输入图像为8位的单通道二值图像,非零像素作为1处理,零像素保持不变。Storage用来存储查找到的轮廓;first_contour指向第一个外部轮廓的地址;header_size用于比较序列的尺寸。Mode检索决定了检索的轮廓的方式。检索方式共有4种,本文选择的是CV_RETR_CCOMP,检索所有的轮廓,并将他们组织为两层。顶层为所有物体的外边界,底层是孔的外部边界。Method有5个值,其中本文用到的V_CHAIN_APPROX_SIMPLE:压缩水平的、垂直的和斜的部分,只保留最后终点。轮廓可以使用圆形或者矩形,本文使用矩形来描述检测的目标轮廓。

采用自动阈值的方法对图像的灰度进行相应分析,选定一个初始值并结合算法不断调整这个估计值,直到找到合适值为止。

步骤如下:选取跟踪目标的一个灰度值作为最初阈值D0;根据阈值D0把图像分割成2个区域,并计算两个区域灰度均值μ1和μ2,进而计算出新的阈值Di+1=0.5×(μ1+μ2);反复计算直到Di+1和Di的差值小于某个给定值。

比较感兴趣区域中各个轮廓的面积大小,找到最大轮廓,然后对移动目标进行分析,计算区域的质心(x0,y0),在得到质心值的基础上通过卡尔曼滤波对其进行修正,即利用对当前时刻的先验估计及当前实际观测值的分析,得到当前时刻状态的后验估计;第二步,进行目标运动状态的预测,指的是用当前状态及误差协方差推算出下一时刻状态的先验估计;在完成修正和预测之后,使用后验估计进行预测下一时刻的先验估计。重复进行如上的步骤,直到收敛为止。质心坐标计算公式为:

(22)

其中零阶矩为:

(23)

式中:I(x,y)为坐标(x,y)的像素值。

一阶矩为:

(24)

(25)

2.4 飞行速度与方向设置

AR.drone的最大飞行速度5 m/s,最大飞行速度下可飞行13 min,其中前置摄像头的分辨力为640×320像素,可以获取清晰的视频图像。

本文采用跟随移动且颜色为红色的物体,图3为无人机的机身坐标系。

图3 AR.drone机身坐标系

为了保持无人机能够稳定、持续地跟踪,设置沿x轴方向的速度为0.1 m/s,同时计算四旋翼飞机的角速度。设置角速度为ω,ω的大小由围绕它做匀速圆周运动的移动物体在图像中的位置决定,如图4所示。

图4 跟踪移动目标预测位置与视频中心差Δy

角速度ω为:

(26)

式中:w为跟踪图像的宽度;Δy为跟踪目标变化的水平距离。

3 实验结果与分析

图5展示的是跟踪目标去噪前后HSV颜色空间的图像,其中图5(a)为去噪前的图像,图5(b)为去噪后的图像。表1给出了多种滤波算法滤波时间的对比结果。

图5 去噪前后的图像

表1 算法滤波时间统计 s

粒子滤波在计算过程中需要将粒子进行迭代计算,重采样后加权得到结果。因此粒子滤波的计算时间明显大于卡尔曼滤波。卡尔曼滤波算法以及卡尔曼滤波算法的改进算法扩展卡尔曼、无迹卡尔曼均能在较短时间内实现滤波,结合表1可以看出本文采用的交互卡尔曼滤波的滤波时间明显快于粒子滤波,同卡尔曼滤波的改进算法的滤波时间相当。满足实时性、快速性跟踪目标的要求。

目标跟踪中,Camshift是利用颜色信息对移动目标进行跟踪的算法,图6展示的是使用该算法跟踪目标的效果。图7是采用本文算法跟踪移动目标的效果。

图6 Camshift算法跟踪移动目标

图7 本文算法跟踪移动目标

比较采用Camshift算法同本文算法跟踪移动目标的效果,可以看出:在第638,1150,1255帧,由于背景颜色与跟踪目标颜色比较接近,采用的Camshift算法出现了失跟现象。两种算法的追踪成功率比较如表2所示。

采用的OpenCV同交互多模型卡尔曼滤波结合的跟踪算法,有效地检测到了移动目标的轮廓并利用卡尔曼滤波对移动目标的移动状态进行估计,当系统处于非线性、非高斯性时能够有效地保证跟踪的准确性、实时性和稳定性,即使是在受到背景颜色干扰的情况下仍能够持续、稳定地对移动目标进行跟踪,从而较好地保持了跟踪的鲁棒性与实时性。

表2 算法在背景颜色相近下的追踪成功率

4 结 论

常用的Camshift算法在背景光照发生变化或者跟踪目标与背景颜色接近时无法保证跟踪的鲁棒性,容易出现跟踪目标丢失的现象。本文提出了采用OpenCV对四旋翼AR.drone采集得到的视频图像进行空间变换、去噪,实现了对移动目标的识别。利用交互多模型卡尔曼对移动目标位置进行预测可以缩短图像处理范围的特点,设计了相应的四旋翼跟随移动目标的跟踪算法。通过地面站控制平台控制AR.drone实现了对移动目标的跟踪,而且满足了快速、稳健跟踪的要求,避免了由于背景颜色、周围颜色与跟踪目标颜色相近导致出现的跟踪失败现象。下一步将研究在出现遮挡、干扰的情况下如何实现四旋翼飞行器对移动目标的稳健、快速跟踪。

[参考文献]

[1] 李培华. 序列图像中运动目标跟踪方法[M]. 北京:科学出版社, 2010.

[2] Comaniciu D, Ramesh V, Meer P. Real-time tracking of non-rigid objects using Mean Shift[C]//Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition,New York:IEEE Press, 2000, 2:142-149.

[3] Nouar O D, Ali G, Raphael C. Improved object tracking with Camshift algorithm[C]//Proceedings of the IEEE International Conference on Acoustics,Speech,and Signal Processing. Toulouse,France:IEEE,2006.2(II):657-660.

[4] Baker S, Matthews I. Lucas-Kanade 20 Years On:A Unifying Framework[J].InternationalJournalofComputerVision,2004,56(3):221-255.

[5] Dalal N,Triggs B. Histograms of oriented gradients forhuman detection[J].IEEEConferenceonComputerVision&PatternRecognition, 2005, 1(12):886-893.

[6] Kalal Z, Mikolajczyk K, Matas J. Tracking learningdetection[J].PatternAnalysisandMachineIntelligence,IEEETransactionson, 2012, 34(7):1409-1422.

[7] 吴风和. 基于计算机视觉测量技术的图像轮廓提取方法研究[J]. 计量学报, 2007, 28(1):18-22.

[8] 黄桂平, 李广云, 王保丰. 单目视觉测量技术研究[J]. 计量学报, 2004, 25(4):314-317.

[9] 吕强, 倪佩佩, 刘峰. 基于视觉的四旋翼飞行器路径跟踪[J]. 四川兵工学报, 2014, 35(11):106-109.

[10] Pestana J, Sanchez-Lopez J, Saripalli S,etal. Computer vision based general object following for GPS-denied multirotor unmanned vehicles[C]// American Control Conference (ACC). Oregon,USA:IEEE,2014.

[11] Hajiyev C, Soken H E. Robust Adaptive Kalman Filter for estimation of UAV dynamics in the presence of sensor/actuator faults[J].AerospaceScienceandTechnology, 2013, 28(1):376-383.

[12] 权太范. 目标跟踪新理论[M]. 北京:国防工业出版社, 2009.

[13] 黄小平. 卡尔曼滤波原理及其应用[M]. 北京:电子工业出版社, 2015.

[14] 田源,王洪涛. 基于量子核聚类算法的图像边缘特征提取研[J]. 计量学报,2016, 37(6): 582-586.

[15] 仝晓龙, 窦腾飞, 刘艳红. 运动目标跟踪技术综述[J]. 科技创新与应用, 2014,(18):18-20.

猜你喜欢

卡尔曼滤波旋翼轮廓
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
基于STM32的四旋翼飞行器的设计
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于有色噪声的改进卡尔曼滤波方法
高速公路主动发光轮廓标应用方案设计探讨