当mmdetection3d环境安装成功后,可看上一篇如何安装mmdetection3d
mmdetection3d官网:Log Analysis — MMDetection3D 1.0.0rc1 documentation
1 准备工作
kitti数据集下载,下面是我的百度网盘里的kitti数据集,有需要的自取
链接: https://pan.baidu.com/s/1QlgVfl3vBbGEfF0QCo8N6A 提取码: milu
1.1 创建数据目录:
mkdir -p data/kitti/ImageSets data/kitti/testing data/kitti/training
也可以不通过终端输入命令,直接在mmdetection3d/data/kitti目录下新建ImageSets、testing、training这三个文件夹。
创建好之后,将下载的kitti数据集中的压缩包全部解压,将数据集对应按照如下方式摆放。
其中,ImageSets的内容,是将数据集划分为训练和测试及验证。
不会自己划分也没关系,官网文档 ,已经给出具体方式了。
wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/test.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/test.txt wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/train.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/train.txt wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/val.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/val.txt wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/trainval.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/trainval.txt
在终端依次输入以上四条命令,执行完后就可以看到上图ImagSets文件夹下的内容了。 其中内容如下。
test.txt : 7518行 train.txt :3712行
val.txt : 3769行 trainval.txt : 7481行
1.2 数据预处理
以上准备工作做好后,就可以进行预处理了。
python tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti --extra-tag kitti
数据预处理完后,可以看到data/kitti目录下生成了一些.pkl和.json文件。
1.3 开始训练数据
选择相应的模型配置文件,开始训练。
python tools/train.py configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py
训练过程时间有点久,不用一直在边上等着。我大概训练了十几个小时。
1.4 开始测试
数据训练完,可以进行测试了。
python tools/test.py configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py checkpoints/epoch_80.pth --eval mAP --options 'show=True' 'out_dir=./data/pointpillars/show_results'
注意:这条语句 checkpoints/epoch_80.pth 可能会报错,你要找到你训练后生成的./epoch_80.pth放在了什么位置。例如我的测试代码如下:
python tools/test.py configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py work_dirs/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class/epoch_80.pth --eval mAP --eval-options 'show=True' 'out_dir=./data/pointpillars/show_results'
当出现如下所示结果,就OK了。
使用show=True,进行可视化的时候,需要安装open3d包,注意:版本问题,我最开始安装的是open-python==0.7.0在可视化的时候,出现闪屏。 后来重新安装了open3d==0.13.0成功可视化。
pip install open3d==0.13.0
1.5 可视化结果
1、鼠标可视化控制
鼠标左键
+ 拖拽
:可以旋转
3D图形Ctrl
+鼠标左键
+拖拽
:可以移动
3D图形按下鼠标滚动键
+ 拖拽
:也是可以移动
3D图形Shift
+ 鼠标左键
+ 拖拽
:可以翻转3D图形滚动鼠标滚轮
:放大和缩小
3D图形H
:打印帮助信息P
或PrtScn
:截图当前的视图O
:捕获当前的渲染设置Alt+Enter
:在全屏和窗口模式之间切换2 、点云颜色控制
0
:默认的点云颜色渲染,默认点云被渲染成灰色
1
:渲染点云颜色,和0的时候效果一样2
:把x的坐标值作为颜色渲染3
:把y的坐标值作为颜色渲染4
:把z的坐标值作为颜色渲染9
:正常颜色,也是灰色以上这些大家可以自己是尝试一下
如:按D,捕捉的深度图
按2, 把x的坐标值作为颜色渲染。
以上就是pointpillars模型训练及可视化的全过程了。