ArzooTiwary/UAV-Intelligence-Fusion-System

GitHub: ArzooTiwary/UAV-Intelligence-Fusion-System

该项目将无人机视觉检测、GPS欺骗检测和遥测异常分类三种感知模块通过Dempster-Shafer证据理论融合为统一的威胁评估结果,解决多系统孤立报警、操作员难以决策的问题。

Stars: 1 | Forks: 0

# UAV 智能融合系统 我在 BSERC 暑期实习的文献综述阶段,脑海中一直盘旋着一个问题,这也是我发起该项目的初衷:为什么每一篇关于 UAV 安全的论文每次都只解决一个问题? 你可以看到在 GPS 欺骗检测方面的出色工作。另外,还有在航空目标检测方面的杰出研究。再者,还有关于遥测异常分类的成果。但在实际的监控场景中,一架真实的无人机需要同时面对所有这些问题,而地面操作员需要的是一个统一的答案,而不是来自三个互不相干的系统的三个独立警报。 这个项目正是试图填补这一空白。 ## 系统的实际功能 UAV-IFS 接收监控无人机产生的三个主要数据流(视觉图像、GPS 遥测和飞行状态数据),通过专门的 AI 模块分别处理每一个数据流,然后将三者融合为一个单一的威胁评估结果,并附带明确的置信度指标和任何操作员都能读懂并直接采取行动的简明英文报告。 融合步骤是我花费时间最多的地方。天真的方法是分配点数:检测到车辆 +10 分,如果 GPS 看起来可疑 +40 分,如果你处于禁区内 +30 分,将它们相加并设置阈值。这对于演示来说可行,但仔细推敲后就会发现它立马失效。它将每一次车辆检测视为同等威胁,而无视无人机所在的位置或发生的其他情况。在换班期间的边境检查站出现五辆车是完全正常的。但在凌晨 2 点的禁区内出现五辆车,且 GPS 信号显示出不连续的跳跃,这就是一起严重的事件。点数系统对两者的评分是完全相同的。 这里的融合引擎使用了 Dempster-Shafer 证据理论。每个模块输出的不是一个标签,而是分布在三个假设中的*置信质量*:THREAT、BENIGN 和 UNKNOWN。UNKNOWN 质量是让 DS 理论有用的关键部分。它允许模块说“我不确定”,而不是强迫其选边站。当你使用 Dempster 组合规则结合来自多个模块的证据时,不确定的证据会被适当地降低权重,而不是污染最终得分。上下文模块(禁区、夜间)本身不检测任何东西,它只是改变了系统对其他两个模块发现结果的权重分配方式。同样的证据,不同的上下文,得出不同的结论。这就是核心理念。 ## 架构 系统分为六层构建,每一层都向下一层输入数据。 视觉数据流经 YOLOv8 检测器,输出结构化的目标 计数。GPS 和 IMU 遥测数据通过扩展卡尔曼滤波器进行处理,生成 状态估计,更重要的是,生成新息残差, 即滤波器对每次新 GPS 读数的惊讶程度衡量。该 残差与原始遥测特征一起直接输入到异常分类器中, 因为与单纯的原始 GPS 坐标相比,滤波器残差是更强的欺骗信号。 所有三个输出(视觉计数、网络异常概率和上下文 区域信息)同时输入到融合引擎。融合 引擎使用 Dempster-Shafer 证据理论将它们结合起来,并生成带有 置信区间的单一威胁得分。然后,报告生成器 将该结构化输出转换为简明英文摘要,并且 仪表板将所有内容整合在一个面向操作员的界面中展示。 关键的架构决策是让融合引擎位于所有 三个感知层之*上*,而不是作为单个 主要检测器的下游消费者。大多数系统将网络安全视为附加在 视觉流水线上的事后诸葛。而在这里,它是同一决策的同等重要输入。 ## 模块分解 ### 模块 1- 视觉智能 (`detect_image.py`) YOLOv8n 对航空图像进行推理,将检测结果分类为三个操作相关的类别:车辆、人员和船只。这里使用的模型是预训练的 COCO 权重版本。为了在实际的航空图像上进行部署,在 VisDrone 或 DOTA 上进行微调是正确的下一步;使用普通的 COCO 权重在俯视 UAV 图像上的小目标召回率会显著下降,这是航空检测文献中广泛记载的局限性。 输出是一个结构化的 JSON 对象: ``` {"vehicles": 4, "people": 2, "boats": 0} ``` 这是一个刻意的设计选择。该模块输出的是计数,而不是边界框或类别标签。下游的融合引擎不需要像素坐标;它需要具有操作意义的数量。保持接口简单使得模块真正可组合。 ### 模块 2- 状态估计 (`module2_ekf.py`) 一个扩展卡尔曼滤波器,使用恒速运动模型跟踪 UAV 位置 [lat, lon, alt]。在每个更新步骤中,滤波器计算*新息*;即 GPS 报告的内容与滤波器仅通过物理预测的内容之间的差异。这个以马氏距离表示的新息向量是关键的输出。 这样做而不是将原始 GPS 直接提供给分类器的原因在于:欺骗攻击表现为位置上的不连续跳跃,滤波器的运动模型认为这是极不可能的。这种不可能性被量化为大的马氏残差。在正常飞行期间,残差位于 0.4 到 2.0 之间。在测试中的模拟欺骗攻击期间,它飙升至 100 以上。这比原始 GPS 值本身强得多的异常信号,因为它分离了测量中的*惊讶度*,而不是其绝对值。 ### 模块 3- 网络异常检测 (`module3_classifier.py`) 一个随机森林分类器,经过训练用于区分正常的飞行遥测数据和 GPS 欺骗攻击。特征集刻意包含了来自模块 2 的 EKF 新息残差,以及原始遥测特征(速度、高度变化、航向变化)。这是关键的设计决策,使用滤波器残差作为分类器特征而不是原始 GPS 值显著提高了判别能力,因为残差捕获了欺骗信号的动态不一致性,而不仅仅是其绝对位置。 该模块包括对抗性鲁棒性测试:对正确分类的欺骗样本的特征向量应用有界随机扰动,并重新测量召回率。这很重要,因为一个在干净的测试数据上表现良好但在微小输入扰动下急剧退化的分类器,对于真正的威胁检测应用来说鲁棒性还不够。 输出: ``` {"status": "spoofed", "confidence": 0.91} ``` ### 模块 4- 融合引擎 (`module4_fusion.py`) 这是项目的核心。三个证据源,每个都表示为 {THREAT, BENIGN, UNKNOWN} 上的基本概率分配,使用 Dempster 组合规则成对组合。 组合规则: - 一致(两个来源指向相同方向) → 增强置信度 - 冲突(来源指向相反方向) → 产生冲突质量 K - 冲突质量被丢弃,剩余的质量通过 1/(1-K) 重新归一化 上下文模块是系统行为真正变得有趣的地方。它在白天的正常区域输出强烈的 BENIGN 倾向,在夜间的禁区输出中等的 THREAT 倾向。结合视觉和网络证据,这意味着同样的 5 辆车检测结果在正常巡逻通道中的威胁得分为 0.02,而在存在主动 GPS 异常的限制禁区内则为 0.95。这种对上下文的敏感性是使该系统具备研究级别的特性,而不仅仅是一个阈值警报的属性。 同时报告置信度和似然界限,为操作员提供适当的置信区间,而不是单一点估计。 ### 模块 5- 报告生成器 (`module5_report.py`) 基于模板的自然语言生成。输出报告中的每一句话都是直接从融合 JSON 中的字段构建的。没有自由文本生成。这是故意的;在操作员可能根据报告采取实际行动的系统中,每一项主张都必须可追溯到特定的输入。该模块包含一个一致性检查功能,用于验证生成的文本不包含源数据中不存在的数字。 ### 模块 6- 操作员仪表板 (`module6_dashboard.py`) 带有 Plotly 可视化的 Streamlit 应用程序。仪表板包括: - 显示融合的 Dempster-Shafer 置信度得分的威胁量表 - 堆叠水平条形图,显示所有三个模块的证据分解,这直接将 DS 数学运算可视化,对于向不熟悉该理论的人解释系统非常有用 - EKF 新息残差时间线,显示 120 个时间步长内的真实滤波器输出,并突出显示异常窗口,当 GPS 欺骗滑块提高到 0.3 以上时,时间线变红,并用垂直线标记攻击窗口 - 自动生成的情报报告 - 所有三个证据源的原始 DS 置信质量 ## 运行说明 ``` pip install ultralytics opencv-python scikit-learn streamlit plotly numpy pandas ``` 测试单个模块: ``` python code/detect_image.py your_image.jpg python code/module2_ekf.py python code/module3_classifier.py python code/module4_fusion.py python code/module5_report.py ``` 启动仪表板: ``` python -m streamlit run code/module6_dashboard.py ``` ## 什么是合成的,什么不是 用于训练模块 3 和驱动仪表板中 EKF 时间线的 GPS 遥测数据是合成生成的,即带有在随机时间步注入的模拟欺骗攻击的干净飞行路径。存在真实的 GPS 欺骗数据集(Aissou 等人 2022 年的 Mendeley 数据集是标准基准),接入一个数据集只是数据加载步骤的简单替换。这里使用合成数据是为了保持项目独立,并在无需外部下载的情况下实现可复现性。 视觉模块使用真实的 YOLOv8 对真实图像进行推理。融合数学运算是真实的。EKF 是运行真实方程的真实滤波器,而不是模拟输出。 ## 下一步计划 显而易见的扩展,大致按研究价值排序: 1. 在 VisDrone 上微调模块 1,这是对实际航空部署影响最大的单一改变 2. 用 Mendeley GPS 欺骗数据集替换合成遥测数据,并使用适当的交叉验证重新评估模块 3 3. 在模块 1 中添加多目标跟踪(ByteTrack 或 OC-SORT),以便通过实际的跟踪历史而不是复选框来检测徘徊行为 4. 将模块 3 扩展为 CNN + 梯度提升的堆叠集成,以提高鲁棒性 5. 将仪表板连接到实时视频流和真实的遥测流 ## 重要说明 这是一个非武器化的态势感知和决策支持平台。所有输出仅供参考。该系统不推荐、发起或对任何攻击性或武力行动进行评分。它只告诉操作员它看到了什么以及它的置信度如何。由操作员决定怎么做。 作者: Arzoo Tiwary, 自动化与机器人, SRM 理工学院, *BSERC 暑期实习, 2026*.
标签:GPS欺骗检测, HTTP/HTTPS抓包, Kubernetes, 多模态融合, 威胁评估, 态势感知, 无人机, 目标检测, 证据理论, 逆向工具