PDF version of this entire document

Multidimensional Scaling - Animated Example

As a demonstration of canonical forms and stress reduction complemented/guided by multidimensional scaling, we've created an image, as in Figure [*], which shows the process applied to each image in the Face Recognition Grand Challenge (FRGC) 2.0 set - albeit Fall Semester only in this case - in turn, in order to approach a more mutually-isometric and pose-agnostic state where distances are tied to inherent surface details (curvature, size, etc.) and the static image shows the original image too (added at the top). To use this within an objective function it will need to be clearer how points are selected consistently and where correspondences can autonomously be chosen to improve overall performance. The triangulation in this case is Delaunay-based although 3 methods have been implemented and they offer room for further experimental work. The factors affecting performance may be the PCA component, the triangulation, the placement of points, the optimisation of lengths, the pre-processing (ICP for instance), and few minor technicalities less worthy of consideration. Each one of these represents one parameter among many but feasibility tests - those exploring whether the overall framework is effective in the first place (distances as an encoded signature resistant to expressions) - must come first. Based on a preliminary look, this ought to serve as a reasonable discriminant, but many of the pertinent parts of the framework may need tweaking based on trials and errors.

Figure: Top: original image. Bottom (from top to bottom, left to right): stress minimisation with MDS, one iteration at a time
Image msd-stress-canonical

There are some fundamental problems in interpreting how MDS should work. Indeed, one needs to start from the same point (say tip of the nose) and clip a geodesic circle. Then, start from, say the lower or upper point, though it could be better to break symmetry, and use furthest point sampling to effectively sample the surface. It should also lock onto significant features, as those are usually a a locally furthest distance from the rest.

Another option would be to map GMDS a given model onto the given shape with key points marked. Or even better, use a flexible mask, like people do in face recognition of images.

After a great deal of additional programming. a framework for multifeature PCA that include multi-dimensional scaling was put in place, along with a point selection mechanism which relies not on a grid but on a set of points in space, which can be selected in various ways depending on positions of importance highlighted in groups of images consistently. This way, canonical forms get compared, annulling some of the variation which is otherwise difficult to identify and take account of. ROC curves are still unimpressive and the algorithm needs further refinement, with or without making up a hybrid of signals (e.g. distances and derivatives/depths/other). Figure [*] provides insight into the process employed at this stage.

Figure: A look at the cruder among ways to perform a comparison between faces
Image msd-early

MDS is a preparatory step towards GMDS complexity. It's properly integrated and it has some options for point-selection and other paradigms that exploit a low- but multi-dimensional scaling stage (Figure [*] shows one attempt at aligning images by expanding them to a common frame of reference). GMDS is also put in place for potential work on speed, but this does not get treated the main aspects to pursue, although it definitely improves familiarity with the code, not just the general approach - a generic assembly of methods glued together. In order to get GMDS working within a short period of time, some runtime issues will have to be overcome. To become fluent when it comes to the methods and also the corresponding code may take some time.

While in the process of adding GMDS to the experimental framework which combines it with (G)PCA there are some issues - perhaps easily solvable - making use of the existing fast marching code. In one implementation, the executable is .mexw32 and in another it's a bunch of .dll files. We could find the source files anywhere and this needs to be compiled (unless it is available already) for the Ubuntu 64-bit servers (system('uname -a') returns ``Linux gipserver 2.6.31-17-generic #54-Ubuntu SMP Thu Dec 10 17:01:44 UTC 2009 x86_64 GNU/Linux'').

Figure: An exploratory look at how applying MDS to face images of the same subject depends on presupplied distances
Image probe-improper

Roy Schestowitz 2012-01-08