贵在坚持!
-----------------------------------------------------------------------------------------------
MMDetection3D环境安装可以参考之前的博文:Ubuntu 系统 cuda12.2 安装 MMDetection3D-CSDN博客
1、系统配置
Ubuntu 系统
cuda12.2
2、数据集准备
KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。 因为完整的数据集太大,为了更好的点云检测训练流程,将原数据集抽取部分。用于模型训练调试。
数据下载地址:mini-KITTI无人驾驶数据集资源-CSDN文库
解压后,数据集路径为(注意:velodyne_reduced 文件夹是执行训练数据集脚本后生成的。):
3、训练数据集制作
运行指令:
python tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti --extra-tag kitti
输出log如下:
Generate info. this may take several minutes.
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 57/57, 20.0 task/s, elapsed: 3s, ETA: 0s
Kitti info train file is saved to data/kitti/kitti_infos_train.pkl
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 43/43, 139.9 task/s, elapsed: 0s, ETA: 0s
Kitti info val file is saved to data/kitti/kitti_infos_val.pkl
Kitti info trainval file is saved to data/kitti/kitti_infos_trainval.pkl
Kitti info test file is saved to data/kitti/kitti_infos_test.pkl
create reduced point cloud for training set
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 57/57, 221.1 task/s, elapsed: 0s, ETA: 0s
create reduced point cloud for validation set
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 43/43, 221.5 task/s, elapsed: 0s, ETA: 0s
create reduced point cloud for testing set
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 100/100, 220.3 task/s, elapsed: 0s, ETA: 0s
./data/kitti/kitti_infos_train.pkl will be modified.
Warning, you may overwriting the original data ./data/kitti/kitti_infos_train.pkl.
Reading from input file: ./data/kitti/kitti_infos_train.pkl.
Start updating:
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 57/57, 94.6 task/s, elapsed: 1s, ETA: 0ss
Writing to output file: ./data/kitti/kitti_infos_train.pkl.
ignore classes: {'DontCare'}
./data/kitti/kitti_infos_val.pkl will be modified.
Warning, you may overwriting the original data ./data/kitti/kitti_infos_val.pkl.
Reading from input file: ./data/kitti/kitti_infos_val.pkl.
Start updating:
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 43/43, 104.0 task/s, elapsed: 0s, ETA: 0s
Writing to output file: ./data/kitti/kitti_infos_val.pkl.
ignore classes: {'DontCare'}
./data/kitti/kitti_infos_trainval.pkl will be modified.
Warning, you may overwriting the original data ./data/kitti/kitti_infos_trainval.pkl.
Reading from input file: ./data/kitti/kitti_infos_trainval.pkl.
Start updating:
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 100/100, 98.9 task/s, elapsed: 1s, ETA: 0s
Writing to output file: ./data/kitti/kitti_infos_trainval.pkl.
ignore classes: {'DontCare'}
./data/kitti/kitti_infos_test.pkl will be modified.
Warning, you may overwriting the original data ./data/kitti/kitti_infos_test.pkl.
Reading from input file: ./data/kitti/kitti_infos_test.pkl.
Start updating:
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 100/100, 4638.5 task/s, elapsed: 0s, ETA: 0s
Writing to output file: ./data/kitti/kitti_infos_test.pkl.
ignore classes: set()
Create GT Database of KittiDataset
02/17 13:39:02 - mmengine - INFO - ------------------------------
02/17 13:39:02 - mmengine - INFO - The length of training dataset: 57
02/17 13:39:02 - mmengine - INFO - The number of instances per category in the dataset:
+----------------+--------+
| category | number |
+----------------+--------+
| Pedestrian | 24 |
| Cyclist | 9 |
| Car | 188 |
| Van | 19 |
| Truck | 8 |
| Person_sitting | 0 |
| Tram | 6 |
| Misc | 2 |
+----------------+--------+
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 57/57, 57.9 task/s, elapsed: 1s, ETA: 0s
load 24 Pedestrian database infos
load 188 Car database infos
load 9 Cyclist database infos
load 19 Van database infos
load 8 Truck database infos
load 6 Tram database infos
load 2 Misc database infos
4、训练
1)修改配置文件 configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-3class.py
因为数据集没有加入地平面信息,所以将 use_ground_plane=False,如下图。
2)执行训练脚本如下:
python tools/train.py configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-3class.py
可能异常报错如下:
aise AttributeError("module {!r} has no attribute "
AttributeError: module 'numpy' has no attribute 'long'
修改方法:进入对应的报错脚本进行如下修改:
将 numpy.long 改为 numpy.int64
或
将 np.long 改为 np.int64
接着运行训练脚本。
成功运行如下图:
助力快速掌握数据集的信息和使用方式。
数据可以如此美好!