基于Unreal游戏引擎的lidar传感器仿真及场景重建
目的:
- 自动驾驶中激光雷达传感器非常重要,是感知的重要数据来源。3D感知模块的开发和测试过程中需要大量的标注好的点云数据。
- 人工标注存在低效,存在一定错误率的问题。
- 通过Unreal游戏引擎,构建仿真lidar传感器,并根据路测数据,进行3D重建场景,就能够很好地克服人工标注的缺点。
- 假如基于3D重建1秒钟标注2帧3D数据,则每天可以标注17.28万帧无错的点云数据,假如有10台标注电脑,每天可以标注172.8万帧点云数据
技术方案:
- Unreal游戏引擎是游戏行业的标杆引擎,支持光线追踪
- Unreal提供singleLineTraceByChannel的c++ api,允许用户指定ray的起点和终点,如果ray在起点和终点之间打到3d object,会返回hitPoint.
- 以上就是lidar sensor的原理, 基于raytrace技术,并根据Velodyne的lidar参数构建仿真lidar sensor
- 我用的是Velodyne的32线lidar, 技术书册可以到Velodyne官网上下载
项目成败的关键:
- 仿真lidar sensor是否能够模拟噪声,这里通过引入gassusian dirtribution,加入噪声,下面会有理想lidar和gauss噪声lidar的对比
- 能否有游戏美工,构建足够丰富的车辆,行人,电动车等的3d模型
项目注意事项:
- 高斯分布的方差不宜设置的过大
- 一定要注意Velodyne的lidar在垂直方向上是不均匀分布的,市面上的仿真软件,如PreScan并不支持这种垂向不均匀分布特性。
项目成果:
Velodyne采集的场景:
不带噪声的lidar sensor重建的场景:
高斯噪声的lidar sensor重建的场景(5mm gauss):
高斯噪声的lidar sensor重建的场景(10mm gauss):