DroneDataset


Mid-Air: A multi-modal dataset for extremely low altitude drone flights

Summary

写完笔记之后最后填,概述文章的内容,以后查阅笔记的时候先看这一段。注:写文章summary切记需要通过自己的思考,用自己的语言描述。忌讳直接Ctrl + c原文。

Background

(研究的背景,帮助你理解研究的动机和必要性,包括行业现状和之前研究的局限性。)

  • 自动驾驶(汽车、无人机)越来越受关注。实现自动驾驶面临的挑战在于准确了解自身状态和周围的环境。要做这一点必须要正确分析各种传感器(摄像头、雷达、惯性测量单元)提供的信息。
  • 无人机自动飞行依赖机器学习算法或深度学习,但是这类方法需要依赖大量数据。但目前各种cv任务的数据集只有少数数据量足够,Kitti数据集可能是最完整的。
  • 现有的数据集主要是为自动驾驶汽车而设计的,传感器是安装在汽车上,使用此类数据进行训练和测试,能否推广到自动驾驶无人机?安装在汽车上的传感器/摄像机不会完全探索三维环境。

Problem Statement

(问题陈述:问题作者需要解决的问题是什么?)

  • 现有的自动驾驶数据集主要面向汽车,在这些数据集上训练的算法不适用于无人机。这促使我们需要开发一个专门用于非结构化环境下的无人机飞行数据集。

数据集特点

(作者解决问题的方法/算法是什么?是否基于前人的方法?基于了哪些?)

  • 使用无人机进行拍摄,本文的目标不仅是为无人机飞行数据集提供一个替代方案,还可以为自动驾驶汽车的算法提供素材。

传感器仿真

论文使用Airsim模型提供的四旋翼无人机模型。然而,由于该模拟器的一些缺陷,我们不得不从头开始重新实现一些传感器模型,或对其他模型进行调整,以获得对生成数据的更多控制。

加速度计(Acclerometer)和陀螺仪(Gyroscope)

加速度计和陀螺仪是构成惯性测量单元(IMU)核心的两个传感器,对于无人机的稳定飞行至关重要。

  • 但是容易出现偏差和测量噪声。可以通过假定偏差,采样周期、地面实况测量值等参数,确定它们与传感器测量值之间的关系(有公式)。但是Airsim的API无法修改这些参数,论文想用不同的IMU参数配置生成轨迹。在每次飞行前,在不同的典型IMU参数组中随机选取一组。

  • 论文指出,加速度计和陀螺仪可能因安装误差导致轴向不一致(如X轴实际指向Y轴方向)。但由于实验数据不足,作者选择采用简化模型(忽略轴对齐和缩放问题),以平衡仿真复杂度与实用性。

意义:

通过参数化建模,生成的IMU数据更接近真实传感器的行为,支持不同场景下的算法鲁棒性测试。

GPS接收器

RGB 相机图像渲染

合成传感器/三维和语义传感器

数据准备

无人机配置

  • 基于 Airsim 的默认四旋翼无人机模型,但对其传感器类型和位置进行了定制化调整。
  • 传感器:
    • 摄像头
    • IMU(惯性测量单元),参数(如加速度计/陀螺仪的偏差、噪声等)在每次飞行前随机生成,以模拟不同传感器的误差。
    • GPS
    • 同步数据

环境设置

  • 环境:
    • Kite地图:
      • 包含山脉、湖泊和森林,面积接近 100 km²。
      • 用途:训练算法处理地形起伏和不规则地面。
    • PLE地图:
      • 丘陵地形、森林、湖泊、道路和铁路,面积约 10 km²。
      • 优势:支持季节变化(春、秋、冬),用于测试季节性视觉变化的鲁棒性。

气候条件

  • 天气条件(4 种):
    • 晴天:典型光照条件,阴影清晰。
    • 阴天:光线暗淡,阴影几乎不可见。
    • 日落:挑战性光照(长阴影、逆光)。
    • 雾天:降低视觉特征的可见性,增加深度估计难度。
  • 季节条件(3 种):
    • 春季:树木绿叶茂盛,地面植被丰富。
    • 秋季:树木黄叶,地面植被干燥。
    • 冬季:无叶树木,环境覆盖积雪。

