归一化的作用:
数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解
点云的归一化:
参考自pointnet的源码,增加了注释:
def pc_normalize(pc):
"""
对点云数据进行归一化
:param pc: 需要归一化的点云数据
:return: 归一化后的点云数据
"""
# 求质心,也就是一个平移量,实际上就是求均值
centroid = np.mean(pc, axis=0)
pc = pc - centroid
m = np.max(np.sqrt(np.sum(pc ** 2, axis=1)))
# 对点云进行缩放
pc = pc / m
return pc
参数解析(参考自numpy源码):
def np.mean(a, axis=None, dtype=None, out=None, keepdims=np._NoValue, *,
where=np._NoValue):
"""
沿指定轴计算算术平均值
Parameters:
a:需要计算的点云数据
axis:指定轴
axis=0:对a数组的每列求平均值
axis=1:对a数组的每行求平均值
"""
点云的反归一化:
由于点云的归一化操作,会使得PointNet预测的结果比原始点云尺寸不同,为了恢复原始大小,可以将预测得到的点云进行反归一化,即使得到的点云乘上缩放尺寸m,再加上平移尺寸centroid。
ret = pred × m + centroid
效果展示

引用:

本文详细介绍了点云数据的归一化操作,包括计算质心和平移,以及对点云进行缩放的过程。归一化有助于优化算法的收敛。同时,解释了反归一化的重要性,用于恢复点云的原始尺寸。通过示例代码,展示了如何在PointNet框架中进行点云的归一化和反归一化操作。
2238

被折叠的 条评论
为什么被折叠?



