赞
踩
目录
本项目设计了无人机室内目标跟踪系统的整体架构,包括无人机、计算机视觉模块、通信模块和定位模块。在此基础上,实现了基于Faster R-CNN的目标检测模型和基于OpenCV的CSRT追踪器,以及无人机的飞行控制算法。
基于深度学习的目标检测算法主要分为两大类:一类是基于候选区域的算法,如R-CNN系列;另一类是基于回归的算法,如YOLO和SSD等
图2-1 Faster RCNN基本结构图
2. 基于回归的算法:这类算法将目标检测任务转化为一个回归问题,直接预测目标的位置和类别。YOLO[1](You Only Look Once)算法是该类算法的代表,它将图像划分为多个网格,每个网格预测固定数量的边界框和类别概率,其核心思想是利用整张图作为网络的输入,直接在输出层回归bounding box的位置和bounding box所属的类别,如下图2-2所示:
图2-2 YOLO算法核心思想图
SSD(Single Shot MultiBox Detector)则结合了Faster R-CNN和YOLO的思想,在不同尺度的特征图上进行预测,提高了检测的准确性和速度。
基于计算机视觉目标跟踪是指在视频帧中,对待跟踪目标的区域进行初始化,即确定其位置和尺寸,然后在待跟踪的视频帧中使用特定的方法得到其在每帧中的具体位置和区域大小。主流跟踪算法的关键技术主要是特征提取和分类器的训练,目前绝大多数的跟踪算法主要是针对具体的场景进行改进,整体的跟踪流程如下图:
主流的跟踪方法常采用tracking-by-detection的策略,即使用离线或在线学习训练分类器,以区分当前帧的背景和前景区域,进而检测每帧中的目标。具体来说,该方法首先根据前一帧的跟踪结果,在本帧中初步确定一个位置。然后,通过特定的搜索机制在本帧生成大量的候选区域。接着,利用特征提取方法(如颜色、HOG或深度学习等)对这些候选区域进行特征提取,并通过分类模型对每个候选区域进行分类。选择置信度最高的候选区域作为跟踪目标的最终位置。最后,在线更新分类器。这个过程在每一帧中循环进行,从而实现对视频序列中目标的持续跟踪。
在无人机目标跟踪过程中,目标形变、遮挡、消失后重现以及快速运动等问题尤为常见,这些也是视觉跟踪领域经常面临的挑战。为此,本项目将首先从整体架构的角度出发,介绍针对这些问题的解决方案。本文的系统整体流程图如下图:
在目标跟踪模块的设计中,一个关键步骤是目标检测,即准确地在图像中定位出目标物体的位置。为了实现这一目标,我们采用了基于区域的Faster R-CNN(Faster Region-based Convolutional Network)预训练的目标检测模型。Faster R-CNN是一个高效且准确的目标检测框架,它通过结合区域提议网络(Region Proposal Network,RPN)和卷积神经网络(Convolutional Neural Network,CNN)来实现对目标物体的检测。其网络结构如下图所示:
在本系统中,我们采用了预训练的Faster R-CNN模型。预训练模型意味着该模型已经在大量数据集上进行了训练,并具备了一定的泛化能力。通过利用预训练模型,我们可以快速地适应到新的数据集上,而无需从头开始训练模型,从而大大缩短了开发周期。
本系统将其迁移到我们的目标跟踪任务中。通过微调模型参数以适应无人机追踪系统的需求,我们能够实现对目标物体的准确检测。这种迁移学习的方法不仅提高了模型的性能,还降低了对大量标注数据的依赖。使用Faster RCNN目标在无人机目标追踪上的样例如下图所示:
系统主要利用OpenCV进行图像的读取、处理以及目标的跟踪(Tracking)。在无人机的目标追踪上,采用了OpenCV的CSRT,其中CSRT(Channel and Spatial Reliability Tracker)是OpenCV中的一个目标跟踪器。它利用颜色和梯度特征在空间和通道上进行可靠性估计,从而实现目标物体的稳健跟踪。我们采用CSRT Tracker对动态图像中的目标物体进行跟踪,并获取目标物体的位置信息。根据位置信息来得出目前无人机与目标物体的相对位置,从而控制无人机进行追踪移动。
CSRT的工作原理主要基于相关滤波器的跟踪算法,这是一种基于模板匹配的滤波器,用于在图像中寻找与给定模板最相似的区域。以下是CSRT工作原理的基本介绍:
CSRT的优势在于其能够处理一定程度的遮挡和外观变化,同时保持较高的跟踪精度。然而,由于其需要计算多个子区域的相关滤波器,并不断更新这些滤波器,因此处理速度相对较慢,这也是无人机目标追踪的一个挑战,要求无人机在相对宽阔的场地进行飞行,同时挑战无人机的飞行速度,避免高速飞行导致无人机的目标物体脱离视野。
本算法的核心思想是根据目标在图像中的位置信息,通过计算和分析,生成控制指令,指导无人机进行相应的飞行动作,飞行控制算法流程图如下:
4. 生成控制指令:在无人机飞行控制系统中,控制指令的生成是核心环节之一。无人机通常通过四个主要通道来控制其飞行状态:横滚通道(控制无人机左右倾斜)、俯仰通道(控制无人机前后倾斜)、油门通道(控制无人机的上升和下降速度)以及航向通道(控制无人机的偏航角,即左右转向)。
根据前面算法步骤中确定的飞行方向(dir 和 dir1)以及设定的速度参数,我们可以生成对应的控制指令,从而控制无人机移动
本项目采用Tello无人机,这是一款由睿炽科技开发的多功能智能飞行器
Tello无人机的核心配置包括:
指令 | 参数 | 描述 | 可能的响应 |
command | 无 | 进入SDK命令模式 | ok/error |
takeoff | 无 | 自动起飞至0.5米高度并悬停 | ok |
land | 无 | 自动降落至地面并停止电机 | ok |
streamon | 无 | 打开视频流 | ok |
streamoff | 无 | 关闭视频流 | ok |
rc | a b c d | 设置遥控器的4个通道杆量 | ok/error |
1. 无人机跟踪距离调整
2. 死区响应分析(非目标定位区域定义为死区)
在实验中,无人机对于目标位于上下左右死区的情况也有明确的响应。当目标进入死区(例如,目标位于视觉帧的右部,导致目标部分被遮挡),无人机会自动调整飞行方向,以保持目标在视野中的中心位置。这种调整体现了无人机对目标的持续跟踪能力。
3. 多目标干扰测试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。