mmdetection3d 踩坑记录

代码链接如下:https://github.com/open-mmlab/mmdetection3d

最近用mmdetection3d做一些研究,首先要训练的数据需要检测car和truck,选用的基础是pointpillars算法,使用的config是 hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py 为基础的配置文件,增加了truck类别,并且配置了相应的range和anchor的尺寸信息,修改number数量。

错误一

首先设置了少量的数据进行算法训练,发现训练的时候报错 object '\Truck\\' key,总体看的不太懂,后来用其他配置文件训练发现是一样的错误,错误原因如下:

dbinfos.pkl中是以dict存储的,有关键字,关键字为类别‘Car’,‘Truck’,而我所使用的少量数据集类别中缺少Truck只有Car的类别,所以报了上述的错误。

错误二

之后又发现了训练过程中的max_assign 和 anchor 的 size 尺寸不匹配,我反复检验了两者设置的数量是统一的,因此没有找到问题。

解决办法如下:

重新写一个config,config不从car的类别修改而来,而是类比于3class的配置文件,从头开始写相关的配置文件,启动了算法模型的训练。

感觉是新写的配置文件从其他配置文件二次继承的时候有可能会出现问题,所以使用单次继承,成功修改掉原有的配置。

错误三

在模型训练的过程中,又爆了错误,错误是 在voxelize.py中报的错

RuntimeError: CUDA error: invalid configuration argument,个人感觉是数据的问题,有可能是数据空缺等,但是我反复查找,没有空文件,后来思考可能是create data的时候,对数据做了reduce操作,有可能我的calib中P2和矩阵相乘后,velodyne_reduce中的数据缺少了很多的点,看到github的中的issue中有人存在数据为空的时候也会报这个错误,所以思考应该是reduce的时候把很多点消除掉了,因此需要注释掉create data的时候reduce的语句,防止产生空置的点云,在尝试一下是否是这个错误,明天更新。

错误四

在启动create数据集格式的时候,出现了ValueError:invalid literal for int() with base 10 '\n'

原因是由于我在创建ImageSets中的trainval.txt的时候,在最后一行多创建了一个空行,因此在生成数据的时候报了ValueError,将空行删除即可解决这个问题。

你可能感兴趣的:(深度学习,自动驾驶,python,深度学习)