2021.5.14实验记录——pointnet++使用

2021.5.14实验记录

要用自己录的PCD点云数据做语义分割,发现了数据格式有很大问题。

  1. pointnet++使用的室内S3DIS数据集,我用的.npy文件作的训练和测试。npy是numpy的一种二进制高效文件保存形式。
    • S3DIS——npy类型的数据集每个npy内部有9个维度的数据,分别是x,y,z,x_,y_,z_,r,g,b九个维度数据,中间三个是语义信息真值。
    • 我的PCD数据仅有六维——坐标+颜色的数据,而pointnet++测试时需要读取9维的数据.
    • 参考了S3DIS的原始npy数据格式,给我的PCD数据写入另外三维的数据(随意,对于测试而言不需要真值),需要以下步骤:
      • 将PCD转为txt格式的数据,参考./data/pcd2txt.py
      • 将官方任意一个npy转为txt,参考./data/npy2txt.py
      • 依据官方npy_txt格式给pcd_txt写入中间三维数据(利用numpy数组),参考./data/txt_change.py
      • 将pcd_txt转为npy格式以供测试,参考./data/txt2npy.py
      • 获得测试结果gt.obj(真值,这里是任意信息)和pre.obj(分割的结果,需要!)
      • 将pre.obj转为pre.pcd以供八叉树使用,这里使用一个c++程序,参考./obj2pcd/,pcl_viewr也有转换obj2pcd工具,但是会丢失rgb信息。
      • 最终将获得的无色PCD和有色PCD分别转为八叉树,作一个对比。
  2. 自适应分辨率问题,在改代码。上面这些文件后续改到一个程序里面执行。
上一篇:Python numpy.load()用法及代码示例


下一篇:怕npy的牛牛