1. 数据集简介

(图片来源:https://www.nuscenes.org/data-collection )
nuScenes数据集 是自动驾驶公司nuTonomy建立的大规模自动驾驶数据集,该数据集不仅包含了Camera和Lidar,还记录了雷达数据,是我所知道的唯一一个有雷达数据的数据集。
这个数据集由1000个场景组成(即scenes,这就是该数据集名字的由来),每个scenes长度为20秒,包含了各种各样的情景。在每一个scenes中,有40个关键帧(key frames),也就是每秒钟有2个关键帧,其他的帧为sweeps。关键帧经过手工的标注,每一帧中都有了若干个annotation,标注的形式为bounding box。不仅标注了大小、范围、还有类别、可见程度等等。这个数据集不久前发布了一个teaser版本(包含100个scenes),正式版(1000个scenes)的数据要2019年发布。
这个数据集在sample的数量上、标注的形式上都非常好,记录了车的自身运动轨迹(相对于全局坐标),包含了非常多的传感器,可以用来实现更加智慧的识别算法和感知融合算法。
本文描述了如何在一个新的Google Cloud Platform(下文简称GCP)Compute Engine - VM instance上使用这个数据集,关于如何创建和使用GCP,有很多现成的材料可以学习,作者最早是通过Stanford CS231n课的谷歌云教程学习的谷歌云。本教程所使用的谷歌云镜像参数如下:

参数名称 数值
Machine type n1-standard-4 (4 vCPUs, 15 GB memory)
Boot disk and local disks 100GB SSD persistent disk
Source image ubuntu-1604-xenial-v20181030

如果读者想在自己的PC机上面使用这个数据集,则可以跳过从Google Bucket把数据拷贝到server的硬盘中的步骤。

1.1 Setup

数据集可以通过注册nuScenes网站后,在 Download 页面下载,里面有五个下载项,其中metadata and annotation 是必须要下载的,其他数据可以根据需要下载。下载后的数据是 tbz2 格式的压缩文件,需要经过两次解压缩。
在 nuScenes-devkit github page 上面有一个可以用来visualization的开发工具。

1.1.1 Python version

如果想要用nuScenes的开发工具,需要Python 3.7版本,具体的安装方式在上文的github上面有提到,但是较为推荐的是在一个虚拟环境下安装python 3.7。

1.1.2 Python virtual environment

nuScenes-devkit github page 的教程中用的是虚拟环境管理包 virtualenvwrapper 来创建虚拟环境,关于虚拟环境,可以参考 这篇文章 或者virtualenvwrapper 和 virtualenv。其实我个人是偏好使用Anaconda内嵌的虚拟环境管理工具的,关于Anaconda与Virtualenv的比较,“You actually can install (some) conda packages within a virtualenv, but better is to use Conda’s own environment manager: it is fully-compatible with pip and has several advantages over virtualenv.”
Anaconda创建新环境的命令为:
conda create --name myenv
创建了新环境以后进入新环境的命令为:
source activate myenv
(其他命令可以查阅conda 文档 )

1.1.3 Storage buckets

想要使用Google Cloud Platform来下载数据集,我主要采取两个方法,一个方法是在terminal中输入wget + [http address],但是如果想要下载nuScenes数据集,直接用wget是不行的,该数据集需要一定的权限才能访问。另一个方法是这篇博客使用的方法——将数据集从我的本地硬盘传到cloud storage的bucket中,再进入GCP VM instance将数据从bucket拷贝到VM instance的硬盘里。过程如下:

  • 进入cloud storage创建一个object
  • 将数据集上传到object
  • 将数据集从buckets拷贝到instance
    在拷贝和解压数据集的过程中,VM instance的硬盘空间可能会不够用(数据占50GB),因此可以考虑讲硬盘的内存调大。这就是Google VM instance的方便之处:随时根据需要设置硬件的参数
    命令如下
gsutil cp gs://[buckets object name]/[filename] [target folder name]

for example:

gsutil cp gs://[buckets object name]/nuscenes_teaser_meta_v1.tbz2 ./

2. 数据集的使用

  • 解压
bzip2 -d [filename]
  • 二次解压
tar xf [filename]

PCD文件

文件 nuscenes.py 的第453行

pc = PointCloud.from_file(osp.join(self.nusc.dataroot, pointsensor['filename']))

Metadata

javascript文件中是每一个元数据的表格,可以用token来identify,这些元数据是用来表达数据之间的对应关系的。比如某一个scene对应哪些sample,这个sample有哪些传感器,传感器又有哪些数据。radar 和 lidar 都是用pcd文件记录的数据,camera 是 jpg。

Shortcut

这个数据集中所有的标注是通过json文件完成的,json文件如同为我们定义了一个graph结构,这个graph里的每一个节点是scene, sample, instance, data, category等等,我们可以通过token在这个graph中寻找我们需要的部分,比如说在多个sample关键帧中找到同一个骑自行车的人。

这个数据集的标注中,只有一对一的对应关系,很少有一对多的对应关系,但是有时候这种对应关系又非常重要,比如说给定一个sample,我想要sample中所有的annotation,又或者给定一个instance,我想要得到所有该instance的annotation,于是在nuScenes提供的dev-kit中,为使用者设置了很多的Shortcuts。即整理好了的“一对多”。

开发者提供的函数

开发者在github上提供了可以用来可视化Nuscenes数据集的函数,叫nusenes.py,在随同提供的Jupyter notebook中这个函数被声明为nusc。注意,真正在Jupyter notebook中使用的很多函数其实在nusc.explore类中,因此如果要在nusc.explorer中定义新的方法,要在nusc中把shortcut加上。

3. 遇到的问题

3.1 没有足够的空间

3.2 opencv版本问题

在运行Jupyter notebook的时候出现错误
cannot open shared object file: No such file or directory
解决办法

  • sudo apt-get install libsm6 libxrender1 libfontconfig1
  • pip install opencv-contrib-python

3.3 Dataset的位置

如果没有把dataset存到根目录下,也可以把它存到nuscenes-devkit的目录下,然后把路径从dataroot='/data/nuscenes'换成dataroot='./data/nuscenes'。

4. 数据集的可视化

(待填)

自动驾驶nuScenes数据集——一个KITTI以外的新数据集相关推荐

  1. 自动驾驶深度多模态目标检测和语义分割:数据集、方法和挑战

    自动驾驶深度多模态目标检测和语义分割:数据集.方法和挑战 原文地址:https://arxiv.org/pdf/1902.07830.pdf Deep Multi-Modal Object Detec ...

  2. CODA:自动驾驶中道路目标检测的极端情况数据集

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨计算机视觉深度学习和自动驾驶 2022年3月arXiv论文"CODA: A Real- ...

  3. Christopher Manning​:Uber 出售自动驾驶部门是一个标志性事件​ | AI日报

    为 AI 内行人定制资讯, 帮你一篇尽览 AI 行业要闻. AI消除马赛克,GitHub开源项目上线三天收获近7000星 最近,一个名为 Depix 的 GitHub 项目爆火,上线三天 star 量 ...

  4. 【转载】模拟器,会是自动驾驶的下一个刺激战场吗?

    模拟器,会是自动驾驶的下一个刺激战场吗? 雷锋网 百家号08-2111:36 在亚利桑那州梅萨的南隆摩街和西南大街的拐角处有一个左转黄灯,自动驾驶行业内的人士习惯戏称它为"死亡之地" ...

  5. Kaggle新赛:Lyft 自动驾驶运动预测,发布迄今最大预测任务数据集

    近日,国外著名出行公司 Lyft 在Kaggle 竞赛平台发起自动驾驶汽车的运动预测挑战赛,旨在促进自动驾驶汽车的研究,并发布了迄今最大的运动预测数据集. 任务介绍 挑战参赛者对自动驾驶场景中出现的行 ...

  6. 线控转向,自动驾驶的下一个标配?

    汽车转向系统是汽车上的重要构件,其性能的好坏直接决定了汽车操控性能的优劣,它随着新技术的出现不断推陈出新. 从最初的纯机械转向系统,历经机械式液压助力转向(Hydraulic Power Steeri ...

  7. 自动驾驶产业链躁动,四维图新能否做好新时代“Tier 1”?

    自动驾驶行业的"劲风"又来了. 6月21日,工信部副部长辛国斌在国务院政策例行吹风会上表示,将启动智能网联汽车准入和上路通行试点,他强调,"这里面讲的是L3级,及更高级别 ...

  8. 对话英特尔副总裁Erez Dagan:自动驾驶引擎盖下的秘密!|《新程序员》

    以芯片.摄像头.软件为基石,依托人工智能.大数据等前沿技术,从数据处理.传输.分析到数据安全,纵横于数十年创新经验之上,看半导体巨头英特尔如何布局自动驾驶. 作者 | 屠敏 徐威龙 出品 | < ...

  9. Lyft开源L5自动驾驶数据集:55000个人工标注的3D注释框架,还有高清空间语义地图...

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI 今天,又有新的自动驾驶数据集开源了. 数据集来自Lyft,官方称作是目前同类产品中最大的公开数据集. 这份L5数据集内容丰富,加入了原始传感 ...

最新文章

  1. win2003登陸及關機設定
  2. bzoj 4710 [Jsoi2011]分特产 组合数学+容斥原理
  3. 在公司的局域网内,组长让你在自己的虚拟机部署项目,大家等着访问测试,该怎么办???...
  4. [云炬创业基础笔记]第七张创业资源测试14
  5. JavaFX鼠标点击事件
  6. 安防摄像头Onvif、RTSP、GB28181转web无插件直播卡顿分析
  7. C#关键字的个人理解与注释
  8. java演练 数组的逆序文字玩法 你是猪才怪
  9. 手把手玩转win8开发系列课程(22)
  10. telnet不通linux下tomcat端口
  11. 数学——对数公式log常识回顾
  12. 基金购买和赎回线下业务
  13. fastlane build 版本号自增
  14. [转]在低调中修炼自己
  15. ISO软件质量度量模型
  16. 常见的注册表修改大全
  17. 塔望3W消费战略全案丨火出天际的预制菜,能否拯救开饭焦虑?
  18. “我祝你不幸并痛苦”——约翰·罗伯茨毕业致辞
  19. Unity入门03——Unity脚本
  20. python小玩意——猜数字游戏

热门文章

  1. 关联分析-问题定义(1)‍♀️
  2. 如何解除计算机方向键问题,笔记本键盘上下左右键怎么解锁_笔记本电脑的上下左右键被锁住了如何解决-win7之家...
  3. SQL语言的四大功能
  4. 学习全栈在线教育实战项目(尚硅谷) 第一天
  5. nib but the view outlet was not set 错误的解决办法。
  6. clips系列二-clips调用外部函数
  7. 2020-09-19《GNU Radio软件无线电技术》白勇 胡驻华编著 笔记(1)
  8. Zeal - 离线 API 文档大全
  9. 如何绘制流程图?绘制流程图在线网站分享
  10. 【Effective C++ 条款03 笔记】尽可能使用const