磁吸式飞行器自主降落方法研究及实现
2019-10-24任丽莉杨惠策
任丽莉,康 冰,于 海,杨惠策,于 彤
(1.长春师范大学高性能计算中心,吉林 长春 130032;2.吉林大学通信工程学院,吉林 长春 130022)
在现代的科技、军事与生活中,海陆空的交互频繁,无人机凭借其能够灵活处理复杂工作情况的特性,已经成为航空学术研究中新的前沿和热点。例如,无人机在目标搜寻、高空拍摄、轨迹追踪等任务方面发挥着重要作用。但是由于数据传输、能源储备等因素的限制,无人机需要实时与地面进行交互并能够在特定装置上进行数据传送和能量补给。因此,为了更好地发挥无人机灵便精巧的特性,让无人机在执行工作任务时,能够跟踪识别特定标志或物体,并实现稳定降落显得尤为重要。高翔[1]设计了一套基于机载嵌入式平台的无人机视觉辅助自主降落方案,该方案能够实现无人机自主跟踪、降落在移动平台上的功能,但由于降落时摄像头对图像处理过程复杂,远近变焦处理困难,使得降落稳定性较差,存在一定误差,可能会出现脱离平台的现象。为了弥补旋翼飞行器降落图像处理方面的问题,本文阐述了磁吸式飞行器自主降落的方法。
1 颜色识别算法
本文采用如图1的整体流程框架来完成目标检测与跟踪。大体上的目标检测与跟踪分为视频流的单帧化、图像的预处理、图像的目标检测、图像的目标跟踪。
1.1 图像预处理
1.1.1 图像的等比例尺寸变换
旋翼的目标跟踪的实质是图像识别以及无人机的反馈控制,为了控制的实时性,需要对图像进行有效的预处理,使图像能够被较为准确的识别和处理。进行图像放缩的主流方法是图像金字塔方法,它是图像多尺度分析的有效方法。
常见的两种图像金字塔处理方法中,用于图像重建的图像金字塔方法称为拉普拉斯图像金字塔[2]。而用于等比例缩小的方法称为高斯金字塔方法。针对于本文情况,选择高斯图像金字塔[3],从而方便图形处理器的处理。高斯金字塔算法流程图如图2所示,本文直接引用OpenCV的C++库函数pyrDown(src,dst,Size(src.cols/2,src.rows/2)),其中src是要处理的原图像,dst是要处理的目标图像,而第三个参数的作用是将图像的行数和列数缩小为原来的一半。在机载图像处理器中,图像尺寸的缩小变换也进一步验证了金字塔图像尺寸等比例变换的有效性。
图1 目标跟踪整体步骤
图2 高斯金字塔算法流程图
图3 RGB空间图像转HSV空间图像实例
1.1.2 图像颜色空间转换
由于图像跟踪中,目标所处环境的光线明暗以及所使用的特征识别的标志物本身颜色深浅都会对识别效果产生影响,因此,我们选择将图像空间进行转换。对于颜色空间的转换,OpenCV提供了一个成熟的函数cvtColor(img,imgHSV,COLOR_BGR2HSV)[4],其中img表示原RGB空间图像,而imgHSV是转化后的HSV空间图像,第三个参数是一个OpenCV常数。图3是本文对一张图片处理时,其RGB空间的图像和HSV空间的图像对比。
1.1.3 图像二值化处理
图像二值化处理[5],每一行每一列的像素点是1×3矩阵,会拖慢处理速度。因此需要将图像的数据量进行缩减。在像素级别的图像数据量缩减上,能够采取的主要方法是降低通道数量,本文采用了二值化的方法进行数据量缩减处理。
将RGB图像二值化的方法是将每一个像素点中的3个子序列合并成为1个子序列,并且,在这个子序列中原本具备彩色效果的图像将只有黑白两种效果,该子列的取值为0~255,用来表示图像二值化之后的灰度值。图像二值化公式为:
(1)
其中,bl为最小灰度值,bu为最大灰度值。
在本文中,对HSV图像进行二值化,这样有利于将具有某种特质特征的目标使用二值化的方法提取出来。图4显示了OpenCV框架下的二值化实例,该实例显示的是将背景中的黑色中心位置突出显示,显示为二值化之后的白色。
图4 图像二值化之后突出显示原图像黑色中心点区域
1.2 基于颜色特征的运动目标检测
本文选用了目标特征检测方法实现目标跟踪。由于颜色特征较为直接,所以采用基于颜色特征的识别方式,即从每帧图像当中识别出预先设定的颜色。在OpenCV框架下,识别颜色特征的基本思路如图5所示,基于此进行了图像颜色特征的检测与识别[6]。由于二值化之后,图像基本不包含亮度和饱和度信息,只包含颜色信息,因此,对每一帧图像进行遍历。首先从每一行开始,从这一行的第一列开始,遍历直至最后一列,从而判断该列元素是否为二值化之后的白色部分。之所以可以通过判断白色突出区域来判断是否已经寻找到目标,是因为本文的图像二值化不是对RGB图像进行二值化,而是对HSV空间图像进行二值化,这样可以将所有色相阈值在检测范围内的元素全部二值化为白色区域,而没有在此阈值范围内的全部二值化为黑色区域。遍历完当前行之后,标记起始行数的位置以及起始列数的位置,然后进行下一轮遍历。在下一轮遍历之后,倘若发现目标像素的列数比已知列数小,则对刚才记录的列数进行更新,循环直至寻找到最后几行,记录最后的目标所在行数和列数。进行这些遍历之后,实质上,已经找到了目标的最小矩形边界,以及这个边界的长和宽。计算出这个矩形中心,即为目标中心。最后,为了显而易见,使用OpenCV自带的画边框函数,画一个以目标中心为中心,并且包含所有目标区域的其他颜色的矩形框,该矩形框实际上表示的是我们所要检测的运动目标的像素点所在区域。这就相当于可以通过计算矩形的中心得到物体的质心,从而确定了物体在相机视野中的最大轮廓。再结合HSV的阈值,即可对运动目标器进行检测,图像中的颜色检测与识别就完成了。
1.3 基于颜色特征的MeanShift目标跟踪算法
视频流在每一个帧所在的周期内,就是一张待处理的图片。所不同的是,除了要将思路转化为针对每一帧的处理之外,还需要使用更加有效的算法进行目标跟踪,并防止目标丢失,同时还要在每一帧图像中提取目标的相对位置信息,并将此作为四旋翼飞行控制的输入信息。
1.3.1 视频流中目标跟踪的总体流程
(1)读取视频流文件,获取有效图像信息。在视频实时处理的过程中,为了避免造成视频帧的遗漏,必须要首先确保视频流文件的打开是否正确,即是否有视频帧可以进行有效处理。(2)图像视频帧预处理。为了保证视频流跟踪的准确性,必须要通过颜色空间转换,将原来比较复杂的RGB颜色空间中的图像转换为HSV空间中的图像进行处理。(3)去除图像噪声。采用膨胀和腐蚀操作来填充物体内的细微空缺像素并平滑处理图像的边界,从而为目标跟踪创造良好的条件,避免图像跟踪中的算法误判。(4)图像轮廓检测与选取,由于图像轮廓的检测具有较快的算法运行速度,因此可以检测全部轮廓,在排除外界干扰的情况下,图像的最内侧轮廓即为目标物体的轮廓。(5)根据颜色特征选取需要研究和处理的图像的部分区域,根据(4)中的分析可知,为了减少轮廓检测的误判,需要确定目标物体是否具有特定的轮廓和颜色特征。(6)使用目标跟踪算法进行目标跟踪,为了保证处理的实时性,本文选用MeanShift算法进行目标跟踪。
图5 基于颜色特征的目标检测程序流程图
1.3.2 MeanShift跟踪算法设计
MeanShift算法[7]即为均值飘移算法,其本身的运行依靠对偏移值的迭代进行,也就是首先计算当前位置区域的平均偏移值,然后将当前点作为新的起点,迭加移动相应偏移值直至移动到目标位置。
MeanShift算法的数学定义源于MeanShift向量。MeanShift向量的基本定义形式为:
(2)
对于给定的多维空间的n个样本点xi,x=1,2,…,n,当发生偏移时,将会有k个样本归为球Sh所在的区域,球Sh定义了一个高维区域,该高维区域的表达式为:
(3)
在上述的推导过程中,仅仅是在宏观的概率分析中做的推导,这就忽视了样本点之间距离的影响,因此,引入核函数进行进一步的推理。常见的核函数包括单调核函数:
(4)
和高斯核函数:
(5)
引入核函数之后MeanShift算法表达形式为:
(6)
其中,w(xi)是采样点的权重系数。
以上是对MeanShift算法中相关向量进行的数学推导,但是,当MeanShift算法应用到跟踪领域时,需要建立一个跟踪模型来对整体目标跟踪过程进行描述。
首先,在起始帧,通过上述基于颜色特征的目标检测方法,得到了需要处理的感兴趣区域,将此区域进行几何量化,转化为一个长方形区域。假设该区域的中心为x0,对于整体图像的n个像素点中的m个特征点的特征密度估计为:
(7)
运动目标在第二帧及之后每帧中出现的区域中心假设为y0,则此时包含特征点区域的特征密度估计为:
(8)
对于两次的候选区域,以第一帧中所得到的相似率为基准,使用巴氏距离系数作为近似函数,计算第二帧及以后帧的相似性:
(9)
f(y)的值是一个概率分布值,值越大,表明前后两帧图像的相似性越接近,两个先后模型的相似程度越高。接下来需要对目标的位置进行确认,这时计算MeanShift向量的变化值,不断迭代,直至变化值小于规定阈值,则变化值最小的位置即为目标的位置。式(10)反映了这种迭代计算的过程。
(10)
本文所设计的基于颜色特征的目标跟踪算法的程序流程如图6所示。
2 磁吸式捕获旋翼飞行器实验装置
2.1 捕获装置结构介绍
在跟踪结束后,旋翼飞行器进行降落,为了弥补降落时出现的图像处理困难等问题,设计了一个旋翼捕获装置,该装置下部为一个矩形的硬质绝缘板,板的中间放置超声波模块,四个角装有四个升降平台,该升降平台通过步进电机控制进行升起降落。四个升降平台支撑上部的一个矩形硬质板并与硬质板固定连接,上部的硬质板中心处挖空,正对下方板上放置的超声波模块。上板根据所要捕获旋翼机臂的个数,挖出相应数量的圆孔,用于放置电磁铁,并将旋翼所能够识别的标志粘贴在上方板上。
2.2 磁吸式自主升降捕获装置工作流程
放置在降落平台上中间的一个超声波测距模块实时监测上方旋翼相对平台的距离,当监测到旋翼距平台距离为20~25 cm时,向最小控制系统STM32单片机的管脚发送低电平信号。
图6 基于颜色特征的目标跟踪算法程序流程图
图7 磁吸式自主升降捕获装置工作流程图
单片机实时监测管脚电平的变化情况,当接收到由超声波模块发送的低电平信号时,STM32单片机对电机驱动发送上升指令,使平台上升。同时,与继电器相连接的单片机管脚会由开始的下拉状态变为上拉状态,继电器触点闭合,进而电源会给电磁铁阵列供电,使电磁铁带有磁性。
随着降落平台高度的增加,当降落平台与旋翼机臂下磁性圆盘的距离足够小时,平台会瞬间对旋翼进行吸引,使其降落并固定到平台上,完成对旋翼飞行器的捕获。
捕获完成稳定后,单片机发送下降命令给电机驱动,使电机缓慢竖直下降,当降落到初始的最低高度后,与继电器相连的单片机管脚再次下拉,使触点断开,平台消除磁性,此时,可以从平台上取回旋翼,捕获过程结束。全过程流程如图7所示。
3 测试与分析
为了验证本文所述算法以及旋翼捕获平台的可靠性和稳定性,在室外的无人广场区进行试验工作,场地大小为40 m×20 m。将升降平台装在小推车上,移动平台上贴有供旋翼识别的颜色标志,让旋翼在不同高度、不同速度条件下测试降落平台的捕获精度和捕获时间。将升降平台上板中间设为参考点,测量旋翼中心偏离上板中心的距离作为偏离距离,当旋翼距离平台20 cm时开始计时。
表1 不同条件的测试结果
4 结论
本文利用视频图像处理以及Meanshift算法进行目标跟踪,让旋翼飞行器对目标进行识别,降落时,用磁吸式平台对旋翼进行捕获,使旋翼能够吸附在平台上,达到稳定降落的目的。实验结果表明,该降落装置能够使旋翼稳定地停在平台上,实现稳定安全降落。