数据集场景与格式(Scenarios and Format)

  • 数据采集:

    • 使用 RC 遥控器手动飞行无人机 5 小时,最终提取 79 分钟的有效数据(54 条轨迹,每条约 1.47 分钟)。Kite 环境:30 条轨迹。PLE 环境:24 条轨迹。
  • 数据存储:

    • 传感器数据:存储为 HDF5 文件,便于高效读取。
    • 图像数据:独立存储于子目录,RGB 图像以 JPEG 格式保存,深度图和法线图以 16 位 PNG 格式保存。
    • 数据量:每帧平均 2.5 MB,总数据量超过 420k 帧。

实验

以KITTI数据集为基准,选择一个深度学习模型进行训练。

  • Test data:
    • KITTI:作为基准,显示在KITTI数据集上训练并测试的结果。
    • Training set:Mid-Air数据集的训练集测试结果。
    • Kite环境(晴天、多云、日落、雾天):在Kite地图中模拟的四种天气条件。
    • PLE环境(秋季、春季、冬季):在PLE地图中模拟的三种季节。
  • 指标:
    • Abs Rel(绝对相对误差):衡量预测深度与真实深度的相对误差,值越小越好。
    • Sq Rel(平方相对误差):对误差的平方求和,对大误差更敏感。
    • RMSE(均方根误差):直接反映预测值与真实值的偏离程度。
    • RMSE log(对数均方根误差):对数空间下的误差,常用于评估深度图的全局一致性。

KITTI基准对比

  • KITTI行的数据(0.114, 0.898, 4.935, 0.206)是文献[13]中同一网络在KITTI数据集上的结果。这组数据作为基准,用于对比Mid-Air数据集的复杂性和模型性能。
  • Mid-Air训练集的结果(0.335, 8.892, 11.444, 0.343)显著高于KITTI,表明Mid-Air数据集的复杂性更高(例如更复杂的场景、更多气候条件变化),导致模型在训练集上的性能较差。

Kite环境的测试结果

  • Kite晴天/多云/日落/雾天:每种天气条件下的结果均接近(例如Abs Rel在0.225–0.328之间),说明模型对Kite环境中的不同天气具有一定的鲁棒性。
    • 天气条件的影响:尽管天气变化(如雾天导致颜色失真、阴影拉长),模型的性能差异较小,表明其在这些场景下具备一定的泛化能力。
    • 雾天的特殊性:雾天的视觉退化(如颜色失真)可能对深度估计构成挑战,但模型的性能并未显著恶化(RMSE log为0.305,接近晴天的0.317),说明其鲁棒性较好。

PLE环境的测试结果

  • PLE秋季/春季/冬季:三种季节的结果显著高于Kite环境(Abs Rel约0.887,RMSE log约0.614),且波动较大(例如冬季的Abs Rel为0.764,秋季为0.887)。
    • 季节差异的影响:PLE环境的季节变化(如冬季无叶树木、雪地覆盖)可能导致场景特征与训练数据差异较大,从而降低模型性能。
    • 样本数量的限制:PLE环境的样本数量较少(原文提到PLE样本数少于Kite环境),可能导致模型在这些季节下的泛化能力不足。

Mid-Air的复杂性

  • Mid-Air的训练结果(0.335 Abs Rel)远低于KITTI(0.114),表明其场景复杂性(如多样化的气候、地形)对深度估计模型提出了更高要求。
  • Kite环境的测试结果(0.250–0.328 Abs Rel)优于PLE环境(0.764–0.887 Abs Rel),可能与Kite样本数量更多、场景更接近训练数据有关。

鲁棒性分析

  • 天气鲁棒性:Kite环境的四种天气结果相近,表明模型对天气变化的适应性较好。
  • 季节鲁棒性:PLE环境的季节结果差异较大,说明模型对季节变化的鲁棒性不足,需进一步优化。

