事件相机的数据集与仿真器

本文转载自此微信推送,作者即博主

0、为什么需要数据集与仿真器?

在研究中,为了比较不同算法的优劣,研究人员不能用自己采集的数据,这样和别的方法比较没有太大的意义。所以公开的数据集是评价这些方法的通用数据。而仿真器,是按照事件相机的成像原理,模拟其生成数据的样子,可以便于使用者采集自己想要的数据。

当然最重要的一点,是事件相机目前价格较高,许多人无法像买USB相机这样随性购买。下面我们简单看几家公司的商品和售价:
在这里插入图片描述

(图:一些事件相机厂商的主流产品与价格,数据由个人业务咨询获得)

可以看到一款事件相机动辄几万。所以数据集和仿真器可以极大程度方便研究的进行,同时避免了硬件使用过程中的各种各样的问题。

1、数据集

在github官网整理出了许多数据集,更多细节请参考网址:https://github.com/uzh-rpg/event-based_vision_resources#datasets。包括的数据集有:光流、图像恢复、VO与SLAM、图像分割、图像识别等。下面介绍一些围绕SLAM的数据集。

ViViD: Vision for Visibility Dataset

提供Lidar,RGBD,EB,IMU等数据,室内:光照亮好/局部光照/没有光照+稳定运动/不稳定运动/极其不稳定运动,室外:白天/夜间,标定等数据,下载需要申请。

UZH-FPV Drone Racing Dataset

FPV飞机拍摄的室内/室外高速运动的场景

VSEC: The Multi Vehicle Stereo Event Camera Dataset: An Event Camera Dataset for 3D Perception, 2018

车载传感器,道路场景,配合有lidar/IMU等传感器,同时是少见的双目事件相机数据

DDD17: DAVIS Driving Dataset 2017

车辆驾驶场景,高速路,包括速度/GPS等多种传感器数据;

DDD17+: 未发布,在准备论文。比DDD17多一些数据量。

伴随论文“Event-based, Direct Camera Tracking from a Photometric 3D Map using Nonlinear Optimization”公开的数据,主要为室内场景,包括EB和RGBD,IMU。除此之外,还有少量的仿真和模拟数据。同时也是Gallego等人在PAMI 2018发表的Event-Based, 6-DOF Camera Tracking from Photometric Depth Maps论文使用的数据集
在这里插入图片描述
(图:DAVIS 240C Datasets部分数据。提供text和rosbag两种格式)

这里重点介绍一款SLAM数据集,DAVIS 240C Datasets,伴随论文“The Event-Camera Dataset and Simulator: Event-based Data for Pose Estimation, Visual Odometry, and SLAM”公开的数据集。

包括室内/室外/办公室/盒子/几何形状/室外行走/旋转等多段数据,个人认为是较为合适的通用场景的数据集,也是后续许多事件相机所采用的数据集,被后面的论文中描述为:introduced as a benchmark for event-based visual (inertial) odometry。同时里面的仿真器,是仿真器ESIM的早期工作(采用的是高速定频采样)。而ESIM采用了根据变化速率改变采样速率的方式,更加贴近真实情况(详见第3节和相关论文)。主要提供了两种数据格式:便于ROS下运行的.bag格式,与更普遍的.zip文件(包含最基础的数据event和image数据)。官方链接:http://rpg.ifi.uzh.ch/davis_data.html

2、数据集的运行

这里介绍两款数据集运行的软件,基于java环境的jAER与基于ROS环境的rpg_dvs_ros。

jAER

jAER是基于java环境的一款软件,可以读取一些格式的数据集,安装配置需要安装java的运行环境,同时支持windows和linux。我个人尝试配置,总是会遇到各种问题,无论是windows还是linux都没配置成功。不建议使用。如感兴趣请访问:github:https://github.com/SensorsINI/jaer

rpg_dvs_ros

这个是ETH的Robotic and Perception Group开发的ROS环境下的运行软件,可以配套运行ETH许多开源的代码,感觉做得还算不错,可以考虑安装使用。具体安装方法参考github即可:https://github.com/uzh-rpg/rpg_dvs_ros

