基于核相关滤波器算法的无人机目标识别研究
2024-01-09葛维桐郝永平有德义
□ 葛维桐 □ 郝永平 □ 有德义
沈阳理工大学 装备工程学院 沈阳 110159
1 研究背景
随着近年来无人机研究的迅速发展,计算机视觉技术、人工智能技术与智能控制的发展越来越快,在无人机平台目标识别与跟踪功能中的应用越来越广泛。在民用领域,无人机应用于三维地形测绘、野外搜救等方面。在军事领域,无人作战飞机具有强大的自主攻击能力,可以通过成像分析技术实现对敌方目标的精准识别和跟踪,从而实现有效的打击。随着开源硬件热度的上升和固件的更新,无人机产业迎来快速发展的春天[1]。许多研究致力于无人机的自动跟踪,但是能够自主跟踪机动目标的无人机要求很高,研究大多集中在视觉图像处理与控制追踪算法方面,通过研究得到识别更多目标、识别速度更快、识别准确率和实时性更高的算法,解决由于遮挡、光线变化、位姿突变所造成的识别目标丢失等问题[2]。目标的几何变形、旋转和无人机姿态变换等造成的追踪失败问题是研究目标识别的挑战。当前,对如何搭建无人机目标识别追踪的硬件系统研究较少。尽管仿真在一定程度上可以反映算法的可行性,但是将算法应用于实际工程所展现出的效果与虚拟仿真相比,会出现不同的现象[3]。
笔者基于Pixhawk自动驾驶仪和Jeston NX机载计算机,进行硬件通信调试和目标追踪软件开发,使无人机实现对目标的识别与追踪功能,可以给研究人员搭建软硬件系统提供思路与参考。
2 系统硬件设计
2.1 硬件结构
Pixhawk是一款开源自动驾驶仪,原为APM,经过改进传感器和主控芯片,更新PX4固件,并在此基础上进一步发展,最终成为Pixhawk。Pixhawk使用双处理器架构,其中,STM32F765作为主数据处理器,STM32F100作为备用数据处理器,以实现更加高效、稳定的飞行控制。在传感器方面,选用BMI055和ICM-20689。BMI055为数字3轴12位加速度传感器及数字3轴16位±2 000(°)/s陀螺仪,ICM-20689为3轴加速度计及陀螺仪[4]。同时采用MS5611气压计与IST8310磁力计。多传感器获得的数据通过程序融合后,得到更准确的飞控位姿信息,保障无人机在飞行过程中的安全性。将主输出接口与电调的信号接口连接,并将全球定位系统与串行外设接口连接,根据接收机接口发出的信号不同,选择对应信号类型的接收机[5]。选择工作电压为14.8~16.8 V的4S1P型锂电池,经分电板降压后,向自动驾驶仪供电。
2.2 机载计算机
Jeston NX是全世界最小、最领先的嵌入式人工智能超级计算机系统,可以用作独立人工智能和边缘计算工具,包括384个图形处理器、48个张量核,6个264位中央处理器,可以实现高性能的运算和处理能力,从而提供更强大的功能和性能[6]。拥有8 GiByte 128位LPDDR4x内存,搭载双深度学习加速器引擎,配备4个通用串行总线接口,可以将通用串行总线接口与摄像头连接。通用串行总线转串口模块的一端连接Jeston NX的通用串行总线接口,另一端连接自动驾驶仪的TELEM接口,再通过机器人操作系统运行脚本,实现两者的通信。Jeston NX运行Ubuntu操作系统,需要通过命令下载相关安装包,搭建程序的运行环境,并连接显示器,才能正常工作[7]。机载计算机需被携带到天空,显示器的质量与体积大,不方便携带,对此,可以使笔记本计算机和Jeston NX在同一网络中,使用远程控制软件实现地面端控制天空端。笔记本计算机只控制launch文件启动,无人机框选目标识别追踪的过程全部由自动驾驶仪和Jeston NX实现,笔记本计算机不参与运算。航模电池可通过XT60并联线直接向Jeston NX和无人机供电。Jeston NX强大的性能为当下大热的深度学习程序运行及更深层次的目标识别追踪研究提供了硬件基础[8]。
无人机如图1所示。
图1 无人机
3 系统软件设计
3.1 核相关滤波器算法
核相关滤波器算法是一项用于识别目标的追踪技术,通过训练目标检测器来估计下一帧帧中的定位,并将其作为新的检测结果,以此来更新样本,从而实现对总体目标的准确识别[9]。由于采用循环矩阵来收集正负样本,并采用脊回归技术训练目标检测器,因此能够有效将矩阵数据的统计方式转换为阿达马积,即元素的点乘,从而大大减小统计量,提高计算速度,使统计方式能够符合实时性的需要。将线性空间的脊回归映射到非线性空间结构,能够有效解决对偶问题,应对常用约束,而且能够采用循环矩阵傅里叶空间对角化来简单统计,从而提高计算效率,由此大大提高算法的速度[10]。
3.2 总体程序
首先在第t帧中框选出待跟踪的目标,若未得到待跟踪的目标,则机载计算机读取自动驾驶仪的位置信息,更新当前位置并保持悬停。反之,在第t+1帧中在第t帧的目标位置附近采样,用训练出的回归器在采样位置对图像进行相关操作,记录每个采样点的响应。响应最强且满足预先给定阈值条件的采样被认为是第t+1帧中目标的位置,机载计算机获取无人机当前位置信息,计算目标的位置。两个位置通过算法处理后,得出无人机的期望位置。无人机在追踪目标的过程中,会存在目标丢失的现象。设置丢失阈值为10,在追踪目标的过程中存在连续10次目标丢失的现象,认定目标丢失。反之,认定目标存在,同时发送期望位置,完成目标追踪。系统实时追踪流程如图2所示。
图2 系统实时追踪流程
3.3 机器人操作系统节点程序
自动驾驶仪与机载计算机相互传输信息,需要通过相应的节点来实现。使用 C++编程语言编写节点程序,既可以保证程序的快速响应,又可以调用OpenCV库进行图像处理识别目标。机器人操作系统以节点对节点的方式编写程序,这种方式高内聚低耦合,单个节点的功能稳定单一,各个节点之间联系紧密,程序模块的可重用性和可移植性高,程序更加稳定可靠。
由web_cam节点读取摄像头的视频信息,转换为image_raw话题并发布。节点订阅图像话题,得到布尔型目标检测判断值、目标姿态四元数和目标坐标,封装为kcf_tracker话题,发布到目标追踪节点。
kcf_tracker节点在第一帧中框选出带最终目标的位置,通过循环矩阵对基础样本进行行平移,获得更多训练样本。将图像对应的二维矩阵变换为n×1维向量,得到基础样本x1,x2,…,xn-1,xn,利用置换矩阵P对基础样本进行循环移位n次,即可获得当前帧的训练样本矩阵X:
(1)
利用循环矩阵可对角化的性质,使用离散傅里叶矩阵对样本集合进行对角化,有:
(2)
在跟踪过程中,需要对目标区域图像提取适当的特征表达和目标描述,以达到有效区分目标和背景的目的。核相关滤波器算法使用方向梯度直方图作为目标特征,这一特征可以有效区分目标轮廓边缘与背景的灰度值变化。在提取过程中,先对目标图像进行灰度化和归一化处理,以减小光照变化和噪声带来的影响,再计算图像中各个像素点(a,b)的梯度值:
G1(a,b)=I(a+1,b)-I(a-1,b)
(3)
G2(a,b)=I(a,b+1)-I(a,b-1)
(4)
式中:G1(a,b)、G2(a,b)分别为像素点(a,b)在水平和竖直方向的梯度值;I(a,b)为像素点(a,b)对应的灰度值。
梯度幅值G(a,b)和梯度方向β(a,b)分别为:
(5)
β(a,b)=arctan[G1(a,b)/G2(a,b)]
(6)
最后统计梯度直方图,得到目标图像最终的方向梯度直方图特征。
设训练样本为xi,回归标签为yi,使用最小二乘法训练分类器f(x)=ωTx,ω为分类器权重因数,使训练样本xi与回归标签yi之间平均误差最小:
(7)
式中:λ为正则项因数。
为提高分类器的泛化能力,防止分类器出现过拟合现象,加入正则项λ‖ω‖2控制过拟合。令ω的偏导数为0,ω的表达式为:
ω=(XTX+λI)-1XTy
(8)
式中:I为单位矩阵;y为各样本回归标签yi组成的列向量。
对式(8)转换到复数域:
ω=(XHX+λI)-1XHy
(9)
将经过傅里叶变换后的样本矩阵X代入式(9),得到频域中的计算式:
(10)
由于目标跟踪为非线性问题,因此将x通过映射函数φ(x)映射到高维空间,可使非线性问题变为线性问题,分类器权重因数ω可表示为样本映射后的线性组合:
ω=∑[αiφ(xi)]
(11)
式中:αi为线性组合因数。
(2)滤饼外在水分为25.80%,脱水率达82.98%,滤饼中所含水量仅是入料水量的17.02%。这与使用80网目单丝滤布有关,因为滤布的孔隙较大,过滤阻力减小,所以该厂还将压滤机入料压力控制在0.45 MPa水平。
将式(11)代入分类器,得到回归函数:
(12)
k(xi,xj)=kxixj=φT(xi)φ(xj)
(13)
式中:xi、xj分别为当前帧和下一帧样本。
核相关滤波器算法采用高斯核函数,将k(xi,xj)组合成n×n维的核函数K,此时K满足循环矩阵特性。将式(12)代入式(7),可导出由αi组成的因数向量α的表达式:
α=(K+λI)-1y
(14)
对式(14)进行傅里叶变换,得:
(15)
在检测阶段,需要计算测试样本序列与在线分类器的相关响应,以确定当前帧的目标位置。设x为当前帧训练样本序列,z为下一帧测试样本序列,用kxz表示x和z的核函数,在频域中对响应进行求解,得:
(16)
object_tracking节点计算无人机的期望位置,并做出决策,发送给底层控制模块。此节点订阅了无人机的位置信息和目标的位置信息。得到目标坐标后,将坐标转换至原点位于无人机质心,0°为X轴正方向,90°为Y轴正方向,上方为Z轴正方向的坐标系中。将需要的坐标转换至同一坐标系后,求解无人机的期望位置。机器人操作系统节点图如图3所示。
图3 机器人操作系统节点图
4 识别追踪测试
4.1 摄像头标定
首先打开终端,输入指令roslaunch prometheus_de tection web_cam0.launch,启动摄像头节点。等候摄像头启动后,启动摄像头校准程序。将黑白棋盘格的标准板移动,以收集数据。当X、Y、Size、Skew的进度条变为绿灯时,calibration指示灯亮起,表明目前已有充足的信息可以用于摄像头的校准。按下calibration按键后,等候1 min,校准界面会变为灰色。数据采集界面如图4所示,摄像头标定结果界面如图5所示。
图4 数据采集界面
图5 摄像头标定结果界面
4.2 识别测试
启动程序后,输入指令roslaunch prometheus_detection KCF.launch打开窗口,对目标进行框选,查看识别结果。确认识别目标后,使用rostopic list指令查看已发布话题,包括目标名称、识别状态、目标位置等消息。目标框选识别界面如图6所示,话题消息界面如图7所示。
图6 目标框选识别界面
图7 话题消息界面
4.3 无人机目标识别测试
无人机目标识别测试流程如下:
(1) 启动无人机,遥控器切换至定点模式,使无人机起飞到一定高度,并保持悬停;
(2) 笔记本计算机通过软件远程控制机载计算机启动launch文件,确保机载计算机不断向无人机发送控制量;
(3) 通过遥控器将无人机切换到离线模式;
(4) 手动对目标进行框选,无人机首次识别目标发生偏航,对坐标系进行校正,追踪目标;
(5) 取消框选,追踪结束,降落。
4.4 数据分析
目标识别位置变化如图8所示,实际轨迹如图9所示。在目标前后左右移动距离较小、上下移动距离较大的情况下,无人机在向目标追踪的过程中前后左右方向的移动并不剧烈,上下移动变化则较为明显。机载计算机发出的期望位置曲线与无人时实际位置曲线有较好的拟合,说明无人机确实按照机载计算机计算出的目标位置向识别目标飞去。
图8 目标识别位置变化
图9 目标识别实际轨迹
5 结束语
笔者基于核相关滤波器算法,对无人机目标识别进行研究。经过飞行测试及试验结果分析,所搭建的目标追踪系统可行,能使无人机自主识别追踪目标,并且具有良好的识别效果与追踪效果。通过研究证明核相关滤波器算法搭载到无人机上是完全可行的,为后续核相关滤波器算法搭载至更多设备的研究提供了参考。