改进方向

  • 增加动态物体数据:原文提到Mid-Air缺乏动态物体(如行人、车辆),可能影响模型对真实场景的适应性。
  • 模拟风与振动:当前仿真未考虑风力和无人机振动对IMU的影响,可能影响依赖IMU的算法的泛化能力。

Notes(optional)

(不在以上列表中,但需要特别记录的笔记。)

  • 这篇论文提供了一个专门用于非结构化环境下的无人机飞行数据集。但是论文写的不严谨,实验部分也是比较潦草。可以简单看下,有个了解即可

数据相关

AirSim

官方文档:https://microsoft.github.io/AirSim/

相关文档:https://zhuanlan.zhihu.com/p/447929016

简介

AirSim 是微软公司研发的基于虚幻引擎(Unreal Engine)的仿真平台,可以用于无人机或无人车的仿真,得益于虚幻引擎强大的视觉渲染能力和丰富且逼真的场景,AirSim中的仿真完全可以做到视觉上以假乱真的效果,非常适合无人机在视觉算法、机器学习、强化学习等领域的研究。

AirSim提供了很多API接口,用于读取数据、控制飞行、控制天气、读取照片等,使用 API接口可以实现自动收集数据集的功能,还可以测试视觉算法。AirSim的开发者希望这个平台能够帮助研究人员用于深度学习、计算机视觉、强化学习等人工智能相关的研究,适用于无人机、无人驾驶、机器人等领域的应用。

AirSim支持多平台运行,在 Windows、Linux 和 Mac系统中可以运行,但是目前只有在Windows系统下才可以创建工程,而对于Linux系统下的使用,需要首先在 Windows 系统下创建好工程,再复制到Linux系统下。

AirSim可以做什么

  • 手动飞行(驾驶):使用可以接入电脑的无人机遥控器或者 XBox,都可以实现手动飞行仿真中的无人机,它不只能够训练飞手的飞行技术,还可以浏览美景。得益于虚幻商城中的丰富且逼真的场景,能够给予玩家震撼的视觉效果,使用1比1复原的实现场景时,甚至有一种驾驶飞机浏览世界各地名胜的感觉。
  • 程序控制无人机飞行(控制算法测试):AirSim 提供了丰富的程序控制接口,用户可以使用多种编程语言来编写程序,实现对无人机的状态读取和飞行控制。AirSim 还支持硬件在环仿真,可以最大程度模拟四旋翼的飞行效果。控制接口功能丰富:
    • 包括四旋翼的:位置控制、速度控制、姿态控制、电机控制等,
    • 支持电机转速控制、底层飞控的PID参数调节,满足了从基础控制到高机动控制等不同的任务需求。
    • 使用AirSim APIs 接口可以读取无人机的状态(位置、速度、姿态等),包括真实状态、传感器测量到的有噪声的状态信息。
    • AirSim 还支持同时仿真多架无人机,可以测试集群和多无人机协同算法。
    • AirSim 支持在视口中直接作图,由此可以显示无人机的飞行轨迹。
  • 数据集自动收集、视觉算法测试:仿真场景中可以知道全部的信息,使用程序控制,可以很方便地实现对无人机位置和姿态的控制,同时也能方便地控制相机的姿态和内参。也可以同时添加多个相机,安装在无人机的不同位置。
  • 强化学习:AirSim 支持获取碰撞信息,碰撞信息不止包括是否发生碰撞,还包括:发生碰撞的位置、发生碰撞的表面、碰撞深度等信息。使用程序可以读取碰撞信息、无人机状态等,加上强化学习算法,可以实现强化学习的训练。
  • 多传感器融合:irSim 目前支持的传感器有:相机、双目相机、红外相机、雷达、距离传感器、气压计、IMU、GPS、磁力计。同时使用多个传感器,可以测试多传感器融合算法。

文章作者: Jason Lin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 reprint policy. If reproduced, please indicate source Jason Lin !
  目录