余 浩 王天乐 邵建新 张 磊 杨雅雯 王 越
南通大学机械工程学院 江苏南通 226019
随着无人机技术的迅速发展,无人机在越来越多的领域发挥其重要作用。而无论军事领域还是民用领域,使用目标识别跟踪技术的无人机都已屡见不鲜。军用无人机在情报侦察、信息对抗、要员监察等领域发挥了重大作用;民用无人机则在车辆监控、野外救援、摄影和公共安全等领域发挥了重大作用。
我国自主研究无人机系统起步相对较晚,20世纪70年代,才正式开始进行自主开发研制无人机和侦察机,80年代初开始装备空军部队。近年来,我国研制出并投入使用的无人化飞机型号已多达百种,日常生活中无人机也屡见不鲜了。本无人机从相机传感器中获取信息并提取处理,其主要原理包含数字图像处理、传感器技术、概率论与数理统计、数字信号处理等多个领域学科。
目标检测算法主要分为两大类:一种是two-stage目标检测,还有一种是one-stage目标检测。two-stage目标检测因为用到的CNN特征会产生候选区域,所以需要通过卷积神经网络提取对候选区域目标的特征的描述。而one-stage目标检测经过单次检测直接预测出目标的类别与位置。相比two-stage目标检测,one-stage检测精度低但速度快。
YOLO系列是one-stage目标检测的代表算法之一,从YOLOv1到YOLOv2演化过程中,细节和网络结构方面都有很大改善。YOLOv2算法是将物体作为一个回归物体求解,当输入图像时,卷积层提取图像信息,全连接层用来预测图像位置和类别概率值。相比YOLOv1,YOLOv2在检测精度和运行效率上提升10%和12%。YOLOv2改善了最先进的Bag-of-Freebies和Bag-of-Specials方法,使其在单CPU上能够运行。在网络结构方面保留了YOLOv3的head部分,修改了主干网络为CSPDarknet53,同时采用了SPP(空间金字塔池化)的思想来扩大感受视野,PANet作为neck部分。
目标跟踪的方法主要分为经典算法,是基于核相关滤波算法和深度学习的跟踪算法。其中基于核相关滤波算法是衡量两个信号的相似度,相似度越高相关值越大。KCF便是基于相关滤波的一种跟踪算法。KCF全称为Kernel Correlation Filter核相关滤波算法,在2014年由Joao F.Henriques、Rui Caseiro、Pedro Martins和Jorge Batista提出来的。KCF是一种鉴别式追踪方法,这类方法主要追踪给出的样本去训练一个目标检测器,其中运用的循环矩阵和相关滤波是KCF的主要特点。
KCF将给出的样本进行上下左右平移(如图1),每一帧的位置用于训练目标检测器。这种平移可转化为循环矩阵,利用傅里叶空间可对角化的性质将矩阵的运算转化为向量的哈达玛积。这样大大降低了运算量,提高了速度。
图右平移
相关滤波是用来描述两个信号之间的相关性。KCF检测第一帧时,其位置记为patch 0。在后续图像帧上,有patch 1~patch n共计n个patch,那么KCF预测的位置即为与patch 0相关值最高的patch。Patch predict=max(correlation(patch 0,patch k)),1≤k≤n)。
在计算patch 0与patch k(1≤k≤n)的相关值时,转换到了傅里叶域进行。因为两个patch的相关卷积相当于傅里叶域中的元素乘积(时域卷积=频域点积),而乘积计算大大快于卷积运算。
为保证程序能在无人机中实现,需要在MATLAB上仿真运行。首先是猫狗识别,在MATLAB上提取特征制成图像集,运用MATLAB自带YOLOv2算法进行仿真。以下是训练过程(图2)和模型损失曲线(图3):
图2 单CPU训练过程
图3 模型损失曲线
训练完成后,用一张猫图片进行测试(图4),可以看出训练成功。但由于训练图像使用图片较少,提取特征不多,所以损失曲线较为平滑图像识别率不高。接下来是人脸识别的仿真运行,此识别运用PCA和Adaboost迭代算法进行训练,训练完成可识别人脸,至此仿真运行结束。
图4 猫图像测试
首先需要训练自己的卷积神经网络构架,通过采集给定样本相关的视觉信息整理至一个文件夹,即数据集。通过darknet框架实现YOLO的训练过程中,需要使用yolo mark形成符合YOLO格式的标注文件并对每张图片进行标注。在神经网络训练完毕之后,在ROS框架下使用YOLO,需要将ROS与darknet结合,这里我们使用现有ROS包darknet ros。将得到的模型通过darknet框架与摄像头结合进行识别,这时我们便能从预览窗口显示预测目标的位置了。
安装并打开qgroundcontrol软件,查看并校对固件。校准磁罗盘、陀螺仪、加速度计、地平线,完成无人机的初步校准。
准备一个显示器,用HDIM线连接机载电脑与显示器,再连接鼠标与键盘,打开nomachine软件(图5)连接无人机机载电脑,将于基于YOLOv2与KCF的无人机图像识别与实时跟踪程序导入无人机飞控中实现目标。
图5 Nomachine软件界面
在终端的预览窗口中框选(主要运用onMouse函数实现框选)所要跟踪的物体后实现跟踪。KCF算法实现目标跟踪:在ROS主循环中发布跟踪目标的位置及状态标志位发布出去,让跟踪节点进行定位。使用vision cb函数订阅跟踪节点并发布位置偏移,用于生成控制指令进行跟踪。
本文采用当前目标检测领域中准确度和实时性均有较好表现的YOLOv2模型,并在MATLAB上进行仿真模拟。我们在无人机中将图像识别和目标跟踪结合,当框选图像目标时,无人机搭载的KCF目标跟踪算法能实时自动跟踪。我们扩展无人机的检测能力:将人脸识别加入无人机检测,但由于庞大的人脸数据,我们只能训练较少的人像。后续此识别可运用于野外救援、军事勘察、嫌疑人查找、要员安全监察等领域。因此,基于YOLOv2与KCF的无人机图像识别与实时跟踪研究具有较强的理论探索意义和工程应用价值。