注意一点,ubuntu18安装的ROS为melodic,在执行上述链接的指令时,需要将catkin config这一句进行替换,否则可能会遇到问题。具体的替换内容参考了rpg_esim的wiki:https://github.com/uzh-rpg/rpg_esim/wiki/Installation-(ROS-Melodic)

3、仿真器

仿真器是“模拟事件相机生成数据方式”的软件,既然是模拟,那肯定与真实的不一样,但好歹可以尽可能的像。这里大力推荐ETH的ESIM。ESIM也是基于ROS环境。
在这里插入图片描述
(图:(a)之前仿真器采集原理vs (b)ESIM采集原理。ESIM采用自适应采用方式采集数据,使变化速度快的时刻采样快,尽可能的保证了数据不丢失)

ESIM的源码,参考github:https://github.com/uzh-rpg/rpg_esim

安装过程也参考github上的wiki即可:https://github.com/uzh-rpg/rpg_esim/wiki/Installation
在这里插入图片描述
(图:ESIM仿真器运行环境)

除此之外,补充介绍两个仿真器,但不推荐使用。

一个是2012年的论文“Live demonstration: Behavioural emulation of event-based vision sensors”中提出的一款实时将USB相机数据转化为事件数据的仿真器,鉴于时间较早,不建议首先使用。

其次是“Interiornet: Mega-scale multi-sensor photo-realistic indoor scenes dataset”中构建的仿真器,这个仿真器极其强大,创建了上万种真实场景的三维模型,能够生成单目、双目、RGBD、事件相机等多种数据,但毕竟不是专业做事件相机的仿真器,随便看看就好。

4、结语

