User Tools

Site Tools


ece4580:module_pcd:normalizepose

This is an old revision of the document!


Point Cloud Pose Normalization Using SVD

Sometimes a point cloud is living off in the wilderness, but we need it to be centered at the origina and possibly also oriented in some canonical manner. Turns out the the singular value decomposition can do that. Consider a matrix of points $P$, and its singular value decomposition, $$ P = U \Sigma V $$. The interesting fact is that $U$ is a 3×3 orthogonal matrix. That means it is effectively a rotation matrix. But then what do the rest of the SVD matrices represent? Well, $\Sigma V$ is the set of points prior to application of the rotation matrix, which would be the coordinate values of the points in a different reference frame.

However, the points can be anywhere in space. Normalization involves transforming them to be centered at the origin. That means, the point cloud needs to be offset by its mean value, so that the new mean value is the origin (or the zero vector). Supposing that $\bar p$ is the mean of the set of points $P$, then each point $p_i$ needs to be shifted: $$ p_i' = p_i - \bar p$. After the shifting, all of the points are now “centered.” With this centered set $P'$, perform SVD $$ P' = U \Sigma V$$, then collect $\bar p$ and $U$ into a transformation matrix $g$, $$ g = \left[ \begin{matrix} U & \bar p \\ 0 & 1 \end{matrix} \right]. Also perform the multiplication of the remaining SVD components, to get the pose normalized points $$ P_n = \Sigma V $$.

ece4580/module_pcd/normalizepose.1486099824.txt.gz · Last modified: 2024/08/20 21:38 (external edit)