关于KPConv的文件读写

Pytorch版本的KPConv例程使用ply格式作为神经网络的输入格式。其它数据格式在输入网络之前都会先转换成ply格式。笔者在阅读KPConv的源代码时,发现ply文件的读写模块中有一个大端(big endian)、小端(little endian)和ASCII的判定。关于大端和小端,简书上有一篇文章介绍得很详细[1]。KPConv作者之所以采用这个判定机制,大概是为了使代码兼容不同操作系统下储存的ply文件。

最近觉得ply或许是最理想的点云深度学习的中间格式。它的field或者说column可以无限扩展。而且只要在文件头中注明每一column代表的含义,便可在NumPy中轻松构建可通过column name进行查找的数据结构。NumPy文件读取函数(如numpy.fromfile、numpy.loadtxt等)的可选形参(optional parameter)dtype可以构建数据名称(names)、类型(formats)和数据的对应关系。

以numpy.loadtxt函数为例[2]:

>>> d = StringIO("M 21 72\nF 35 58")
>>> np.loadtxt(d, dtype={'names': ('gender', 'age', 'weight'),
...                      'formats': ('S1', 'i4', 'f4')})
array([(b'M', 21, 72.), (b'F', 35, 58.)],
      dtype=[('gender', 'S1'), ('age', '

[1] 字符编码(ASCII,Unicode和UTF-8) 和 大小端:https://www.jianshu.com/p/bef...
[2] https://numpy.org/doc/stable/...

你可能感兴趣的:(pytorch,python)