ETH做了大量的在数据集、运行环境与仿真器方面的工作,从公开的代码来看,基本都采用了ROS环境。所以个人建议,一律采用ROS环境进行研究,方便使用前人的工作。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介   本书从实践的角度出发,详细介绍3D游戏开发的高级技术,并具体描述了一个游戏引擎的构建过程。全书着重讨论三个主题:游戏开发的一般过程;实时渲染过程;角色动画。所有主题均围绕一个具体的游戏开发系统Fly3D SDK2.0加以介绍。   本书旨在为当今的三维游戏引擎技术提供一个综合的解决方案,使读者尽快地进入开发者角色,了解整个游戏的开发过程并初步具备游戏引擎开发能力。   本书适合作为高等院校相关专业的教学参考书,同时可供相关技术人员和游戏开发人员阅读。 编辑推荐   本书从实践的角度出发,详细介绍3D游戏开发的高级技术,并具体描述了一个游戏引擎的构建过程。全书着重讨论三个主题:游戏开发的一般过程;实时渲染过程;角色动画。所有主题均围绕一个具体的游戏开发系统Fly3D SDK2.0加以介绍。   本书旨在为当今的三维游戏引擎技术提供一个综合的解决方案,使读者尽快地进入开发者角色,了解整个游戏的开发过程并初步具备游戏引擎开发能力。   本书适合作为高等院校相关专业的教学参考书,同时可供相关技术人员和游戏开发人员阅读。 作者简介   Alan Watt 英国谢菲尔德大学计算机科学系讲师,是该校计算机图表学研究室主任,曾经编写过多本优秀著作,包括《3D计算机图形学》和《The Computer Lmage》。 Fabio Policarpo 工作在里约热内卢的软件开发者,他是Paralelo计算机公司的创始人,目前正致力于三维动作多玩家游戏的研究。 目录 出版者的话 专家指导委员会 译者序 前言 第一部分 高级游戏系统剖析 第1章 高级游戏系统剖析I:构造过程和静态光照 1.1 数据结构 1.1.1 顶点 1.1.2 面 1.1.3 包围盒 1.2 构造过程 1.2.1 从场景几何中创建BSP树 1.2.2 路径规划的凸体和PVS计算 1.2.3 处理复杂的地形 1.2.4 BSP叶节点中的面 1.2.5 寻找叶凸体 1.2.6 凸体和伪人口 1.2.7 潜在可视集 1.3 光照贴图的构造 1.3.1 生成光照贴图的坐标 1.3.2 光照贴图的打包 1.3.3 对光照贴图的解释 1.4 BSP管理 1.5 高级静态光照——辐射度 附录1.1 构造实践 附录1.2 辐射度理论基础 第2章 高级游戏系统剖析Ⅱ:实时处理 2.1 视见和BSP 2.1.1 生成视见约束体的面 2.1.2 远近裁剪面和视见约束体 2.2 照相机控制 2.3 使用BSP的基本碰撞检测和反弹 2.3.1 碰撞和BSP遍历 2.3.2 粒子,场景检测和反弹 2.4 特殊的碰撞检测和反弹 2.4.1 AABB的定义 2.4.2 AABB类的定义和静态成员的定义 2.4.3 碰撞检测和碰撞反弹 2.4.4 使用AABB的伪碰撞反弹 2.4.5 使用AABB的碰撞检测 2.4.6 AABB顶点与场景面相交 2.4.7 场景顶点与AABB面相交 2。4.8 AABB边与场景边相交 2.4.9 更精确的碰撞检测 2.4.10 使用碰撞阈值 2.5 基本的路径规划 附录2.1 实时处理的演示 第3章 高级游戏系统剖析Ⅲ:软件设计与应用编程 3.1 应用的种类 3.1.1 插件 3.1.2 前端 3.1.3 工具 3.2 Fly3D引擎体系结构 3.2.1 FlyMath 3.2.2 FlyDirectX 3.2.3 FlyRender 3.2.4 FlyEngine 附录3.1 编写一个插件 第二部分 实时渲染 第4章 实时渲染 4.1 简介 4.2 顶点、像素和贴图 4.2.1 基本的逐像素着色 4.2.2 着色和坐标空间 4.2.3 25年来主流的插值着色方法和颜色贴图 4.2.4 标量表示 4.3 因式分解法 4.3.1 使用因式分解着色模型的逐像素着色——各向同性模型 4.3.2 使用因式分解着色模型的逐像素着色——各向异性模型 4.4 BRDF和真实材质 4.5 使用BRDF进行逐像素着色 4.6 环境贴图参数化 4.6.1 环境贴图参数化:立方映射 4.6.2 环境贴图参数化:球面映射 4.6.3 环境贴图参数化:对偶抛物面贴图 4.6.4 环境贴图——可比点 4.6.5 立方贴图和向量规范化 4.7 实现BRDF:可分离的近似 4.8 着色语言和着色器 4.8.1 着色语言:简单的历史回顾 4.8.2 RenderMan着色语言 4.8.3 实时渲染的着色语言 第5章 实时渲染:实践 5.1 基本着色器 5.1.1 渲染状态 5.1.2 着色器排序 5.1.3 着色器类的实现 5.2 渲染状态 5.2.1 全局设定 5.2.2 局部设定 5.3 着色器实例 5.3.1 环境映射和铬映射效果——玻璃、金属和铬 5.3.2 移动发光告示牌 5.3.3 简单栅栏效果 5.3.4 高级栅栏效果 5.3.5 监视器效果 5.4 实时硬件渲染 5.4.1 顶点编程 5.4.2 像素编程 5.4.3 使用寄存结合器的像素编程 5.4.4 纹理地址编程 5.4.5 纹理地址编程——Phong映射 5.4.6 顶点和像素编程以及多步着色器 5.5 动态纹理 5.6 特效 5.6.1 燃烧尾迹 5.6.2 加速器 5.6.3 脉冲星 附录5.1 使用和探索着色器 附录5.2 NVIDIA GeForce 3上的顶点编程 附录5.3 NVIDIA寄存结合器操作 第6章 几何处理 6.1 简介 6.2 推动因素和定义 6.2.1 离线和实时阶段 6.2.2 拓扑因素 6.2.3 离散简化与连续简化 6.2.4 物体内部分辨率变化 6.2.5 对称性/可逆性 6.2.6 局部简化操作 6.3 排序(误差)标准 6.3.1 排序标准——外观相似 6.3.2 排序标准——局部体积不变 6.3.3 排序标准——二次误差度量 6.3.4 排序标准——简化外壳 6.4 简化与属性 6.4.1 简化与游戏纹理 6.4.2 简化和蒙皮模型 6.4.3 算法框架 6.4.4 顶点去除算法的重新三角形划分 6.5 实例分析 6.5.1 实例分析1——渐近式网格技术 6.5.2 实例分析2——使用微分几何 6.5.3 实例分析3——网格重新划分算法MAPS 附录6.1 数学背景 附录6.2 演示 第三部分 动画制作 第7章 角色动画 7.1 简介 7.2 顶点动画与合成 7.3 骨架动画 7.4 低层次动画管理 7.4.1 行进的路径规划 7.4.2 骨架动画和面向对象的动画控制 7.4.3 对障碍物的躲避 7.4.4 路径规划总结 附录7.1 用四元数描绘旋转 附录7.2 四元数的实现 附录7.3 角色动画中效率的考虑 第8章 动画成形方法 8.1 简介 8.2 样条框架 8.3 自由形状变形 8.4 扩展自由形状变形(EFFD) 8.5 曲线变形——铰线 8.6 皮肤控制 8.6.1 面向表面的自由形状变形(SOFFD) 8.6.2 骨架皮肤精致化 8.6.3 组合皮肤和形状混合 附录8.1 使用径向基函数进行离散数据插值 第9章 高级角色动画之要素 9.1 引言——一种拟人的游戏界面 9.2 将语言表述转变为动画——示例 9.2.1 IMPROV(纽约大学媒体研究实验室) 9.2.2 PAR体系结构(宾夕法尼亚大学人体建模和仿真中心) 9.2.3 具体化的对话界面代理(MIT媒体实验室) 9.2.4 游戏结论 9.3 面部动画、视觉语音和跟踪 9.4 用于控制、渲染和跟踪面部网格的模型 9.4.1 基于图像的建模、渲染和跟踪 9.4.2 跟踪方法 9.4.3 参数化 9.4.4 伪肌肉模型 9.4.5 面片技术 9.5 视觉语音 9.6 面部动画和MPEG-4 9.7 渲染问题 9.8 总结和问题 9.8.1 参数化与照片真实性 9.8.2 网格表示 9.8.3 皮肤的渲染 9.8.4 没有声音很多面部动画更好看 9.8.5 情感和语音 附录9.1 一个伪肌肉模型的实现 第10章 基于运动捕捉的角色动画 10.1 简介 10.2 运动数据 10.3 骨架和MoCap BVH格式 10.4 运动数据的基本处理 10.4.1 加速和减速运动 10.4.2 混合和时间扭曲 10.4.3 对齐运动序列 10.4.4 运动扭曲 10.5 MoCap中的插值 10.5.1 B样条表示法 10.5.2 运动混合——动词和副词 10.6 经典信号处理和MoCap 10.6.1 傅里叶理论 10.6.2 傅里叶理论和非周期数据 10.6.3 傅里叶理论和采样数据 10.6.4 采样和走样现象 10.6.5 反走样滤波器 10.6.6 时间域中的过滤——卷积 10.7 信号处理和MoCap数据 10.7.1 傅里叶域中的插值/外推法 10.7.2 使用拉氏算子的多分辨率滤波 10.8 运动编辑:基于约束的方案 10.8.1 运动中的动力学约束 10.8.2 运动中的运动学约束 10.8.3 每帧重定位法 10.8.4 时空法 附录10.1 示范 第11章 反向运动学原理 11.1 例子——二链臂 11.2 雅可比矩阵 11.3 IK方法 11.3.1 使用雅可比阵的微分方法 11.3.2 最优法 11.3.3 循环坐下降法(CCD) 11.4 反向运动学的实践方案 11.4.1 混合方法——分析法+约束最优化法 11.4.2 混合方法——三阶段:分析法+约束最优化+分析法 11.4.3 防止自碰撞 11.4.4 IK与运动目标 参考文献

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值