mmdetection3d 训练

news/2024/7/24 2:30:44 标签: mmdetection3d, second, python, 人工智能, 深度学习

        本节以SECOND算法为例,简要介绍mmdetection3d second算法训练过程,含数据和python源码详细介绍。

1 mmdetection3d环境安装

        mmdetection3d环境详细安装和调试请参考:【mmdetection3dmmdetection3d安装详细步骤_Coding的叶子的博客-CSDN博客。

2 KITTI数据集准备

        mmdetection3d的kitti原始数据集主要由三部份组成,即ImageSets、training、testing。ImageSets主要是定义训练、验证和测试的样本名称。training文件夹下包含校准数据(calib)、图像数据(image_2)、标签数据(label_2)、激光雷达数据(velodyne)。testing文件夹下包含校准数据(calib)、图像数据(image_2)、激光雷达数据(velodyne)。kitti文件夹在mmdetection3d/data/目录下,其自身构成如下图所示:

         KITTI数据集是三维点云算法常用的数据集之一,网络上有大量介绍资料,这里再不进行赘述。 为了快速进行算法调试、训练、评估和验证,以及快速下载,我制作了一个mini kitti数据集,数据集的文件目录结构与完整KITTI数据集保持一致。其中,小型的KITTI数据集,即 mini kitti保存了20个训练样本和5个测试样本。下载地址为:minikitti数据集_kittimini数据包-深度学习文档类资源-CSDN下载。

        下载的数据包含4个部分,即激光雷达数据velodyne、图像数据image_2、校准数据calib和标注数据label_2。如果需要对应的ImageSets,请下载:train_val_testforminikitti-深度学习文档类资源-CSDN下载,将下载的文件夹重名为ImageSets即可。

          关于KITTI各个部分的介绍请分别参考以下内容:

KITTI数据集简介(一) — 激光雷达数据_Coding的叶子的博客-CSDN博客_雷达数据集

KITTI数据集简介(二) — 标注数据label_2_Coding的叶子的博客-CSDN博客_kitti数据集标注

KITTI数据集简介(三) — 图像数据image_2_Coding的叶子的博客-CSDN博客

KITTI数据集简介(四) — 图像数据calib_Coding的叶子的博客-CSDN博客

3 KITTI数据预处理

        mmdetection3d针对各个数据集由专门的处理脚本。针对KITTI数据集,mmdetection3d 通过运行下述脚本完成数据集基本的预处理。

python tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti --extra-tag kitti

        运行上述脚本之后,会在data/kitti/目录下生成4个pkl文件和4个json文件,即: kitti_infos_train.pkl、 kitti_infos_val.pkl、 kitti_infos_trainval.pkl、 kitti_infos_test.pkl、kitti_infos_train_mono3d.coco.json、kitti_infos_val_mono3d.coco.json、kitti_infos_trainval_mono3d.coco.json、kitti_infos_test_mono3d.coco.json。

4 SECOND训练

        mmdetection3d second的训练脚本如下:

 python tools/train.py  configs/second/hv_second_secfpn_6x8_80e_kitti-3d-car.py

        直接运行上述命令,可能会报GPU显存不够的错误。为了尽量避免这个问题,需要调小batch size。mmdetection3d设置batch size的方式是通过samples_per_gpu来设置的。数据集加载参数位于configs/_base_/datasets/目录下。上述例子中对应的数据加载脚本为configs/_base_/datasets/kitti-3d-car.py。samples_per_gpu位于第97行,默认取值为6,为了减小显存占用将其改为1。另外,将98行的workers_per_gpu也改为1。

        执行上述mmdetection3d second训练脚本,可得到如下图所示结果:

5 【python三维深度学习python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_python 三维点云

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。


http://www.niftyadmin.cn/n/1257526.html

相关文章

mmdetection3d kitti (持续更新)

Mmdetection3d集成了大量3D深度学习算法,其中很大一部分可以在智能驾驶KITTI数据集上运行。在算法应用KITTI数据之前,mmdetection3d提供了相应的预处理程序。关于kitti的详细介绍请参考本博客之前的文章,例如:【Mini KITTI】KITTI…

【python正则表达式 实战示例】求数组全部相邻数据

本节利用python的正则表达式快速求解数组中相邻数据的位置,含完整的python源码、求解过程和正则表达式详细解析。 1 求解步骤 (1)生成随机数据,x,用于输入与测试。 (2)对原始数据进行从小到大…

python opencv 同窗口显示多个图像

为了便于比对图像处理前后的效果,特别是算法处理前后的效果图,我们需要同时显示多张图片。这里采用opencv图像拼接的方法来实现我们想要的效果。 1 定义函数show_multi_img 定义图片显示函数show_multi_img,共包括5参数,各个参数…

【量化投资】离散傅里叶变换求数组周期

好久没有更新量化分析相关的内容,本节将介绍如何通过傅里叶变换求解一组数据当中可能存在的周期性,后续将应用本节的结果实际在量化程序中进行应用。本文计算方法不一定正确,欢迎大家多多指正,并在评论区进行交流。 1 离散傅里叶…

opencv最大值滤波(不局限于图像)

opencv中有较多滤波函数,如中值滤波等,但没有最大值和最小值滤波。本文将介绍用python numpy实现最大值滤波功能,可以说是不需要借助opencv即可实现。 1 定义函数maxBlur 定义最大值滤波的函数为maxBlur,包含3个参数,…

opencv最小值滤波(不局限于图像)

opencv中有较多滤波函数,如中值滤波等,但没有最大值和最小值滤波。本文将介绍用python numpy实现最小值滤波功能,可以说是不需要借助opencv即可实现。 1 定义函数minBlur 定义最小值滤波的函数为minBlur,包含3个参数,…

python矩阵最近邻填充替换

矩阵最近邻填充是指对矩阵中指定元素取值用周围最近邻的元素取值进行替换。下面介绍三种实现方法。前两种方法适合较小的输入矩阵,第三种方法速度最快。 1 最近邻替换nearest_fill 采用for循环的方式,逐个计算待替换元素位置与剩余非替换元素位置的距离…

mmclassification安装与调试

MMClassification 是一款基于 PyTorch 的开源图像分类工具箱,是 OpenMMLab 项目的成员之一 主分支代码目前支持 PyTorch 1.5 以上的版本。 MMClassification包含了诸多经典或高性能图像分类算法,复现了最新的一些论文和成果,特别是包括了大量…