【数据集】waymo motion dataset介绍与数据解析可视化

文章目录

      • 前言
      • 1. 数据下载
      • 2. Motion数据集
      • 3. 数据描述
      • 4. 数据特征scenario.proto
      • 5. 地图特征map.proto
      • 6. 数据解析
        • 6.1 数据解析过程
        • 6.1 数据解析过程报错
      • 7. 数据可视化

前言

  • waymo open dataset数据集由两个数据集组成: Perception数据集 + Motion数据集
    • Perception数据集主要用于2D和3D目标检测和追踪任务,是自车第一视角数据
    • Motion数据集主要用于自动驾驶行为预测,是鸟瞰图数据
  • 我们重点学习Motion数据集

1. 数据下载

  • Waymo完整数据集下载: https://waymo.com/open/download/
  • Waymo Motion数据集官方主页: https://waymo.com/open/data/motion/
  • Waymo数据格式/读取/评估工具安装和环境配置: https://github.com/waymo-research/waymo-open-dataset
  • Waymo Perception数据集论文: https://arxiv.org/abs/1912.04838v7

2. Motion数据集

  • 传感器方案: 5 Lidar(64线束)和5高分辨率针孔相机。限制了LiDAR数据范围,并且每个激光脉冲有两个回波(双回波)。相机图像是通过卷帘快门扫描捕获的,其中确切的扫描模式可能因场景而异, 所有相机图像都将进行降采样并从原始图像中裁剪出来

  • 数据量和场景: Motion数据集有100000段总计超过200000000帧的数据,但是好像只有激光雷达采集的数据和对应的地图还原结果, 标签为Vehicles, Pedestrians, Cyclists三类(使用VPN)

3. 数据描述

  • (1) 数据集文件格式为tfrecord, 是tensorflow的一种格式

  • (2) 一个trrecord包含199帧数据, 是连续时间段的数据帧, 采样频率10Hz, 近似有20s数据

  • (3) 一帧中包含了车上所有传感器的数据以及相应的label

  • (4) 一个tfrecord包含多条scenario, scenario是一条数据的最小单元,

  • (5) 数据格式包含在scenario中, 使用scenario.proto进行描述

  • (6) scenario代表一个场景, 也就是一段时间内的交通信息,包括自车和其它的交通参与者,以及交通灯在20s内的轨迹和状态,同时还包括了道路信息

  • (7) scenario每个场景包含9秒91帧数据, 其中历史10帧, 当前1帧, 未来80帧, 在轨迹预测或其他任务中一般使用1s历史数据预测8s未来数据; 也可以根据实验用途从20s数据中自己切分数据

    waymo motion数据的结构如图:

    接下来我们详细介绍scenario.proto和map.proto地图格式

