当前位置:网站首页 > 数据科学与大数据 > 正文

pointnet训练自己的数据(point数据分析训练营)



这几天想用深度学习做一下点云的分割试验,网上搜了一下相关标题的blog有很多,但大部分只是简单的介绍文章内容,说明具体操作流程的干货并不多。在缺乏相关资料和帮助的情况下,本人大致搞清楚了pointnet进行sem_seg的流程。可能步骤存在问题甚至是错的,因为也没有人交流,但从试验结果看来还行。欢迎大家批评指正。点云的标注用cloudcompare(下面简称cc)就可以,后面obj文件的可视化由于cc对其支持不太好,改用meshlab。
欢迎阅读我的其他文章:
windows下运行pointnet(全)
pointnet C++推理部署(一)
pointnet C++推理部署(二)

首先准备自己的数据集。txt格式的点云文件就行,我随便找了个斯坦福兔子点云文件,里面是xyz三维点的坐标。把兔子用cc软件分割成头(head)和身子(body),并分别保存成两个txt文件。
因为我比较懒所以只标注了这一个兔子,将其随机平移和旋转变换得到100个兔子的头和身子的txt,将其分别保存在编号为i(i=0,1,2,…,99)的文件夹下分别命名为head_i.txt和body_i.txt(i=0,1,2,…,99)。
修改sem_segmetaclass_name.txt内容为head和body。
修改sem_segmetaanno_path.txt内容为训练标注的路径。
修改indoor3d_util.py中的g_class2color如下

 

修改collect_point_label函数里面的内容,给点云数据增加rgb信息:

 

运行batch_inference.py程序即可。同理,需要修改NUM_CLASSES,以及修改sem_segmetadata_label.txt中的待预测模型的路径。运行需要提供的参数可以参考我的上一篇文章:windows下运行pointnet(全)。
随便做了一些npy文件用于测试,制作过程和训练部分相似。用于预测的数据集包括随机平移旋转的模型,添加噪声的模型,裁剪的模型以及混合前三种的模型。红色为预测出的兔子头部,蓝色为预测出的兔子身体,黑色为未识别出的部分。因为我自始至终只是用了一个原始模型进行不同变换进行的测试,所以正确率都在99%以上。
随机平移旋转的模型预测结果:
在这里插入图片描述
添加噪声的模型预测结果:
在这里插入图片描述
裁剪的模型预测结果:在这里插入图片描述
混合平移旋转、添加噪声、裁剪的模型预测结果:在这里插入图片描述
整个工程文件打包:链接: https://pan.baidu.com/s/1yZG_OigNQqbeC852N6SMXw?pwd=zjn1 提取码: zjn1 复制这段内容后打开百度网盘手机App,操作更方便哦
–来自百度网盘超级会员v4的分享

 
 

添加高斯噪声

 
 
  1. File “h5py_objects.pyx”, line 54, in h5py._objects.with_phil.wrapper
    File “h5py_objects.pyx”, line 55, in h5py._objects.with_phil.wrapper
    File “h5pyh5f.pyx”, line 106, in h5py.h5f.open
    FileNotFoundError: [Errno 2] Unable to open file (unable to open file: name = ‘E: uanjianchengxuwenjianpypointnet-rabbitsem_seg/dataply_data_all_0.h5’, errno = 2, error message = ‘No such file or directory’, flags = 0, o_flags = 0)
    报错原因:h5py包的版本过高
    解决方法:降低h5py包的版本,例如pip install h5py==2.10
  2. Exception has occurred: ValueError
    need at least one array to concatenate
    位于gen_indoor3d_h5.py的return np.concatenate(block_data_list, 0), np.concatenate(block_label_list, 0)
    报错原因:网格划分尺度过小,导致某个网格中点的个数为0
    解决方法:将
 

中的block_size和stride根据自己数据尺度进行调整,参数的含义见下图(从indoor3d_util.py中摘选)。
在这里插入图片描述

到此这篇pointnet训练自己的数据(point数据分析训练营)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 数据库端口号怎么修改(如何修改数据库端口号)2025-02-08 18:36:10
  • orecale数据库(orphanet数据库)2025-02-08 18:36:10
  • 达梦数据库端口默认(达梦数据库默认用户密码)2025-02-08 18:36:10
  • 中国数据库网站入口(中国行业数据分析网)2025-02-08 18:36:10
  • 常用的中文全文数据库有哪几种(常用的中文全文数据库有哪几种类型)2025-02-08 18:36:10
  • 小米手机数据迁移到华为新手机(小米手机数据迁移到华为新手机总联系失败怎么办)2025-02-08 18:36:10
  • mongodb数据库等保测评(mongodb如何保证数据一致性)2025-02-08 18:36:10
  • 大数据算法有哪几种(大数据算法的定义)2025-02-08 18:36:10
  • 计算机数据库基础知识(计算机数据库基础知识点总结)2025-02-08 18:36:10
  • 大数据算法定义(大数据算法名词解释)2025-02-08 18:36:10
  • 全屏图片