基于AI计算机视觉的鲁棒无人机检测与追踪
摘要
随着技术创新,安全成为亟待处理的最大问题。无人机指数级普及对公共安全构成巨大威胁。近年来无人机使用激增。针对安全隐患,提出一种解决方案:首先检测无人机,再追踪其路径。
对于目标检测,计算机视觉深度学习算法极为有效。输入经YOLO处理,YOLO是用于实时目标检测和追踪的神经网络。
2.1 理解无人机概念
根据标题“计算机视觉无人机检测与追踪”,UAV(无人驾驶飞行器)是无飞行员航空器,可远程控制或由机载计算机控制。 
无人机可用于农业、科研、气象预报、物流配送、救援行动、医疗等有益用途。也可用于攻击、导弹袭击、定点清除等破坏性目的。
2.2 什么是计算机视觉?
计算机视觉是使计算机像人眼视觉一样看见、识别和处理图像并提供适当输出的科学领域。计算机视觉几乎用于所有领域:
- 目标、人脸检测
- 机器人手术和医学诊断
- 图像处理
- 农业
- 航天技术(NASA火星车具备地形建模、路径障碍检测、全景图拼接能力) 计算机视觉应用见图1.4
2.3 什么是图像处理技术?
图像处理技术被计算机视觉用于执行不同任务。对图像栈执行的操作和应用的方法,以提高图像质量或获得特定结果,称为图像处理。
图像处理被认为是当今信息技术领域发展最快的领域之一,在商业各领域应用不断增长。图像处理应用:
图像处理用例
图像处理可用于这些领域:
- 机器人技术
- 医疗
- 模式识别
- 视频处理
- 人脸检测
2.4 软件需求
- Anaconda
- Spyder
- Python
- Open-CV库
3. 目标检测算法
存在许多目标检测算法。其中几个如下:
- Viola-Jones
- 卷积神经网络 (CNN)
- You Only Look Once (YOLO)
- Single Shot Detector (SSD)
- 区域卷积神经网络 (R-CNN)
表3.1:检测算法
| 算法 | 描述 | 优势 | 劣势 |
| Viola-Jones (Viola-Jones算法由Paul Viola和Michael Jones于2001年设计) | 主要目的人脸和目标检测。可实时检测目标。输入图像时算法查看较小子区域,通过观察每个子区域特殊特征寻找目标。Viola-Jones算法使用Haar-like特征检测目标 |
|
|
| CNN (卷积神经网络) 1980年由福岛邦彦提出 | 生物启发分层模型,可训练执行多种检测、识别和分割。基本是深度学习算法,接收图像输入,给图像中目标分配可学习权重和偏置,区分不同目标 |
|
|
| YOLO (You Only Look Once) | 实时检测算法。将神经网络算法应用于图像,将图像划分为S x S网格,在图像周围建立边界框并预测每个边界框可能性。使用回归。 |
|
1. 每个网格单元仅检测一个目标。 2. 偏向高性能而非准确度。 |
| SSD (Single Shot Detector) | 该方法仅单次拍摄检测多目标,速度极快。专为实时实现设计。包含主干网络和SSD头两组件。 |
|
|
此处将使用YOLO神经网络算法。该算法实时实现极快。使用神经网络算法将图像分为S x S网格,在图像周围建立边界框预测每个边界框可能性。检测算法见表4.4。
3.1 追踪算法
检测目标后,下一重点是追踪。若检测目标是风筝或鸟无需追踪,但若是无人机则需追踪目标。
许多算法用于目标追踪。但再次使用YOLO,因该算法快且准,能检测并追踪直到目标移出相机范围。
4. 拟议设计实现
此处为拟议设计实现。执行在软件上运行项目所需所有步骤。
4.1 初始阶段
- 图像处理需好CPU/GPU,选CPU。从网站安装Anaconda Anaconda安装见图4.1

- 安装Anaconda Navigator后,通过环境对话框创建环境并选择Python版本。
- 成功创建环境后,下一步安装Spyder(易用)。再通过命令pip install cv2安装OpenCV。

4.2 准备数据集
- 收集大量不同空中目标图像:无人机、鸟类、飞机、直升机、风筝、气球。
注意: 制作数据集不仅是收集图像。还需给图像命名并标注各图像中特定目标位置。为此使用名为LabelImg软件,将图像转为文本文件。如图4.6所示
- 所有目标Txt文件制作完成后,将所有图像和文本文件放入zip文件。也为包含类别命名文件。

4.3 YOLO配置
配置步骤如下:
- 安装带YOLO v3的Darknet。
- 配置YOLO:在darknet/data创建文件夹,含之前制作数据集的所有图像和.txt文件。
- 制作自定义配置文件:修改YOLO v3的cfg,根据类别和步数调整batch、subdivisions、max batches。
- 输入类别数时,更改YOLO上方卷积层。设random为1。cfg参数见表4.1
表4.1:CFG参数
| 名称 | 描述 |
| Batch | 前向传播中用于计算梯度并通过反向传播更新权重的图像和标签数量。 |
| Subdivisions | Batch细分为多个"块"。块内图像并行运行。 |
| Steps | 500,1000:在500和1000批次后调整学习率。 |
| Layers (Filters) | 一层中有多少卷积核。 |
| Layers (Random) | 放入YOLO层。设为1时,每隔几个批次将图像调整为不同尺寸进行数据增强,用于泛化目标尺寸。 |
- 通过data/obj.names创建自定义目标文件夹,写入所有想检测的名称如无人机、UAV、鸟、风筝等。
- obj.data包含类别数、train.txt、valid、names、weights文件夹并保存。

- train.txt保存所有数据和图像名称。

4.4 在你的数据集上训练YOLO
针对自定义数据集的YOLO训练也通过Darknet完成。克隆并启用Darknet以及启用OpenCV。使用上述创建的ZIP文件夹、.cfg文件、.names文件、obj.data文件、train.txt文件,配置Darknet网络训练YOLO v3,计算执行次数。
数千次迭代后(基于CPU算力约2小时),训练好数据集即可集成到系统,给出平均损失。
4.5 图像和视频输入测试代码
针对自定义数据集训练YOLO后,开始在称为YOLO权重的训练数据集上测试代码。本例有4个类别。
在不同输入尝试YOLO检测。大权重准确度好但处理稍慢(帧率低)。制作无人机、鸟类视频作为输入。所有目标成功按给定标签、fps和阈值检测追踪。
现在可通过摄像头实时输入测试代码应对实时场景,改变相机范围飞行无人机并记录结果,输出将显示所需"无人机检测与追踪"。

工业技术
- 树莓派 3 计算机视觉运动传感器:人脸检测对接 SmartThings
- 在 Sonbi 机器人上集成 Microsoft Kinect 与树莓派实现实时人体检测
- 计算机视觉驱动效率与降本的七大实证应用
- 工业4.0变革:计算机视觉如何驱动智能制造
- PC 示波器:利用电脑声卡构建低成本波形分析仪
- SPICE 编程基础:实用指南
- Mastercam 单元 7:图像管理与刀路创建完整指南
- 机器人视觉赋能自动化:柔性为核心的多维优势与应用全景
- 高空长航时无人机:精准气象监测的新平台
- 防止线扫机器视觉相机热致图像畸变
- 智能漏水检测四大核心价值:守护建筑安全与降本增效
- Biz4Intellia物联网漏水检测:五大优势驱动工业效能跃升