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.
![]()
|
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.
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'').
![]()
|
Roy Schestowitz 2012-01-08