CenterFusion代码复现

CenterFusion代码复现

参考代码:GitHub - mrnabati/CenterFusion: CenterFusion: Center-based Radar and Camera Fusion for 3D Object Detection

一、环境配置

注意:此次复现使用Featurize服务器实现,默认环境Python 3.7,如何在该服务器上保存用户自建虚拟环境可参考在 Featurize 中如何保存自建环境_哔哩哔哩_bilibili

1.安装虚拟环境(可选):

mkvirtualenv centerfusion

此步骤在服务器上可以忽略

2.安装PyTorch:

pip install torch torchvision

这里需要在服务器上永久保存该环境,故改为pip install --user torch torchvision

3.安装 COCOAPI:

pip install cython

pip install -U 'git+[GitHub - cocodataset/cocoapi: COCO API - Dataset @ http://cocodataset.org/](https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI)

同上,改为

pip install --user cython

pip install --user -U 'git+[GitHub - cocodataset/cocoapi: COCO API - Dataset @ http://cocodataset.org/](https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI)

4.安装CenterFusion仓库,并设置CF_ROOT路径

CF_ROOT=/path/to/CenterFusion git clone --recursive https://github.com/mrnabati/CenterFusion.git $CF_ROOT

这里我手动将CenterFusion库导入到服务器的work目录下,并将CF_ROOT路径改为CF_ROOT=/home/featurize/work/CenterFusion

5.安装需求文件:

cd $CF_ROOT

pip install -r requirements.txt

同上,改为pip install --user -r requirements.txt

6.创建可变形卷积库:

cd $CF_ROOT/src/lib/model/networks/DCNv2

./make.sh

CenterFusion代码复现_第1张图片

注意:如果目录中不存在 DCNv2 文件夹,需手动下载

cd $CF_ROOT/src/lib/model/networks

git clone https://github.com/CharlesShang/DCNv2/

这里Featurize虚拟机中是不存在DCNv2文件夹的,需要手动从GitHub上下载对应版本,若版本过高会报错。导入后重新运行上述代码。

二、准备数据集

1.从nuScenes上下载数据集

这里数据集版本很多,有两种办法可以实现复现要求。

PlanⅠ:按照Github上的目录结构,分别下载Full dataset(v1.0)中的Mini、Trainval(Trainval可以只选择其中一个part)和Test版本(三个数据集,共90G左右),并按照目录结构导入到服务器中。
CenterFusion代码复现_第2张图片

CenterFusion代码复现_第3张图片

PlanⅡ:只下载Full dataset(v1.0)中的Mini版本,这样做需要将convert_nuScenes.py文件中的train、val和test部分注释掉。

CenterFusion代码复现_第4张图片

CenterFusion代码复现_第5张图片

2.解压缩目录中下载的文件,并导入${CF_ROOT}\data\nuscenes

这里如果想在服务器上实现,需要先将下载的数据集文件v1.0-mini.tar的后缀名改为tar.gz,再导入到服务器中,服务器会自动解压缩并存入数据集下载目录里。

CenterFusion代码复现_第6张图片

3.运行convert_nuScenes.py文件,将 nuScenes 数据集转换为 COCO 格式

同上,如果在服务器上实现,需要修改convert_nuScenes.py文件中的数据集路径。

CenterFusion代码复现_第7张图片

三、预训练模型

CenterFusion代码复现_第8张图片

原作者在google drive上提供了预训练好的模型。

四、训练

CenterFusion代码复现_第9张图片

五、测试

CenterFusion代码复现_第10张图片

这里贴一下测试结果。

CenterFusion代码复现_第11张图片

六、查看可视化结果

1.在test.sh中添加--debug 4参数

CenterFusion代码复现_第12张图片

2.将CenterFusion/src/lib/utils下的debugger.py做部分修改

具体修改方法可参考debug mode in test.sh gives error (-5:Bad argument) in function ‘line’ · Issue #42 · mrnabati/CenterFusion · GitHub

CenterFusion代码复现_第13张图片

3.在CenterFusion/exp/ddd/centerfusion/debug中查看可视化结果

你可能感兴趣的:(目标检测,人工智能,神经网络,图像处理,自动驾驶)