Fast Bev在ubuntu上的复现过程以及error汇总

	fast bev是最近新出的3D目标检测算法,在复现的过程中出现了很多问题,在此做个记录,希望大家能避开我躺的坑

1、安装依赖

在安装时requirements/optional.txt中的waymo-open-dataset-tf-2-1-0==1.2.0和requirements/tests.txt中的codecov死活找不到,直接把它俩注释掉,后面发现注释掉好像也没出现什么问题

2、数据集制作

因为原作者公开的pkl文件是完整数据集上生成的,而完整数据集太大了,下载不方便,所以可以下载mini数据集自己生成pkl文件,生成方式如下

1、下载mini数据集:在这里插入图片描述
2、创建data/nuscenes文件夹,使用 tar zxvf v1.0-mini.tgz -C data/nuscenes/命令把mini压缩包解压到nuscenes,解压后是这样的
在这里插入图片描述
3、把v1.0-mini文件夹改名为v1.0-trainval在这里插入图片描述
4、把tools/create_data.py 中的235-242行代码注释
Fast Bev在ubuntu上的复现过程以及error汇总_第1张图片

4、在fastbev目录下运行:
python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes
运行成功后会在data/nuscenes里生成两个pkl文件
在这里插入图片描述5、修改tools/data_converter/nuscenes_seq_converter.py的第15行为:
在这里插入图片描述
并在fastbev目录下运行:
python tools/data_converter/nuscenes_seq_converter.py
成功后会生成两个train…max60.py和val…max60.py文件Fast Bev在ubuntu上的复现过程以及error汇总_第2张图片到此数据及构建完成

3、test.py所需参数解析

1、‘config’:模型运行时所需的配置文件,在config/fastbev下面有6个m0-m6,选择与自己下载的模型对应的文件即可
Fast Bev在ubuntu上的复现过程以及error汇总_第3张图片
2、‘checkpoint’:作者训练好的模型参数’epoch_20.pth’
3、‘–fuse-conv-bn’:是否把conv和bn融合,可提高运行速度
4、‘–eval’:评价指标,3D目标检测选择’bbox’
5、‘–show’:是否把结果直接打印到图片上,原作者代码还没写好,加上这个参数会报错
6、‘–out’:保存推理的结果文件,自己创建一个out.pkl文件即可

4、运行test.py时遇到的问题:

1、把下载的模型参数文件放在fastbev目录下,并创建一个‘out.pkl’和一个result文件夹,运行:

python tools/test.py "configs/fastbev/exp/paper/fastbev_m2_r34_s256x704_v200x200x4_c224_d4_f4.py" "epoch_20.pth" --out output.pkl --eval bbox --show-dir result --show

2、报错1:缺少地图信息
FileNotFoundError: NuScenesMultiView_Map_Dataset2:
[Errno 2] No such file or directory: ‘./data/nuscenes/maps/expansion/singapore-hollandvillage.json’
解决:去nuscenes官网下载最新的地图信息:
Fast Bev在ubuntu上的复现过程以及error汇总_第4张图片必须要下载最新的,不然也会报错
解压到data/nuscenes文件夹并替换掉原来的maps文件夹,
在这里插入图片描述
3、ImportError: Please install petrel_client to enable PetrelBackend.
在这里插入图片描述
解决办法:修改configs/fastbev/exp/paper里的配置文件,我的是146行左右,把注释打开,把147-150代码注释掉:
Fast Bev在ubuntu上的复现过程以及error汇总_第5张图片
4、ValueError: too many values to unpack (expected 3)
在这里插入图片描述
前文说过,原作者的可视化代码还有点问题,所以只要在输出参数中加入:‘–show’,就会报错,
解决,不加‘–show’,运行以下命令即可:

python tools/test.py "configs/fastbev/exp/paper/fastbev_m2_r34_s256x704_v200x200x4_c224_d4_f4.py" "epoch_20.pth" --out output.pkl --eval bbox --show-dir result 

作者也提供了可视化的脚本,步骤:1、先运行test.py把推理结果保存到output.pkl中,2、在fastbev目录运行tools/misc/visualize_results.py文件,运行以下代码:

python tools/misc/visualize_results.py configs/fastbev/exp/paper/fastbev_m2_r34_s256x704_v200x200x4_c224_d4_f4.py --result output.pkl --show-dir result

5、运行可视化脚本的错误(mmp怎么这么多错误)

1、AssertionError:assert len(_list) == len(sort)
Fast Bev在ubuntu上的复现过程以及error汇总_第6张图片
解决办法:
进入到:Fast -BEV/mmdet3d/datasets/nuscenes monocular_dataset.py,找到192行修改成下面这样:
Fast Bev在ubuntu上的复现过程以及error汇总_第7张图片
2、ValueError:Could not find a backend to open ‘show_dir/video_pred.mp4’ ‘with iomode ‘wI’’
Fast Bev在ubuntu上的复现过程以及error汇总_第8张图片
解决办法:安装那两个模块即可:

pip install imageop[ffmpeg]
pip install imageio[pyav]

运行成功后就会在result目录生成两个渲染后的视频文件:
Fast Bev在ubuntu上的复现过程以及error汇总_第9张图片
Fast Bev在ubuntu上的复现过程以及error汇总_第10张图片
至此,Fast BEV复现完成,train.py同样按此方法运行,不过需要添加一个预训练文件

你可能感兴趣的:(目标检测,人工智能,计算机视觉)