本项目是点云分割模型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