阿里巴巴自动驾驶三维点云分割PointNet实现

阿里巴巴点云分割(PointNet)

项目地址:https://github.com/Summit11/PointNet_AliData

本项目是点云分割模型PointNet在DataFountain平台上阿里巴巴自动驾驶三维点云分割比赛 https://www.datafountain.cn/competitions/314/details/rule 数据集上实现的代码。模型和代码结构基本跟PointNet保持一致,主要修改了数据处理部分、train部分和inference部分的代码。结果提交了训练赛,效果一般,大概在复赛水平十几名的样子。事实上PointNet实际不太适用于无人驾驶场景下激光雷达获取的高度稀疏数据,反而比较适用于激光扫描仪得到的稠密点云数据场景。

数据处理

题目提供8万帧的点云数据,每一帧一个文件,考虑首先进行合并处理成我们需要的格式。
此处借鉴https://github.com/kiclent/pointSeg 的代码,将每100帧的的数据合并到一个6列的矩阵里,保存npy格式。由于转换程序比较耗时,博主将转换后的数据已共享到网盘。
链接: https://pan.baidu.com/s/1CaSG1S3XvIz8-s1To_ahUg 提取码: bxq8

模型训练

模型超参以及一些其他参数存储在hParam.py中,train_csv_path和test_csv_path指向原csv数据,train_npy_path和test_npy_path指向转换的npy文件存储位置,TRAIN_FILE_PATH则是训练时读取训练文件的地址,VALID_FILE_PATH指向训练时验证数据集的文件地址,TEST_FILE_PATH指向测试集地址

训练:is_training=True, 运行train.py
预测:is_training=False,运行train.py

结果

分割效果如图所示,可见车辆效果较好,其他效果不理想,仅供学习交流~
阿里巴巴自动驾驶三维点云分割PointNet实现_第1张图片
阿里巴巴自动驾驶三维点云分割PointNet实现_第2张图片

你可能感兴趣的:(Python,Mechine,Learning,Deep,Learning)