4. 数据特征scenario.proto

  • 一个场景中的特征主要分为三个部分

    • (1) 场景Features:该类别包括当前场景的基本信息,如场景ID、自动驾驶汽车的索引等
    • (2) HdMap Features静态动态地图功能都属于这一类别。动态地图特征包括交通信号状态,静态地图特征包括道路几何形状和连接的综合信息。Waymo提供车道、边界、人行横道、豁口等的明确坐标。对于每个路段,上游/下游车道和相邻车道的索引都记录在相应的属性中
    • (3) 轨迹Tracks:此属性存储场景中所有观察到的对象的运动。共有四种类型的对象:车辆、行人、骑自行车的人和其他。物体的状态以10 Hz的频率记录,每个状态包括物体的坐标(x、y、z)、尺寸(宽度和高度)、运动(航向、纵向和横向速度)和有效标志等
  • Scenario结构

    message Scenario {reserved 9;// 场景IDoptional string scenario_id = 5;// 时间戳数组.与追踪目标tracks和红绿灯状态数组大小相等repeated double timestamps_seconds = 1;// 当前时间在时间戳数组中的index, 在此之前的为历史数据,在此之后的为预测数据optional int32 current_time_index = 10;// scenario内所有追踪目标; tracks[i].states[j]表示第i个目标在j时刻的状态repeated Track tracks = 2;// scenario的动态地图状态, 这里主要指交通灯信息; 和时间戳数组大小相等, dynamic_map_states[i]表示i时刻的交通灯信息repeated DynamicMapState dynamic_map_states = 7;// scenario的静态地图特征, 如lane/road/crosswalk/driveway等静态地图repeated MapFeature map_features = 8;// 自车在目标tracks里的索引optional int32 sdc_track_index = 6;// 与自车有交互行为的目标ID列表; 这些ID对应tracks里的idrepeated int32 objects_of_interest = 4;// 需要预测的目标列表,这只是建议train的目标,不是包含所有目标repeated RequiredPrediction tracks_to_predict = 11;// 每个时间步的lidar数据列表; 包含当前时间步之前的lidar数据, 即timestamps_seconds[i] where i <= current_time_index; 不是所有版本中均有此字段repeated CompressedFrameLaserData compressed_frame_laser_data = 12;
    }
    
  • 数据结构:Track

    message Track {enum ObjectType {TYPE_UNSET = 0;  // This is an invalid state that indicates an error.TYPE_VEHICLE = 1;TYPE_PEDESTRIAN = 2;TYPE_CYCLIST = 3;TYPE_OTHER = 4;}// 被追踪的目标ID, 非负optional int32 id = 1;// 目标类型optional ObjectType object_type = 2;// 目标states,包括位置速度信息等repeated ObjectState states = 3;
    }
    
  • 数据结构:ObjectState

    message ObjectState {// Coordinates of the center of the object bounding box.optional double center_x = 2;optional double center_y = 3;optional double center_z = 4;// The dimensions of the bounding box in meters.optional float length = 5;optional float width = 6;optional float height = 7;// 目标朝向, 取值[-pi, pi]optional float heading = 8;// 速度m/s,和目标朝向heading可能有差异optional float velocity_x = 9;optional float velocity_y = 10;// state状态数据是否有效, False表示数据无效或丢失optional bool valid = 11;
    }
    
  • 数据结构:DynamicMapState

    message DynamicMapState {// 在该时间步能观察到的所有红绿灯列表repeated TrafficSignalLaneState lane_states = 1;
    }
    
  • 数据结构:TrafficSignalLaneState

    message TrafficSignalLaneState {// 被该交通灯控制的lane idoptional int64 lane = 1;enum State {LANE_STATE_UNKNOWN = 0;// 箭头交通灯信号LANE_STATE_ARROW_STOP = 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527664.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端项目访问不了

问题&#xff1a; 后端启动不了&#xff0c;无法访问网站 原因&#xff1a; 1.防火墙没有关 2.有缓存 3、项目没有启动 4、docker没有启动 解决&#xff1a; 先查看进程&#xff1a;docker ps&#xff0c;必须有三个 详细查看&#xff1a;docker ps -a exited代表没有开启…

基于深度视觉实现机械臂对目标的识别与定位

机械臂手眼标定 根据相机和机械臂的安装方式不同&#xff0c;手眼标定分为眼在手上和眼在手外两种方式&#xff0c;双臂机器人的相机和机械臂基座的相对位置固定&#xff0c;所以应该采用眼在手外的手眼标定方式。 后续的视觉引导机械臂抓取测试实验基于本实验实现&#xf…

HTTP有什么缺陷,HTTPS是怎么解决的

缺陷 HTTP是明文的&#xff0c;谁都能看得懂&#xff0c;HTTPS是加了TLS/SSL加密的&#xff0c;这样就不容易被拦截和攻击了。 SSL是TLS的前身&#xff0c;他俩都是加密安全协议。前者大部分浏览器都不支持了&#xff0c;后者现在用的多。 对称加密 通信双方握有加密解密算法…

活体检测(点头,摇头,张嘴等动态识别)

活体检测&#xff08;点头&#xff0c;摇头&#xff0c;张嘴等动态识别&#xff09; 某本书里有一句话&#xff0c;等我去读、去拍案。 田间的野老&#xff0c;等我去了解、去惊识。 山风与发&#xff0c;冷泉与舌&#xff0c; 流云与眼&#xff0c;松涛与耳&#xff0c; 他们等…

吴恩达机器学习笔记十六 如何debug一个学习算法 模型评估 模型选择和训练 交叉验证测试集

如果算法预测出的结果不太好&#xff0c;可以考虑以下几个方面&#xff1a; 获得更多的训练样本 采用更少的特征 尝试获取更多的特征 增加多项式特征 增大或减小 λ 模型评估(evaluate model) 例如房价预测&#xff0c;用五个数据训练出的模型能很好的拟合这几个数据&am…

java正则表达式概述及案例

前言&#xff1a; 学习了正则表达式&#xff0c;记录下使用心得。打好基础&#xff0c;daydayup! 正则表达式 什么是正则表达式 正则表达式由一些特定的字符组成&#xff0c;代表一个规则。 正则表达式的功能 1&#xff1a;用来校验数据格式是否合规 2&#xff1a;在一段文本…

QT画图功能

QT画图功能 每个QWidget都自带的功能&#xff0c;继承了QPainteDevice都可以使用QPainter来进行绘图。 画图需要调用paintEvent绘制事件&#xff0c;paintEvent事件时QWidget类自带的事件。 重写paintEvent事件。&#xff08;重写事件&#xff1a;如果父类有某个方法&#xff…

C++类和对象(下篇)

目录 一.再谈构造函数 二.static成员 三.友元 四.内部类 五. 再次理解类和对象 一.再谈构造函数 1.构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month…

8.5 Springboot项目实战 Redis缓存热点数据

文章目录 前言一、缓存与数据库一致性二、Repository层 -- Cache Aside模式实操BookRepositoryBookRepositoryImpl2.1 查询2.2 修改2.3 删除2.4 扩展Mapper修改三、Service层调用修改四、测试前言 前两文我们讲解了如何在SpringBoot中整合Redis,接下来我们将进行

Linux C/C++下使用Lex/Yacc构建实现DBMS(Minisql)

DBMS&#xff08;数据库管理系统&#xff09;是一种用于管理和组织数据库的软件系统。它的重要性在于提供了一种有效地存储、管理和访问大量数据的方式。本文将深入探讨如何使用C语言、Lex&#xff08;词法分析器生成器&#xff09;和Yacc&#xff08;语法分析器生成器&#xf…

设计模式学习笔记 - 规范与重构 - 5.如何通过封装、抽象、模块化、中间层解耦代码?

前言 《规范与重构 - 1.什么情况下要重构&#xff1f;重构什么&#xff1f;又该如何重构&#xff1f;》讲过&#xff0c;重构可以分为大规模高层重构&#xff08;简称 “大型重构”&#xff09;和小规模低层次重构&#xff08;简称 “小型重构”&#xff09;。大型重构是对系统…

LTspice(14) Noise仿真

LTspice(14) Noise仿真 好久没有更新LTspice的教程了&#xff0c;大家想了没&#xff1f; 截止目前LTspice已经更新到24.0.9。界面发生了一些变化&#xff0c;但主要功能并不受影响&#xff0c;新的版本改了UI&#xff0c;找东西更加方便了&#xff0c;界面如下图1所示。 图1…