Parking Trajectory Prediction in Simple Scenario based on LSS and Detr Decoder
11.20.5.mp4
pytorch 2.1.2
torchvision 0.16.2
python 3.8.8
- 一套基于车身信号和avm的数据集生成方案(C++)
- 一套avm可视化代码(python)
- 一些基于ParkingE2E(https://github.com/qintonguav/ParkingE2E) 的魔改模型优化实验(python)
- 开源pretrain model和训练数据
CUDA_VISIBLE_DEVICES=1,2,3,4 python train.py
python img_inference_avm --tasks_path=demo_bag
e2e_dataset/
├── train/ (训练集、验证集)
│ ├── demo_bag/ (由ros转出来的去畸变数据)
| |——1708689773_right/
| |——rgb_front/ (undistorted image)
| |——rgb_left/
| |——rgb_right/
| |——rgb_rear/
| |——measurements/ (世界坐标系下ego的位姿roll,yaw,pitch,x,y,z, 世界坐标系定义为第一帧的坐标系)
| |——parking_goal/ (target point)
| |——camera_config_right_hand.json (camera info)
json中以roll,yaw,pitch来记录相机的外参R,x,y,z为外参t
roll,yaw,pitch:world2camera (右手定则)
x,y,z : world watch camera position / coor camera2world 坐标系表征与坐标系转换区别:https://zhuanlan.zhihu.com/p/618604141
内参:fov,image_h,image_w
这里的camera坐标系形态是x为光轴,z垂直地面向上,y朝左手. 在训练代码中会用特定的矩阵将其转换成下图,然后进入到LSS模块。
,
轨迹点保存在measurements中, 假设一段路径包含200帧图像, 那么就有200个轨迹点. 即基于世界坐标系(第一帧)的ego位姿(roll, yaw, pitch, x,y,z).
x,y,z: world watch ego
roll yaw pitch: world2ego
- 用DETR Decoder替换原有的轨迹点解码头(text decoder), 解决轨迹预测方向反向的问题(text decoder是串行迭代的流程,假如前面的预测误差对后面影响很大)
- 用简单的avgpool + FC 直接预测轨迹点.
- 直接输入BEV Image, 并用EfficientNet, Resnet, SwinTransformer, VIT等backbone直接提取图像特征(替换掉将4张图象经LSS生成BEV Feature的方法) 实验结论:LSS + DETR Decoder的结构可以得到最优结果
pretrain model
train data