DDAD是一个自动驾驶数据集,有6个摄像头的RGB数据、lidar点云数据,以及相应的Pose、内参、外参、2d 3d box标注、2d semantic标注。
DDAD数据集:
GitHub – TRI-ML/DDAD: Dense Depth for Autonomous Driving (DDAD) dataset.
DDAD数据集调用demo: https://github.com/TRI-ML/DDAD/blob/master/notebooks/DDAD.ipynb
调用DDAD数据集所需包–dgp:
GitHub – TRI-ML/dgp: ML Dataset Governance Policy for Autonomous Vehicle Datasets
dgp包的安装
基于docker:
https://github.com/TRI-ML/dgp/blob/master/docs/GETTING_STARTED.md
基于conda虚拟环境(我使用的):
https://github.com/TRI-ML/dgp/blob/master/docs/VIRTUAL_ENV.md
参考Pytorch调用DDAD数据集代码:
https://github.com/TRI-ML/packnet-sfm
参考
demo
进行数据可视化,通过 generate_depth_from_datum = ‘lidar’ 得到的深度图如下:
ddad_train = SynchronizedSceneDataset(
DDAD_TRAIN_VAL_JSON_PATH,
split='train',
datum_names=DATUMS,
generate_depth_from_datum='lidar'
)
调用训练集共得到深度图12650个samples,每个samples中有6个相机数据+1个点云数据。可视化相机数据及点云深度图如上。其中深度图看起来是未经转换的稀疏点云图。
如果使用3d packing的数据集调用代码,会报错,因为我使用的dpg1.0和3d packing所使用的dpg部分函数不匹配,所以报错,提问在
issue
. 通过git checkout [id], 回退版本后可以看到缺失的 get_datum_index_for_datum_name 函数的实现。但回退版本通过pip install . 安装会报错。
因此,还是采用最新dpg版本,基于conda虚拟环境安装。去掉generate_depth_map函数,改为通过 generate_depth_from_datum = ‘lidar’ 生成深度图,如上图所示。
——
数据格式:
input 经过stacked_tensor后,输出为字典格式数据,对应键值对如下:
‘rgb’ : torch.Size([6, 3, 384, 640])
‘rgb_context’ : [ torch.Size([6, 3, 384, 640]), torch.Size([6, 3, 384, 640])]
‘depth’: torch.Size([6, 1, 384, 640])
……
———–
发现dgb库其实可以通过安装最新版本的库后,再git checkout回退版本,回退不需要重新安装。
调试packnet-sfm代码:
依赖库基本都可以pip install安装,但是其中horovod需要安装NCCL V2,在我的环境下,因为无法联网且没有sudo权限,因此跳过了这一步,将horovod相关的代码全部注释,改为单GPU下运行。
其中测试过程会发生
issue
报错,参考此处解决。
至此,已经可以实现单GPU训练测试代码通过,但运行过慢,需要优化