Re: Principal components analysis of 3D directional data

From: Will Smith (wsmith_at_cs.york.ac.uk)
Date: 08/23/04


Date: Mon, 23 Aug 2004 13:03:35 +0100

Hi,

Thanks for your replies guys. I've already been experimenting with applying
PCA directly to the x,y,z components of the unit vectors however this is not
really what I want. Unit vectors are actually points on a sphere, not points
in 3D space. If you imagine two points on a sphere, PCA of their x,y,z
components would give the line connecting the two points as the first
eigenvector. But no points lying on this line would actually lie on the
sphere. Moving linearly along this vector would not produce linear movement
across the surface of the sphere.

The idea I've been playing with is using a map projection technique to
project points on a hemisphere (which are the directions of the unit
vectors) onto a 2D plane. With the right projection it should be possible to
use a standard point distribution model on the points after projection. So
what I now need is the right projection which can project points from a
hemisphere onto a 2D plane so that linear movement in any direction across
the surface of the hemisphere produces linear movement across the 2D plane.
Any ideas?

Thanks,

Will

"Ray Koopman" <koopman@sfu.ca> wrote in message
news:242be6f5.0408111522.7153620d@posting.google.com...
> "Will Smith" <wsmith@cs.york.ac.uk> wrote in message
> news:<ceo7v4$b04$1@pump1.york.ac.uk>...
> > I am a computer vision researcher and am working on representing
appearance
> > as a statistical model of local surface orientation. For this reason I
have
> > spent a long time trying to formulate the correct way in which to apply
> > principal components analysis to a unit vector in 3-dimensional space.
If
> > anyone has heard of previous work like this, I would be very grateful
for a
> > reference.
> >
> > The basic idea is this: I have a set of unit normals, from which I can
find
> > their mean direction. I would then like to find the principal components
> > which describe the various modes of variation. It may be easier to
consider
> > the vectors as points on a sphere. The principal components would then
be 2D
> > vectors on the plane tangential to the sphere at the mean point.
>
> Let A be an n x 3 matrix in which each row is a unit-length vector
> giving the coordinates of a point with respect to an arbitrary set of
> reference axes. Do an SVD (Singular Value Decomposition): A = PDQ',
> where P'P = Q'Q = QQ' = I, and D is diagonal with d_1 >= d_2 >= d_3 >= 0.
> Then B = PD = AQ gives the coordinates of the points with respect to
> the principal axes of the configuration.
>
> Note that P and Q are determined only to within paired columnwise sign
> changes: you can always multiply column j in both P and Q by -1, and
> you should feel free to do so if it will facilitate interpretation.
> In particular, if most of the elements in column 1 of P are negative
> then the results may be easier to interpret if you change the signs
> of all the elements in column 1 of both P and Q.



Relevant Pages

  • Re: Is infinite Euclidean space non-euclidean?
    ... circle will also then, as you say, have an infinite length. ... of projecting the sphere, ... You can assume that the projection is to a plane which is tangential ...
    (sci.logic)
  • Re: unwrapping a sphere
    ... > A very simple algorithm for a sphere is to simply ... of a sphere onto a plane, then any scheme will introduce distortion ... What you propose is called an "equidistant cylindrical projection", ... the surface of the sphere along rays emanating from the south pole. ...
    (comp.graphics.algorithms)
  • DT and CH on the Sphere (redux)
    ... Recall that I want to compute Delaunay Triangulations of a "convex" patch of points on a portion of the sphere - specifically, excluding a region near one pole. ... All of this will work just fine, but I was reluctant to abandon ancient 2D DT code for points in the plane. ... This projection "emphasizes" the region near the INcluded pole while de-emphasizing the region near the forbidden pole. ...
    (comp.graphics.algorithms)
  • Re: unwrapping a sphere
    ... Now your sphere mesh will be unwrapped on the XY plane, ... which is a variation of a Mercator projection. ... the surface of the sphere along rays emanating from the south pole. ...
    (comp.graphics.algorithms)
  • Re: How to return Texture Coords at mouse x y posiiton in openGlut/openGL ?
    ... glGetDoublev(GL_MODELVIEW_MATRIX, modelview); ... glGetDoublev(GL_PROJECTION_MATRIX, projection); ... The sphere starts off with 0 degrees latitude and longitude at the centre of the screen and this almost seems to work. ... if the matrices are those used to draw the sphere, then you should get unprojected values back in you original object's coordinate system. ...
    (comp.graphics.api.opengl)