基于NeRF的自动驾驶动态场景生成任务中,最重要的往往是数据的处理过程,也就是各个坐标系之间的转换关系,这里记录一下自己搞懂的基本流程,防止后续遗忘,能够温习。
1.数据需求
自动驾驶任务中,一般主车会有几个设备,分别为相机、lidar、和IMU定位传感器。需要的参数为:相机的内参:焦点焦距(fx,fy,cx,cy)或者3x3的内参矩阵,主要用于2D像素坐标系和3D相机坐标系的转换;相机的外参:一般是3x4或4x4的空间变换矩阵(一般是相机到lidar坐标系的转换(这种情况下还需要lidar到IMU或者lidar到世界坐标系的转换参数)、或相机到IMU坐标系的转换),或者是分开的3维平移向量和4元组参数,其中4元组参数能够通过变换转为3x3的旋转矩阵,转换关系如下(有专门的python函数直接转换):
# Rx, Ry, Rz, Rw = quaternion
# rotation_matrix = np.array([
# [1 - 2 * (Ry**2 + Rz**2), 2 * (Rx * Ry - Rz * Rw), 2 * (Rx * Rz + Ry * Rw)]