Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
LOGIC ARRANGEMENT, DATA STRUCTURE, SYSTEM AND METHOD FOR MILTILINEAR REPRESENTATION OF MULTIMODAL DATA ENSEMBLES FOR SYNTHESIS, ROTATION AND COMPRESSION
Document Type and Number:
WIPO Patent Application WO/2005/013066
Kind Code:
A3
Abstract:
A data structure, method, storage medium, and logic arrangement are provided for use in collecting (202) and analyzing (205) multilinear data describing various characteristics of different objects. In particular, it is possible to recognize an unknown object (214) or an unknown viewpoint on an object (218), as well as synthesize a known viewpoint never before recorded on an object, and reduce the amount of stored data describing an object or viewpoint by using dimensionality reduction techniques.

Inventors:
VASILESCU MANUELA O (US)
TERZOPOULOS DEMETRI (US)
Application Number:
PCT/US2004/024000
Publication Date:
April 09, 2009
Filing Date:
July 26, 2004
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV NEW YORK (US)
VASILESCU MANUELA O (US)
TERZOPOULOS DEMETRI (US)
International Classes:
G06F15/18; G06F
Foreign References:
US6717576B12004-04-06
US6680735B12004-01-20
Attorney, Agent or Firm:
ABELEV, Gary (LLP250 Park Avenu, New York NY, US)
Download PDF:
Claims:

WHAT IS CLAIMED: 1. A data structure for generating an object descriptor of at least one object, comprising : a plurality of first data elements including information regarding at least one characteristic of the at least one object, wherein the information of the first data elements is capable of being used to obtain the object descriptor, wherein the object descriptor is related to the at least one characteristic and a further characteristic of the at least one object, and is capable of being used to generate a plurality of second data elements which contain information regarding the further characteristic of the at least one object based on the object descriptor, wherein each of the at least one object is one of an identity of an object, a viewpoint, an illumination, and a pixel.
2. The data structure of claim 1, wherein the at least one characteristic of the at least one object is at least one of a a viewpoint, an illumination, and a pixel.
3. The data structure of claim 1, wherein the first data elements are defined by at least two primitives.
4. The data structure of claim 3, wherein the primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
5. The data structure of claim 4, wherein the first data elements form a tensor organized based on the primitives.
6. The data structure of claim 1, wherein the second data elements are defined by at least two primitives.
7. The data structure of claim 1, wherein the object descriptor is obtained using an n-mode orthonormal decomposition procedure.
S. The data structure of claim 1, wherein the second data elements are generated using a generative model.

9. A method for generating an object descriptor of at least one object, comprising the steps of : collecting a plurality of first data elements which contain information regarding at least one characteristic of the at least one object ; obtaining the object descriptor based on the information of the first data elements, wherein the object descriptor is related to the at least one characteristic and a further characteristic of the object; and generating a plurality of second data elements which contain information regarding the further characteristic of the at least one object based on the object descriptor, wherein each of the at least one object is one of an identity of an object, a viewpoint, an illumination, and a pixel.
10. The method of claim 9, wherein the at least one characteristic of the at least one object is at least one of a a viewpoint, an illumination, and a pixel.
11. The method of claim 9, wherein the first data elements are defined by at least two primitives.
12. The method of claim 11, wherein the primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
13. The method of claim 11, wherein the first data elements form a tensor organized based on the primitives.
14. The method of claim 9, wherein the second data elements are defined by at least two primitives.
15. The method of claim 9, wherein the object descriptor is obtained using an n- mode orthonormal decomposition procedure.
16. The method of claim 9, wherein the second data elements are generated using a generative model.
17. A storage medium storing a software program that is adapted for generating an object descriptor of at least one object, wherein the software program, when executed

by a processing arrangement, is configured to cause the processing arrangement to execute the steps comprising of : collecting a plurality of first data elements which contain information regarding at least one characteristic of the at least one object; obtaining the object descriptor based on the information of the first data elements, wherein the object descriptor is related to the at least one characteristic and a further characteristic of the object; and generating a plurality of second data elements which contain information regarding the further characteristic of the at least one object based on the object descriptor, wherein each of the at least one object is one of an identity of an object, a viewpoint, an illumination, and a pixel.

18. The storage medium of claim 17, wherein the at least one characteristic of the at least one object is at least one of a a viewpoint, an illumination, and a pixel.
19. The storage medium of claim 17, wherein the first data elements are defined by at least two primitives.
20. The storage medium of claim 19, wherein the primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
21. The storage medium of claim 19, wherein the first data elements form a tensor organized based on the primitives.
22. The storage medium of claim 17, wherein the second data elements are defined by at least two primitives.
23. The storage medium of claim 17, wherein the object descriptor is obtained using an n-mode orthononnal decomposition procedure.
24. The storage medium of claim 17, wherein the second data elements are generated using a generative model.
25. A logic arrangement for generating an object descriptor of at least one object, wherein the logic arrangement is adapted for an execution by a processing

arrangement to perform the steps comprising of : collecting a plurality of first data elements which contain information regarding at least one characteristic of the at least one object; obtaining the object descriptor based on the information of the first data elements, wherein the object descriptor is related to the at least one characteristic and a further characteristic of the object; and generating a plurality of second data elements which contain information regarding the further characteristic of the at least one object based on the object descriptor, wherein each of the at least one object is one of an identity of an object, a viewpoint, an illumination, and a pixel.

26. The logic arrangement of claim 25, wherein the at least one characteristic of the at least one object is at least one of a a viewpoint, an illumination, and a pixel.
27. The logic arrangement of claim 25, wherein the first data elements are defined by at least two primitives.
28. The logic arrangement of claim 27, wherein the primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
29. The logic arrangement of claim 27, wherein the first data elements form a tensor organized based on the primitives.
30. The logic arrangement of claim 25, wherein the second data elements are defined by at least two primitives.
31. The logic arrangement of claim 25, wherein the object descriptor is obtained using an n-mode orthonormal decomposition procedure.
32. The logic arrangement of claim 25, wherein the second data elements are generated using a generative model.
33. A data structure for identifying a sample object based upon a sample object descriptor, comprising: a plurality of first data elements including information which is defined by at

least two first primitives, wherein the first data elements are capable of being used to obtain at least one of a plurality of object descriptors; and a plurality of second data elements including information which is defined by at least two second primitives, wherein the second data elements are capable of being used to obtain the sample object descriptor, and wherein the at least one of the object descriptors are configured to be compared to the sample object descriptor for determining whether the sample object descriptor is potentially identifiable as one of the object descriptors, wherein each of the plurality of object descriptors is associated with a respective one of a plurality of objects, wherein the sample object is one of an identity of an object, a viewpoint, an illumination, and a pixel.

34. The data structure of claim 33, wherein the first primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
35. The data structure of claim 33, wherein the second primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
36. The data structure of claim 33, wherein the first data elements form a tensor organized based on the first primitives.
37. The data structure of claim 33, wherein the second data elements form a tensor organized based on the second primitives.
38. The data structure of claim 33, wherein each of the object descriptors and the sample object descriptor are obtained using an n-mode single value decomposition procedure.
39. The data structure of claim 33, wherein a magnitude of the sample object descriptor is compared to respective magnitudes of the object descriptors to determine whether the sample object is potentially identifiable as one of the objects.
40. A method for identifying a sample object based upon a sample object descriptor, comprising the steps of : collecting a plurality of data elements which are defined by at least two

primitives ; obtaining at least one of a plurality of object descriptors based on the information of the data elements; and comparing the sample object descriptor to at least one of the object descriptors for determining whether the sample object descriptor is identifiable as one of the object descriptors, wherein each of the object descriptors is associated with a respective one of a plurality of objects, wherein the sample object is one of an identity of an object, a viewpoint, an illumination, and a pixel.

41. The method of claim 40, wherein the first primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
42. The method of claim 40, wherein the second primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
43. The method of claim 40, wherein the first data elements form a tensor organized based on the first primitives.
44. The method of claim 40, wherein the second data elements form a tensor organized based on the second primitives.
45. The method of claim 40, wherein each of the object descriptors and the sample object descriptor are obtained using an n-mode single value decomposition procedure.
46. The method of claim 40, wherein a magnitude of the sample object descriptor is compared to respective magnitudes of the object descriptors to determine whether the sample object is potentially identifiable as one of the objects.
47. A storage medium including a software program for identifying a sample object based upon a sample object descriptor, wherein the software program, when executed by a processing arrangement, is configured to cause the processing arrangement to execute the steps comprising of : collecting a plurality of data elements which are defined by at least two primitives ;

obtaining at least one of a plurality of object descriptors based on the information of the data elements; and comparing the sample object descriptor to at least one of the object descriptors for determining whether the sample object descriptor is identifiable as one of the object descriptors, wherein each of the object descriptors is associated with a respective one of a plurality of objects, wherein the sample object is one of an identity of an object, a viewpoint, an illumination, and a pixel.

48. The storage medium of claim 47, wherein the first primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
49. The storage medium of claim 47, wherein the second primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
50. The storage medium of claim 47, wherein the first data elements form a tensor organized based on the first primitives.
51. The storage medium of claim 47, wherein the second data elements form a tensor organized based on the second primitives.
52. The storage medium of claim 47, wherein each of the object descriptors and the sample object descriptor are obtained using an n-mode single value decomposition procedure.
53. The storage medium of claim 47, wherein a magnitude of the sample object descriptor is compared to respective magnitudes of the object descriptors to determine whether the sample object is potentially identifiable as one of the objects.
54. A logic arrangement for identifying a sample object based upon a sample object descriptor, wherein the logic arrangement is adapted for an execution by a processing arrangement to perform the steps comprising of : collecting a plurality of data elements which are defined by at least two primitives; obtaining at least one of a plurality of object descriptors based on the

information of the data elements; and comparing the sample object descriptor to at least one of object descriptors for determining whether the sample object descriptor is identifiable as one of the object descriptors, wherein each of the object descriptors is associated with a respective one of a plurality of objects, wherein the sample object is one of an identity of an object, a viewpoint, an illumination, and a pixel.

55. The logic arrangement of claim 54, wherein the first primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
56. The logic arrangement of claim 54, wherein the second primitives include at least one of an identity of an object, a viewpoint, an illumination, and a pixel.
57. The logic arrangement of claim 54, wherein the first data elements form a tensor organized based on the first primitives.
58. The logic arrangement of claim 54, wherein the second data elements form a tensor organized based on the second primitives.
59. The logic arrangement of claim 54, wherein each of the object descriptors and the sample object descriptor are obtained using an n-mode single value decomposition procedure.
60. The logic arrangement of claim 54, wherein a magnitude of the sample object descriptor is compared to respective magnitudes of the object descriptors to determine whether the sample object is potentially identifiable as one of the objects.
61. A method for reducing a dimensionality of one of at least two object descriptors, comprising the steps of : collecting a plurality of data elements which are defined by at least two primitives ; obtaining the one of the object descriptors based on the information of the data elements; and reducing the dimensionality of the one of the object descriptors, wherein each

of the object descriptors except for the one of the object descriptors having the reduced dimensionality maintain full dimensionality, wherein the one of the object descriptors is one of an identity of an object, a viewpoint, an illumination, and a pixel.

62. The method of claim 61, wherein the data elements form a tensor organized based on the primitives.
63. The method of claim 61, wherein the one of the at least two object descriptors is obtained using an n-mode single value decomposition procedure.
, 64. The method of claim 61, wherein the dimensionality of the one of the object descriptors is reduced using an n-mode orthogonal iteration procedure.
65. A storage medium storing a software program for reducing a dimensionality of one of at least two object descriptors, wherein the software program, when executed by a processing arrangement, is configured to cause the processing arrangement to execute the steps comprising of : collecting a plurality of data elements which are defined by at least two primitives; obtaining the one of the object descriptors based on the information of the data elements; and reducing the dimensionality of the one of the object descriptors, wherein the one of the object descriptors is one of an identity of an object, a viewpoint, an illumination, and a pixel.
66. The storage medium of claim 65, wherein each of the object descriptors except for the one of the object descriptors having the reduced dimensionality maintain full dimensionality.
67. The storage medium of claim 65, wherein the data elements form a tensor organized based on the primitives.
68. The storage medium of claim 65, wherein the one of the at least two object descriptors is obtained using an n-mode single value decomposition procedure.

69. The storage medium of claim 65, wherein the dimensionality of the one of the object descriptors is reduced using an n-mode orthogonal iteration procedure.
70. A logic arrangement for reducing a dimensionality of one of at least two object descriptors, wherein the logic arrangement is adapted for an execution by a processing arrangement to perform the steps comprising of : collecting a plurality of data elements which are defined by at least two primitives ; obtaining the one of the object descriptors based on the information of the data elements; and reducing the dimensionality of the one of the object descriptors, wherein the one of the object descriptors is one of an identity of an object, a viewpoint, an illumination, and a pixel.
71. The logic arrangement of claim 70, wherein each of the object descriptors except for the one of the object descriptors having the reduced dimensionality maintain full dimensionality.
72. The logic arrangement of claim 70, wherein the data elements form a tensor organized based on the primitives.
73. The logic arrangement of claim 70, wherein the one of the at least two object descriptors is obtained using an n-mode single value decomposition procedure.
74. The logic arrangement of claim 70, wherein the dimensionality of the one of the object descriptors is reduced using an n-mode orthogonal iteration procedure.
75. A data structure for generating an object descriptor, comprising: a plurality of data elements which are defined by at least two primitives, wherein the information of the data elements is capable of being used to obtain the object descriptor using an orthonormal decomposition procedure, wherein the object descriptor is one of an identity of an object, a viewpoint, an illumination, and a pixel.

76. The data structure of claim 75, wherein the data elements form a tensor organized based on the primitives, and wherein the tensor has a fixed order.
77. The data structure of claim 75, wherein the n-mode orthonormal decomposition procedure is an n-mode singular value decomposition procedure.
78. The data structure of claim 77, wherein the n-mode singular value decomposition procedure is capable of decomposing the tensor into a core tensor and at least two orthonormal matrices.
79. The data structure of claim 75, wherein each of the primatives is one of an identity of an object, a viewpoint of the object, an illumination of the object, and a pixel of the object.
80. A method for generating an object descriptor, comprising the steps of : collecting a plurality of data elements which are defined by at least two primitives; and obtaining the object descriptor based on the information of the data elements using an n-mode orthonormal decomposition process, wherein the object descriptor is one of an identity of an object, a viewpoint, an illumination, and a pixel.
81. The method of claim 80, wherein the data elements form a tensor organized based on the primitives, and wherein the tensor has a fixed order.
82. The method of claim 80, wherein the n-mode orthonormal decomposition procedure is an n-mode singular value decomposition procedure.
83. The method of claim 82, wherein the n-mode singular value decomposition procedure is capable of decomposing the tensor into a core tensor and at least two orthonormal matrices.
84. The method of claim 80, wherein each of the primatives is one of an identity of an object, a viewpoint of the object, an illumination of the object, and a pixel of the object.

85. A storage medium storing a software program that is adapted for generating an object descriptor, wherein the software program, when executed by a processing arrangement, is configured to cause the processing arrangement to execute the steps comprising of : collecting a plurality of data elements which are defined by at least two primitives; and obtaining the object descriptor based on the information of the data elements using an n-mode orthonormal decomposition process, wherein the object descriptor is one of an identity of an object, a viewpoint, an illumination, and a pixel.
86. The storage medium of claim 85, wherein the data elements form a tensor organized based on the primitives, and wherein the tensor has a fixed order.
87. The storage medium of claim 85, wherein the n-mode orthonormal decomposition procedure is an n-mode singular value decomposition procedure.
88. The storage medium of claim 87, wherein the n-mode singular value decomposition procedure is capable of decomposing the tensor into a core tensor and at least two orthonormal matrices.
89. The storage medium of claim 85, wherein each of the primatives is one of an identity of an object, a viewpoint of the object, an illumination of the object, and a pixel of the object.
90. A logic arrangement for generating an object descriptor, wherein the logic arrangement is adapted for an execution by a processing arrangement to perform the steps comprising of : collecting a plurality of data elements which are defined by at least two primitives; and obtaining the object descriptor based on the information of the data elements using an n-mode orthonormal decomposition process, wherein the object descriptor is one of an identity of an object, a viewpoint, an illumination, and a pixel.

91. The logic arrangement of claim 90, wherein the data elements form a tensor organized based on the primitives, and wherein the tensor has a fixed order.
92. The logic arrangement of claim 90, wherein the n-mode orthonormal decomposition procedure is an n-mode singular value decomposition procedure.
93. The logic arrangement of claim 92, wherein the n-mode singular value decomposition procedure is capable of decomposing the tensor into a core tensor and at least two orthonormal matrices.
94. The logic arrangement of claim 90, wherein each of the primatives is one of an identity of an object, a viewpoint of the object, an illumination of the object, and a pixel of the object.
Description:

LOGIC ARRANGEMENT, DATA STRUCTURE, SYSTEM AND METHOD FOR MILTILINEAR REPRESENTATION OF MULTIMODAL DATA ENSEMBLES FOR SYNTHESIS, ROTATION AND COMPRESSION Cross Reference to Related Applications The present application claims priority from U. S. Patent Application Serial No. 60/490,131 filed on July 25,2003. This application also relates to U. S.

Patent Application Serial No. 60/337,912, 60/383,300 and International Application No. PCT/US02/39257. The entire disclosures of these applications are incorporated herein by reference.

Field of the Invention The present invention relates generally to a logic arrangement, data structure, system and method for acquiring and manipulating data, and more particularly to a logic arrangement, data structure, system and method for acquiring and manipulating data describing the surface appearance of an object using at least one characteristic of the object, synthesizing new data, rotating an image of the object and reducing the amount of data describing one or more characteristics of the object (e. g. , a group of coins or an ear of corn).

Background of the Invention Natural images are the composite consequence of multiple factors related to scene structure, illumination and imaging. Human perception of natural images remains robust despite significant variation of these factors. For example, people possess a remarkable ability to recognize faces given a broad variety of facial geometries, viewpointsions, head poses and lighting conditions.

Some past facial recognition systems have been developed with the aid of linear models such as principal component analysis ("PCA"), independent component analysis ("ICA"). Principal components analysis ("PCA") is a popular linear technique that has been used in past facial image recognition systems and processes. By their very nature, linear models work best when a single-factor varies in an image formation. Thus, linear techniques for facial recognition systems

perform adequately when person identity is the only factor permitted to change.

However, if other factors (such as lighting, viewpoint, and viewpointsion) are also permitted to modify facial images, the recognition rate of linear facial recognition systems can fall dramatically.

Similarly, human motion is the composite consequence of multiple elements, including the action performed and a motion signature that captures the distinctive pattern of movement of a particular individual. Human recognition of particular characteristics of such movement can be robust even when these factors greatly vary. In the 1960's, the psychologist Gunnar Kohansson performed a series of experiments in which lights were attached to people's limbs, and recorded a video of the people performing different activities (e. g., walking, running and dancing).

Observers of these moving light videos in which only the lights are visible were asked to classify the activity performed, and to note certain characteristics of the movements, such as a limp or an energetic/tired walk. It was observed that this task can be performed with ease, and that the observer could sometimes determine even recognize specific individuals in this manner. This may coraborate the idea that the motion signature is a perceptible element of human motion. and that the signature of a motion is a tangible quantity that can be separated from the actual motion type.

However, there is a need to overcome at least some of the deficiencies of the prior art techniques.

OBJECTS AND SUMMARY OF THE INVENTION Such need is addressed by the present invention. One of the objects of the present invention is to provide a logic arrangement, data structure, storage medium, system and method for generating an object descriptor. According to an exemplary embodiment of the present invention such data structure can include a plurality of first data elements that have information regarding at least one characteristic of the at least one object. The information of the first data elements is capable of being used to obtain the object descriptor. The object descriptor is related to the at least one characteristic and a further characteristic of the at least one object,

and is capable of being used to generate a plurality of second data elements which contain information regarding the further characteristic of the at least one object based on the object descriptor. Each of the at least one object is one of an identity of an object, a viewpoint, an illumination, and a pixel.

In another exemplary embodiment of the present invention, the data structure for identifying a sample object based upon a sample object descriptor can include a plurality of first data elements including information defined by at least two first primitives. The first data elements capable of being used to obtain at least one of a plurality of object descriptors. A plurality of second data elements including information which is defined by at least two second primitives. The second data elements are capable of being used to obtain the sample object descriptor, and wherein the at least one of the object descriptors are configured to be compared to the sample object descriptor for determining whether the sample object descriptor is potentially identifiable as one of the object descriptors. Each of the plurality of object descriptors is associated with a respective one of a plurality of objects, wherein the sample object is one of an identity of an object, a viewpoint, an illumination, and a pixel.

In still another exemplary embodiment of the present invention, a method for reducing a dimensionality of one of at least two object descriptors is provided. The method collects a plurality of data elements which are defined by at least two primitives, and obtains the one of the object descriptors based on the information of the data elements. The method also reduces the dimensionality of the one of the object descriptors, wherein each of the object descriptors except for the one of the object descriptors having the reduced dimensionality maintain full dimensionality. The one of the object descriptors is one of an identity of an object, a viewpoint, an illumination, and a pixel.

In a further exemplary embodiment of the present invention, the data structure is adapted for generating an object descriptor. The data structure includes a plurality of data elements which are defined by at least two primitives. The information related to the data elements is capable of being used to obtain the object descriptor using an orthonormal decomposition procedure. The object descriptor is one of an identity of an object, a viewpoint, an illumination, and a pixel.

BRIEF DESCRIPTION OF THE DRAWINGS Further objects, features and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying figures showing illustrative embodiments of the invention, in which: Fig. 1 is a block diagram of a data analysis system according to an exemplary embodiment of the present invention; Fig. 2 is a flow diagram of an exemplary embodiment of a process according to the present invention which analyzes multilinear data; Fig. 3 is a flow diagram of an exemplary embodiment of a core tensor computation procedure of the process of Fig. 2 which performs an N-mode SVD algorithm for decomposing an N-dimensional tensor; Fig. 4 is a flow diagram of an exemplary embodiment of a process of Fig. 2 which synthesizes the remaining viewpoints for an object; Fig. 5 is a flow diagram of an exemplary embodiment of a viewpoint generation procedure of the process of Fig. 2 which synthesizes an observed viewpoint for a set of objects; Fig. 6 is a flow diagram of an exemplary embodiment of an object recognition procedure of the process of Fig. 2 which recognizes an unidentified object from a known viewpoint as one of a group of objects;

Fig. 7 is a flow diagram of an exemplary embodiment of a viewpoint recognition procedure of the process of Fig. 2 which recognizes an unknown viewpoint of a known object; Fig. 8 is a flow diagram of another exemplary embodiment of a process according to the present invention which analyzes multilinear data; Fig. 9 is a flow diagram of an exemplary embodiment of the object recognition procedure of the process of Fig. 8 which recognizes an unidentified object given an unknown object image; Fig. 10 is a flow diagram of an exemplary embodiment of the viewpoint recognition procedure of the process of Fig. 8 which recognizes of an unidentified viewpoint of a known object; Fig. 11 is a flow diagram of an exemplary embodiment of a data reduction process of the process of Fig. 8 which dimensionally reduces the amount of data describing an object displaying an viewpoint; Figs. 12A-12F are block diagrams of sample tensors and equivalent mode-1, mode-2 and mode-3 flattened tensors according to an exemplary embodiment of the present invention; Fig. 13 is a flow diagram of another exemplary embodiment of a process according to the present invention which analyzes multilinear data; Fig. 14 is a flow diagram of an exemplary embodiment of a core matrix computation procedure of the process of Fig. 13 which performs an SVD matrix algorithm for decomposing a matrix; and Fig. 15 is a flow diagram of an exemplary embodiment of a process of Fig. 13 which synthesizes the remaining viewpoints for a new object.

Throughout the figures, the same reference numerals and characters, unless otherwise stated, are used to denote like features, elements, components or

portions of the illustrated embodiments. Moreover, while the present invention will now be described in detail with reference to the figures, it is done so in connection with the illustrative embodiments. It is intended that changes and modifications can be made to the described embodiments without departing from the true scope and spirit of the subject invention as defined by the appended claims.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS Figure 1 illustrates an exemplary embodiment of a data analysis system 100 for use in the collection and analysis of data describing various characteristics of different objects. h1 this embodiment, a central server 102 is provided in the system 100, which provides therein a central processing unit ("CPU") 104, a data storage unit 106 and a database 108. The central server 102 is connected to a communications network 110, which is in turn connected to an data capturing system 112. The data capturing system 112 can include at least one camera (not shown for the sake of clarity). A first client server 114 is provided in the system 100, which provides therein a CPU 116, a data storage unit 118, and a database 120. The first client server 114 is connected to the communications network 110. A second client server 124 is also provided in the system 100, which situates a CPU 126, a data storage unit 128, and a database 130. The second client server 124 is also connected to the communications network 110. It should be understood that the central server 102, the image capture system 112, the first client server 114 and the second client server 124 can forward data messages to each other over the communications network 110.

In a preferred embodiment of the present invention, the data capturing system 112 can be a"VICON"system which employs at least four video cameras.

The VICON system can be used to capture human limb motion and the like.

A multilinear data analysis application can be stored in the data storage unit 106 of the central server 102. This multilinear data analysis application is capable of recognizing an unknown object, an unknown viewpoint of an object, an unknown illumination, an unknown viewpoint, and the like. Such application can also synthesize a known viewponit that has never before been recorded of an object,

as well as an illumination which has previously not been recorded of an object.

Further the application can reduce the amount of stored data that describes an object or viewpoint by using dimensionality reduction techniques, and the like. It should be understood that dimensionality reduction is equivalent to compression and data reduction. The multilinear data analysis application preferably utilizes a corpus of data, which is collected using the data capturing system 112 from different objects.

The corpus of data is stored in the database 108 of the server 102, and can be organized as a tensor D, which shall be described in further detail as follows.

A tensor, also known as an n-way array or multidimensional matrix or n-mode matrix, is a higher order generalization of a vector (first order tensor) and a matrix (second order tensor). A tensor can be defined as a multi-linear mapping over a set of vector spaces. The tensor can be represented in the following manner : A E IRIIXI2X---XIN where A is a tensor. The order of the tensor A is N. A tensor is formed by a group of primatives. Each primative is a set of mode vectors, such that a first primative is a set of mode-1 vectors, a second vector is a set of mode-2 vectors, an ntl'primative is a set of mode-n vectors, etc. In an alternate embodiment, the primatives can be row vectors of a matrix, column vectors of a matrix, index of a vector, etc. An element of tensor A is denoted as Ai,... i, t... iN or ail.. in... iN or where 1 < i, l < I". Scalars are denoted by lower case letters (a, b,...), vectors by bold lower case letters (a, b...), matrices by bold upper-case letters (A, B...), and higher-order tensors by italicized bolded upper-case letters (A, B...).

In tensor terminology, column vectors are referred to as mode-1 vectors, and row vectors are referred to as mode-2 vectors. Mode-n vectors of an Nth order tensor A E IRI1/Ix/...xIn are the In-dimensional vectors obtained from the tensor A by varying index while maintaining the other indices as fixed. The mode-n vectors are the column vectors of matrix A(n)¯IRInx(I1I2...In-1In+1...IN) that can result from flattening the tensor A, as shown in Figures 12A-12F. The flattening procedure shall be described in further detail below. The n-rank of tensor A E IRI1x13x...x1N, denoted Rn, is defined as the dimension of the vector space generated by the

mode-n vectors: R"= rankn(A)=rank(A(n)).

Figures 12A-12C show third order tensors 1200,1210, 1220, respectively, each having dimensions II x 12 x I3. Figure 12D shows the third order tensor 1200 after having been mode-1 flattened to obtain a matrix 1250 containing mode-1 vectors of the third order tensor 1200. The third order tensor 1200 of Fig.

12A is a cube type structure, while the matrix 1250 is a two dimensional type structure having one index, i. e., I2, imbedded (to a certain degree) within the matrix 1250. Figure 12E shows a matrix 1260 containing mode-2 vectors of the third order tensor 1210 after it has been mode-2 flattened. This third order tensor 1210 is a cube type structure, while the matrix 1260 is a two dimensional type structure having one index, e. g., I3, imbedded (to a certain degree) with the data. Figure 12F shows the third order tensor 1220 after having been mode-3 flattened to obtain a matrix 1270 containing mode-3 vectors of the third order tensor 1220. Such third order tensor 1220 is a cube type structure, while the matrix 1270 organizes is a two dimensional type structure having one index, e. g., Il, imbedded (to a certain degree) with the data.

A generalization of the product of two matrices can be the product of the tensor and matrix. The mode-n product of tensor A¯IRI1xI2x...xInx...xIN by a matrix M E IR J"XI", denoted by A x,, M, is a tensor B E IR <BR> <BR> <BR> <BR> <BR> whose entries are Bi1...in-1ini+1...iN=¯inai1...in-1in+1...iMm jnin. The entries of the<BR> i1...in-1jnin-1...iN-#inui1...ln-12n_1...lN Jn tensor B are computed by The mode-n product can be viewpointsed as B = A x,, M, or in terms of flattened matrices as B (,,) = MA (,,). The mode-n product of a tensor and a matrix is a special case of the inner product in multilinear algebra and tensor analysis. The mode-n product is often denoted using Einstein summation notation, but for purposes of clarity, the mode-n product symbol will be used. The mode-n product has the following properties:

1. Given a tensor A¯ IR 1.x ...xinx...xiM... and two matrices, U¯ IRjmxim and V e IR the following property holds true: AxmUxnV =(AxM U) x, zV = (A V) x U = A xn V xm U 2. Given a tensor A¯ IRI1x...xInx...xIN and two matrices, U¯ IRJnxJn and V¯IRnxJn the following property holds true: (AxnU) xnV=Axn(VU) An Order tensor A¯IRI1xI2x...xINhas a rank-1 when it is able to be viewpointsed as the outer product of N vectors: A=u, ou2lo...ouN The tensor element is viewpointsed as aij...m=u1ju2j...uNm, where uli is the ith component of ul, etc. The ranlc of a Nah order tensor A, denoted R = rank (A), is the minimal number of rank-1 tensors that yield A in a linear combination : A singular value decomposition (SVD) can be viewpointsed as a rank decomposition as is shown in the following simple example: It should be noted that an SVD is a combinatorial orthogonal rank decomposition, but that the reverse is not true; in general, rank decomposition is not necessarily singular value decomposition. Also, the N-mode SVD can be viewpointsed as an expansion of mutually orthogonal rank-1 tensors, as follows : where U (1"') is the i, column vector of the matrix U,,. This is analogous to the equation A client interface application can be stored in the data storage units 118, 128 of the first and second client servers 114,124, respectively. The client interface application preferably allows the user to control the multilinear data analysis application described previously. For example, the client interface application can instruct the multilinear data analysis application to generate new data describing a particular characteristic of a known object that may be different from those characteristics of the known object which were already observed. In addition, the client interface application can instruct the multilinear data analysis application to generate new data describing a particular characteristic of the remainder of the population of observed objects that are different from those characteristics of the remainder of the population already observed. Also, the client interface application can instruct the multilinear data analysis application to recognize an unknown object from the population of observed objects, recognize a characteristic of a known object from the characteristics of the known object already observed, dimensionally reduce the amount of data stored to describe a characteristic of a known object, etc. In one exemplary embodiment of the present invention, the object can be any physical object and the characteristic may be a viewpoint. In another embodiment of the present invention, the object can be any physical object and the characteristic may be an illumination. In response to the client interface application's instructions, the multilinear data analysis application may transmit to the client interface application certain information describing the requested characteristic or object.

A. Image Signature Using A Tensor Representation Of A Corpus Of Data Figure 2 illustrates flow diagram of an exemplary embodiment of a process 200 which is indicative of the multilinear data analysis application. As

described above for the multilinear data analysis application, the process 200 is configured to recognize the unknown object, recognize the unknown viewpoint from which the known object is being observed, generate a known viewpoint from which the object has not been observed, etc. In particular the multilinear data analysis application utilizes the corpus of image data, which is collected using the data capturing system 112 from different objects. This corpus of image information is stored in the database 108 of the server 102, and describes the surface appearance of an object, including complex details such as self-occlusion and self-shadowing. The corpus of image information can be organized as a tensor D. It should be understood that the corpus of image information can also be organized as a matrix D or a vector d. For example, if the information is organized as a matrix D, the process 200 preferably remains the same, but the underlying tensor procedures could be converted to matrix procedure equivalents. It should also be noted that representing the data contained in the tensor D may integrate multiple indices into a singular matrix index.

Likewise, if the information is organized as a vector d, the process 200 preferably remains the same, but the underlying tensor procedures could be converted to vector procedure equivalents. It should also be noted that representing the data contained in the tensor D may integrate multiple indices into a singular vector index.

The corpus of image data is preferably collected from different objects from at least one viewpoint which forms the tensor D. Each viewpoint can be repeated multiple times, and a image cycle can be segmented from each image sequence. For example, in order to suppress noise, the collected image data can be passed through a low-pass fourth-order Butterworth filter at a cut off frequency of 6 Hz, and missing data may be interpolated with a cubic spline. Illumination represents the image information of the objects. The illuminations are stored in the tensor D.

Such tensor D can have the form of a IR, where G is the number of objects, M is the number of viewpoint classes, and T is the number of illuminations.

In an exemplary implementation of a preferred embodiment according to the present invention, three viewpoints are collected for each object. In another exemplary implementation, each viewpoint can be repeated ten (10) times. In yet

another exemplary implementation, images can be recorded using the VICON system that employs five cameras. The cameras can be positioned to record various viewpoints of an object.

Turning to further particulars of Fig. 2, in step 202, the process 200 collects image information or data on various objects from different viewpoints, e. g., new image data. The image data is collected as a group of vectors. Each of the group of vectors represents an object observed from a viewpoint. If each of the possible the viewpoints and the object are known, the data can be integrated into the tensor D. If the viewpoint or object are not known, such data would likely not be integrated into the tensor D until those pieces of information are determined. The data describing an unknown viewpoint or object is organized as a new data tensor Dp, a of a new object or a new data vector d of a new object. The new data tensor Dp, a includes more than one new data vector d. Each new data vector d of the new data tensor Dp, a describes the image of object p performing viewpoint a.

At step 204, the process 200 solves for a core tensor Z which can be generally used for defining the inter-relationships between the orthonormal mode matrices. This step represents an N-mode singular value decomposition ("SVD") process 204, shown in Fig. 3, and described in further detail herein. It should be noted that the N-mode SVD procedure of step 204 is an orthonormal decomposition procedure. The N-mode SVD procedure of step 204 solves for the core tensor Z.

When this procedure of step 204 determines the core tensor Z, the process 200 advances to step 205.

In an alternate embodiment of the present invention, an alternate n- mode orthonormal decomposition procedure is used in place of the n-mode SVD procedure.

In step 205, the process 200 analyzes the data collected in the step 202.

With the knowledge of image sequences of several objects, the tensor D can take the form of a IR GMT. tensor, where G is the number of objects, M is the number of viewpoint classes, and T is the number of illuminations. The N-mode SVD procedure

of step 204 decomposes the tensor D into the product of a core tensor Z, and three orthogonal matrices as follows: D=Zxl Px2Ax3J, The object matrix P = [Pl p,,... pc] whose object-specific row vectors p T span the space of object parameters, encodes the per-object invariance across viewpoints.

Thus, the matrix P contains the object or human image signatures. The viewpoint matrix A =[1 am aM]T, whose viewpoint specific row vectors a T span the space of viewpoint parameters, encodes the invariance for each viewpoint across different objects. The illumination matrix J whose row vectors which span the space of illuminations are preferably the eigenimages, the image variation.

The product Z X3 J transforms the eigenimages into tensorimages, a tensor representaion of the variation and co-valiation of modes (objects and viewpoint classes). The product Z x3 J also characterizes how the object's parameters and viewpoint parameters interact with one another. The tensor B =ZX2 Ax3 J is a viewpoint specific tensorimage, which contains a set of basis matrices for all the images associated with particular viewpoints. The tensor C=Zxl P x3 J is an object/signature specific tensorimage, which preferably contains a set of basis matrices for all the images associated with particular objects (with particular object image signatures). The core tensor Z, the matrix A, and the matrix J generated by the N-mode SVD procedure of step 204 of the tensor D define a generative model.

In step 206, the process 200 determines whether it has been instructed by the client interface application to synthesize new data describing at least one known viewpoint that was never before recorded of a new object. If the process 200 has reveived such instruction, step 208 is executed to perform advances to an object generation procedure, as shown in further detail in Fig. 4 and described herein. When

the object generation procedure of step 208 is complete, the process 200 advances to step 226.

In step 210, the process 200 determines if it was instructed by the client interface application to synthesize new data describing a new viewpoint that was never before recorded of the remainder of the population of observed objects. If the process 200 has received such instruction, the process 200 continues to a viewpoint generation procedure of step 212, as shown in further detail in Fig. 5 and described herein. When the viewpoint generation procedure of step 212 is completed, the process 200 is forwarded to step 226.

In step 214, the process 200 determines if it was instructed by the client interface application to recognize an unknown object that has been observed to perform a known viewpoint as one of the population of observed known objects. If the process 200 has received such instruction, the process 200 is directed to an object recognition procedure of step 216, as shown in greater detail in Fig. 6 and described infra. Once the object recognition process 216 is completed, the process 200 advances to step 226.

In a preferred embodiment, the process 200 is capable of recognizing an unknown object that has been observed performing an unknown viewpoint as one of the population of observed known objects.

In step 218, the process 200 determines if it was instructed by client interface application to recognize an unknown viewpoint of a known object as one of the viewpoints already observed of the known object. If the process 200 has received such an instruction, the process 200 continues to a viewpoint recognition procedure of step 220, as shown in Fig. 7 and described infra. When the object recognition procedure of step 220 is completed, the process 200 is forwarded to step 226. Then in step 226, the process 200 determines whether a data set for a new object should be integrated into the tensor D or if the client interface application has transmitted a new instruction. In particular, if a data set for a new object is available, the process 200

advances to step 202. Otherwise, the process 200 received the new instruction from the client interface application, so the process 200 continues to step 206.

Fig. 3 illustrates the exemplary details N-mode SVD procedure of step 204 for performing an N-mode SVD algorithm to decompose the tensor D and compute the core tensor Z. The N-mode SVD procedure of step 204 is related to and grows out of a natural generalization of the SVD procedure for a matrix. For example, a matrix D¯IRI1xI2 is a two-mode mathematical object that has two associated vector spaces, e. g. , a row space and a column space. The SVD procedure for a matrix orthogonailzes these two spaces, and decomposes the matrix as D=U1 #U%2, with the product of an orthogonal columm-space represented by the left matrix U1¯IrI1xJ1, a diagonal singular value matrix #¯IrJ1xJ2, and an orthogonal row space represented by the right matrix U2 ¯IRI2xJ2, In terms of the mode-n products defined above, this matrix product can be rewritten as D = ExlUl x2 U2. If the data contained within the tensor D is represented as a matrix D, the SVD procedure for a matrix can be used.

By extension, the tensor D can be an order-N tensor comprising N spaces, where N is preferrably greater than 2. N-mode SVD is a natural generalization of SVD that orthogonalizes these N spaces, and decomposes the tensor as the mode-n product of N-orthonormal spaces.

D=Zxl U, X-IU2... X, 7 Uii... XN UN, A matrix representation of the N-mode SVD can be obtained by: D (n)=UnZ(n)(Un+1#Un+2#...#Un#U1#...#Un-1)T where'8 is the matrix Kronecker product. The core tensor Z, can be analogous to the diagonal singular value matrix in conventional matrix SVD. It is important to realize, however, that the core tensor does not have a diagonal structure ; rather, Z is in general a full tensor. The core tensor Z governs the interviewpoint between mode matrices U,,, for n =1,..., N. Mode matrix U,, contains the orthonormal vectors spanning the

column space of the matrix D (n) that results from the mode-n flattening of the tensor D, as illustrated in Figs. 12A-12F.

As shown in Fig. 3, the procedure of step 204 begins at step 302 by setting an index n to one (1). This allows the process 204 to begin computing an initial matrix from the tensor D. When the index n is set to one, the procedure of step 204 advances to step 304. In step 304, the procedure of step 204 computes the matrix U,, as defined by D = Z Xl Ul X2 U2... Xn Un... x U, by computing the SVD of the flattened matrix D (,,). Once the matrix Un is computed, the procedure of step 204 continues to step 306. In step 306 the procedure of step 204 sets the matrix U,, to be a left matrix of the SVD. Once the matrix Un is set appropriately, the procedure of step 204 goes on to step 308, in which it is determined whether the index n is equal to the order of the tensor, i. e. N. If the index n is equal to the order of the tensor, the procedure of step 204 advances to step 312. Otherwise, the process 204 is forwarded to step 310. In step 310, the index n is incremented by one, and then the procedure of step 204 is directed to step 304. In step 312, the core tensor Z is solved for as follows: Z=Dx1Utzx2Ut2...xnUtn...xNUTN.

When the core tensor Z is selected, the procedure of step 204 is completed.

It should be noted that when D (, l) is a non-square matrix, the computation of in the singular value decomposition D ( tu = U, l EV"T can be performed, depending on which dimension of D(n)is smaller, by decomposing either D(n)dDT(n)=Un#²UTnand then computing vTn=#+UTND(n), or by decomposing DT(n)D(n)=vn#²VTn and then computing U"= D (, l) V, lE.

Fig. 4 illustrates the details of the object generation procedure of step 208, which synthesizes the remaining viewpoints, which were never before seen, for a new object. The remaining viewpoints are generated given the new image data tensor Dp, a of the new object observed from the viewpoint a, which includes at least one viewpoint. The object generation procedure of step 208 solves for the signature p of

the new object in the equation Dp, a=Ba xi pT, where Ba =z x 2a Ta x3 J. It should be noted that new data tensor Dp a is a 1 x 1 x T tensor. In particular, step 402 of this procedure flattens the new data tensor Dp, a in the object mode, yielding a row vector daT. By flattening this new data tensor in the object mode, the matrix Dp, a (object) is generated, and in particular a row vector which we can denote as d T a is produced.

Therefore, in terms of the flattened tesors, the equation Dp,a=bax1pT described above can be written as d T =PtBa(subject)or da=Bta(objects)p. Once the tensor is flattened, the process advances to step 404, in which it is determined if the object is observed from a single viewpoint. If the object is observed from a single viewpoint, the procedure of step 208 is forwarded to step 406. If the object is observed from at least two viewpoints, the procedure of step 208 advances to step 408. In step 406, the image signature for the object given a single boseved viewpoint is computed. The image signature for the object can be defined as PT=DaTB-1a(objects). When the image signature for the object is computed, the procedure of step 208 is completed. Also in step 408, the image signature for the object given at least two observed viewpoints is determined. If several different viewpoints da, k are observed, the image signature can be computed as follows: r T 1 alc ak (ojects)'

In step 410, the procedure of step 208 synthesizes a complete set of images for the object. The complete set of images for the new object can be synthesized as follows: Dp=B X, PT, where B is defined as B = Z X2 A X3 J, as described above. When the image signature for the object is computed, the process 208 exits.

Fig. 5 illustrates details of the viewpoint generation procedure of step 212, which synthesizes an observed new viewpoint that has never before been seen for the remainder of the objects represented in the object matrix P. The observed viewpoint for the remainder of the objects represented in the object matrix P is generated given the new image data tensor Dp, a of at least one object from the new viewpoint a.

In particular, step 501 of this procedure flattens the new data tensor Dp, a in the viewpoint mode, yielding a row vector dpT. By flattening this new data tensor in the viewpoint mode, the matrix Dp, n (viewpoint) is generated, and in particular a row vector which we can denote as dT is produced. Therefore, in terms of the flattened tensors, the equation Dp a= Cpx2 aT described above can be written as d T =aT Cp(viewpo int s) or dp=CT(viewpoints)a. Once the tensor is flattened, this procedure determines as to whether the new image data tensor Dp, a represents one object from the new viewpoint in step 502. If the new image data tensor Dp, a represents one object from the new viewpoint, the procedure of step 212 advances to step 504. If the new image data tensor Dp, a represents more than one object from the new viewpoint, the procedure of step 212 is forwarded to step 506. In step 504, the associated viewpoint parameters are determined based on the new image data tensor Dp, a, which represents one object from the new viewpoint. If a known object, e. g. , an object that is already recorded in the image database, performs a new type of viewpoint dp, it is possible to compute the associated viewpoint parameters <BR> <BR> <BR> <BR> <BR> aT =d T C-1. When the associated viewpoint parameters are computed, the<BR> <BR> f vievnoGnsJ procedure of step 212 is directed to step 508.

In step 506, the associated viewpoint parameters are computed based on the new image data tensor Dp, a, which represents more than one object from the new viewpoint. If several different objects are observed performing the same new viewpoint dpk, the viewpoint parameters are computed as follows: T =L. T .,]-1 "d Ph c Pk (vieapo int s)

When the associated viewpoint parameters are computed, the process 212 advances to step 508, in which the new viewpoints are obtained for the remainder of the objects represented in the object matrix P. The new viewpoint for all the objects in the database can be synthesized as follows: Da = C x2 aT, where C is given as C = Z xl P X3 J, supra. When the new viewpoint is synthesized, the procedure of step 212 is completed.

Fig. 6 illustrates an object recognition procedure of step 216 for recognizing an unidentified object from a known viewpoint. Multilinear analysis, can provide basis tensors that map certain observed images into the space of object parameters (thereby enabling the recognition of objects from image data) or the space of viewpoint parameters (thereby enabling the recognition of viewpoint from image data). The object recognition process 216 begins at step 602, in which the signature p of an unknown object from a known viewpoint is computed. The new image vector d of a known viewpoint a can be mapped into the object signature space, by computing the signature p=B a (objects) d. Once the signature is computed, the process 216 advances to step 604, in which an index variable n and a variable match are initialized. For example, the index variable n can be initialized to one (1) and the variable match may be initialized to negative one (-1). Once these variables are initialized, step 606 is performed in which, the signature p is compared to an object signature p,,. This signature is compared against each of the object signatures P, l in P.

Then the magnitude of the difference between the signature p and the signature pn, i. e.

Ilp-p,, 11 is determined.

Thereafter, in step 608, it is determined whether a process-computed magnitude of the difference between the signature p and the signature pn is smaller than any magnitude computed up to this point. If the magnitude of the difference

between the signature p and the signature pn is smaller than any difference computed up to this point, the process 216 advances to step 610. Otherwise, the process 216 is forwarded to step 612. In step 610, the variable match is set to be equal to the index n. The variable match generally signifies the index of the recognized object, such that the signature p most closely matches the signature Pmatch- Then, in step 612, it is determined if the index n is equal to G. If that is the case, the procedure of step 216 advances to step 616, otherwise the procedure of step 216 is forwarded to step 614. In step 614, the index n is incremented by one (1), and the procedure is returned to step 606, such that each of the objects in the object matrix P from 1 to G is objected to the comparison. Finally, in step 616, the signature Patch is identified as the signature that most closely approximates the signature p. In a preferred embodiment of the present invention, the variable match is an indexed array, which records the indices of multiple signatures that most closely match the signature p. Once the signature pmatcli is identified, the procedure of step 216 is completed.

Fig. 7 illustrates the details of a viewpoint recognition procedure of step 220 for recognizing an unknown viewpoint of a known object. Generally, a multilinear analysis yields basis tensors that map the observed images into the space of viewpoint parameters, thus enabling the recognition of viewpoints from the image data. In particular, step 702 computes the vector a of a known object from an unknown viewpoint. The new image data vector d of a known object p can be mapped into the viewpoint parameter space by computing the vector a=C pfvieapoirrts) d When the vector a is determined, the procedure of step 220 advances to step 704, in which an index variable m and a variable match are initialized. The index variable m can be initialized to one (1), and the variable match may be initialized to negative one (-1). Once these variables are initialized, the process 220 is forwarded to step 706, in which the vector a is compared to a viewpoint parameter vector am. In particular, the vector a is compared against each of the viewpoint parameter vectors ant in A, in turn,

as the index m is incremented. The magnitude of the difference between the vector a and the viewpoint parameter vector am, i. e. Ia-am ||, is also determined.

In step 708, the procedure of step 220 determines whether process computed magnitude of the difference between the vector a and the viewpoint parameter vector am is smaller than any difference computed up to this point. If the magnitude of the difference between the vector a and the viewpoint parameter vector am is smaller than any difference computed up to this point, the procedure of step 220 advances to step 710. Otherwise, the procedure of step 220 is forwarded to step 712.

In step 710, the procedure of step 220 sets the variable match is set to be equal to the index m. The variable match generally signifies the index of the recognized viewpoint, such that the vector a most closely matches the viewpoint parameter vector match- Then, in step 712, it is determined if the index m is equal to M. If that is the case, the procedure of step 220 advances to step 716, otherwise the procedure is forwarded to step 714. Step 714, indicates that the index m is incremented by one (1), and the procedure advances to step 706, such that the index m increments throuht each of the viewpoints in the viewpoint matrix A from 1 to M. In step 714, the viewpoint parameter vector amatis, is identified as the signature that most closely approximates the vector a. In a preferred embodiment of the present invention, the variable match can be an indexed array, which records the indices of multiple viewpoints that most closely match the vector a. Once the viewpoint parameter vector match is identified, the procedure of step 220 is completed.

B. Facial Signatures Using A Tensor Representation Of A Corpus Of Data Fig. 8 illustrates a flow diagram of an exemplary embodiment of a process implementing a multilinear data analysis application 800 according to the present invention. As described above, the multilinear data analysis application 800 may be configured to recognize an unknown object, an unknown viewpoint, and dimensionally reduce the amount of data describing illuminations, etc. The multilinear data analysis application 800 utilizes a corpus of image data, which is

collected using the data capturing system 112 from different objects. The corpus of image information can be stored in the database 108 of the server 102. This corpus of image information may describe the illuminations, the viewpoints, and the objects captured in images made of pixels. The corpus of image information is organized as a tensor D. The tensor D takes the form of a IRG'I'E'p tensor, where G is the number of objects, I is the number of illuminations, E is the number of viewpoints, and P is the number of pixels. It should be understood that the corpus of image information can also be organized as a matrix D or a vector d. For example, if the information is organized as a matrix D, the process 800 preferably remains the same, but the underlying tensor procedures could be converted to matrix procedure equivalents. It should also be noted that representing the data contained in the tensor D may integrate multiple indices into a singular matrix index. Likewise, if the information is organized as a vector d, the process 800 preferably remains the same, but the underlying tensor procedures could be converted to vector procedure equivalents. It should also be noted that representing the data contained in the tensor D may integrate multiple indices into a singular vector index.

In a preferred embodiment of the present invention, three viewpoints can be collected for each object. Each viewpoint may be captured in four different illuminations, i. e. light positions. The four different illuminations may be one light from the center, one light from the right, one light from the left, and two lights one from the right and one from the left. The three different viewpoints may be center, 34 degrees to the right, and 34 degrees to the left. In another preferred embodiment of the present invention, further similar viewpoints are collected for each object such that each viewpoint is captured in four different illuminations. For example, the four different illuminations are one light from the center, one light from the right, one light from the left, and two lights one from the right and one from the left. The two different viewpoints are 17 degrees to the right, and 17 degrees to the left. In still another exemplary embodiment of the present invention, each viewpoint is captured in three different illuminations and five different viewpoints. For example, the three different illuminations are one light from the center, one light from the right, and one

light from the left. Also, the five different viewpoints are center, 17 degrees to the right, 17 degrees to the left, 34 degrees to the right, and 34 degrees to the left.

As shown in Fig. 8 step 802 provides that the multilinear data analysis application 800 collects image information describing the illumination, viewpoint, and object. New image data is collected describing the illumination of individual pixels of viewpoints of objects. If each of the illuminations, each of the viewpoints, and each of the pixels for a given object are known, the data is integrated to the tensor D. Otherwise, the data cannot be integrated into the tensor D until those pieces of information are determined. The data describing an unknown illumination, pixel, viewpoint or object is organized as a new data vector d. The new data vector d describes an image having certain illumination and viewpoint data. Then in step 804, the multilinear data analysis application 800 solves for the core tensor Z. For example, this step can be an N-mode SVD procedure 304 as shown in Fig. 3 and described below in relation to Fig. 3. The N-mode SVD procedure 304 solves for the core tensor Z with N being equal to 4. When the procedure 804 or 304 computes the core tensor Z, the multilinear data analysis application 800 advances to step 806.

Given the tensor D takes the form of a IRGXIXEXP tensor, where G is the number of objects, I is the number of illuminations, E is the number of viewpoints, and P is the number of pixels. The N-mode SVD process 804 decomposed the tensor D as follows: D = Z xl Uobjects X2 Uillum X3 Uviewpoints X4 Upixels where the G x I x E x P core tensor Z governs the interviewpoint between the factors represented in the 4 mode matrices: The G x G mode matrix Uobjects spans the space of object parameters, the I x I mode matrix U, num spans the space of illumination parameters and the E x E mode matrix Uyiewpoints spans the space of viewpoint parameters. The P x P mode matrix Upixels orthonon-nally spans the space of images.

The multilinear data analysis incorporates aspects of a linear principal component analysis ("PCA") analysis. Each column of Uobjects is an"eigenimage".

These eigenimages are preferably identical to the conventional eigenfaces, since the eigenimages are computed by performing the SVD on the mode-4 flattened data

tensor D so as to yield the matrix Dobjects. One of the advantages of multilinear analysis is that the core tensor Z can transform the eigenimages in Up, xe) s into a set of eigenmodes, which represent the principal axes of variation across the various modes (object, illuminations, viewpoints), and represent how the various factors interact with each other to create the image images. This can be accomplished by generating the product Z X4 Upixels. In contrast, the PCA basis vectors or eigenimages represent only the principal axes of variation across images.

The image image database can include V I E images for each object which vary with illumination and viewpoint. The PCA output represents each object as a set of V-I-E vector-valued co-efficients, one from each image in which the object appears.

Multilinear analysis allows each object to be represented, regardless of illumination, and viewpoint, with the same coefficient vector of dimension G relative to the bases comprising the G x I x E x P tensor D = Z x2 Ui x3UviewpointsX4Upixels Each column in the tensor D is a basis matrix that comprises N eigenvectors. In any column, the first eigenvector depicts the average object, and the remaining eigenvectors capture the variability across objects for the particular combination of illumination and viewpoint associated with that column. Each image is represented with a set of coefficient vectors representing the object, view point, illumination and viewpoint factors that generated the image. Multilinear decomposition allows the multilinear data analysis application 800 to construct different types of basis depending on the instruction received from the client interface application.

In particular step 814 of Fig. 8 causes the multilinear data analysis application 800 to determine whether the client interface application has instructed the multilinear data analysis application 800 to recognize an unknown object that has been observed displaying a known viewpoint as one of the population of observed known objects. If the multilinear data analysis application 800 has received such instruction, the multilinear data analysis application 800 advances to an object recognition procedure of step 816, shown in greater detail in Fig. 9 and described

infi^a. When the object recognition procedure of step 816 is completed as the multilinear data analysis application 800 advances to step 826. In step 818, the multilinear data analysis application 800 determines whether the client interface application has instructed the multilinear data analysis application 800 to recognize an unknown viewpoint of a known object as one of the viewpoints already observed of such known object. If the multilinear data analysis application 800 has received such instruction, the multilinear data analysis application 800 advances to an viewpoint recognition procedure of step 820, as shown in greater detail in Fig. 10 and described infra. When the viewpoint recognition procedure of step 820 is completed, the multilinear data analysis application 800 is forwarded to step 826.

Thereafter, in step 822, the multilinear data analysis application 800 determines whether the client interface application has instructed the multilinear data analysis application 800 to dimensionally reduce the amount of data describing illuminations. If the multilinear data analysis application 800 has received such instruction, the multilinear data analysis application 800 advances to a data reduction procedure of step 824, as shown in greater detail in Fig. 11 and described infra. Once the data reduction procedure of step 824 is complete, the multilinear data analysis application 800 advances to step 826. Finally, in step 826, the multilinear data analysis application 800 determines whether a data set for a new object should be collected or if the client interface application transmitted new instruction. If a data set for a new object displaying an viewpoint is available, the multilinear data analysis application 800 advances to step 802. If the multilinear data analysis application 800 has received a new instruction from the client interface application, the multilinear data analysis application 800 advances to step 814.

Fig. 9 illustrates a flow diagram of the details of the object recognition procedure of step 816 for recognizing an unidentified object given an unknown image image: the new data vector d. The multilinear data analysis preferably yields a basis tensor (as defined below) that maps all images of an object to the same point in the object parameter space, thus creating a many-to-one mapping. The object recognition procedure of step 816 begins at step 902, in which the matrix Uobjects is extracted. The

N-mode SVD procedure of step 804 (or step 304) decomposes the tensor D resulting in the viewpoint D = Z X] Uobjects X2 Uillum X3 Uviewpoints x4 Upixels and the matrix Uobjects is extracted from this viewpoint. In particular, the matrix Uobjects contains row vectors cT of coefficients for each object p. Once the matrix Objects is extracted, the procedure of step 816 advances to step 904, in which the basis tensor B is generated.

The basis tensor B is constructed according to B = Z X2 Uillum X3 Uviewpoints X4 Upixels- Upon the completion of the construction of the basis tensor B the procedure of step 816 advances to step 906 where this procedure initializes indexes i and e to one (1).

At step 908, the object recognition procedure of step 816 indexes into the basis tensor B to obtain a sub-tensor Bi, e. This is performed for a particular illumination i and viewpoint e to obtain the subtensor Behaving dimensions G x 1 x 1 x p.

Then, in step 910, the subtensor Bi e is flattened along the object mode.

The subtensor Bi, e is flattened along the object mode to obtain the G x P matrix Bi, e (object). It should be noted that a specific training image dd of object p in illumination i and viewpoint e can be written as dp, i.e=BTi.e(object) cp; hence, cp= <BR> <BR> <BR> <BR> - T<BR> B l, efobjet) dp i e Then, in step 912, an index variable p and a variable match are initialized. For example, the index variable p is initialized to one (1), and the variable match is initialized to negative one (-1). Once these variables are initialized, the procedure of step 816 advances to step 914, in which. the projection operator Bg'eTfobject is used to project the new data vector d into a set of candidate coefficient vectors.

Given the new data vector d, the projection operator B-ti.e(object)is used to project the new data vector d into a set of candidate coefficient vectors es e=B-ti.e(object) d for every i, e combination. In step 916, each of the set of candidate coefficient vectors cl, e is compared against the object-specific coefficient vectors cp. The comparison can be made according to the following equation: c,..-c,,.

In step 918, it is determined whether the set of candidate coefficient vectors eie is the closest match to the object-specific coefficient vectors ep up to this point. The best matching vector ep can be the one that yields the smallest value of je,..-c,, among all illuminations and viewpoints. If the magnitude of the difference between the set of candidate coefficient vectors cl, and the object-specific coefficient vectors cp is smaller than any difference computed up to this point, the procedure of step 816 advances to step 920. Otherwise, the magnitude of the difference between the set of candidate coefficient vectors ci,, and the procedure of step 816 is forwarded to step 922. Step 920 provides that the variable match is set to be equal to the index p. The variable match signifies the index of the most closely matched object, such that the set of candidate coefficient vectors ci, e most closely matches the object- specific coefficient vectors Cmatch.

Thereafter, in step 922, it is determined if the index p is equal to G. If that is the case, the procedure of step 816 advances to step 928; otherwise, the procedure of step 816 advances to step 924. In step 924, the index p is incremented by one (1), and the procedure of step 816 advances to step 914, such that the procedure tests each of the objects in the object matrix Uobject from 1 to G.

In step 928, it is determined if the index e is equal to E. If that is the case, the procedure of step 816 sets the index e equal to one (1) and advances to step 930; otherwise, the procedure of step 816 advances to step 934. In step 934, the index e is incremented by one (1), and the procedure of step 816 advances to step 908, such that the procedure tests each of the objects in the object matrix viewpoints from 1 to E.

In step 930, it is determined if the index i is equal to I. If that is the case, the procedure of step 816 advances to step 926; otherwise, the procedure of step 816 advances to step 936. In step 936, the index i is incremented by one (1), and the procedure of step 816 advances to step 908, such that the procedure tests each of the objects in the object matrix Usll,, m from 1 to I. Finally, in step 926, the object match can be identified as the object protrayed in the new data vector d. In a preferred embodiment of the present invention, the variable match can be an indexed array, that records the indices of multiple objects most closely matching the objects portrayed in

the new data vector d. Once the object match is identified, the procedure of step 816 is completed.

Fig. 10 illustrates a flow diagram of the details of the viewpoint recognition procedure of step 820 for recognizing an unidentified viewpoint given an unknown image image: the new data vector d. The viewpoint recognition procedure of step 820 is largely the same as the object recognition procedure of step 816. The viewpoint recognition procedure of step 820 begins in step 1002, in which the matrix Uviewpoints is extracted, in a manner similar to that used to extract Uobjects in step 902. In particular, the matrix Uviewpoints contains row vectors ce of coefficients for each viewpoint e. Once the matrix Uviewpoints is extracted, the procedure of step 820 advances to step 1004, in which the basis tensor B is generated. The basis tensor B is constructed according to B = Z X2 Uillum x1Uobjects x4 Upixels. Upon the completion of the construction of the basis tensor B the procedure of step 820 advances to step 1006 where this procedure initializes indexes i and p to one (1). At step 1008, the viewpoint recognition procedure of step 820 indexes into the basis tensor B to obtain a sub-tensor Bp,i. This is performed for a particular object p and illumination i to obtain the subtensor Bp, j having dimensions 1 x l x E x P.

Then, in step 1010, the subtensor Bp, j is flattened along the viewpoint mode. The subtensor Bp.i is flattened along the viewpoint mode to obtain the E x p matrix Bp, j (viewpoints). It should be noted that a specific training image dd of object p in illumination i and viewpoint e can be written as dp, i. e= BPI c, ; hence, Ce <BR> <BR> <BR> <BR> i (ou<BR> B-1p,i(object) dp,i,e.

Then, in step 1012, an index variable e and a variable match are initialized. For example, the index variable e is initialized to one (1), and the variable match is initialized to negative one (-1). Once these variables are initialized, the procedure of step 820 advances to step 1014, in which. the projection operator &lt; B-5p,i)object)is used to project the new data vector d into a set of candidate coefficient vectors. Given the new data vector d, the projection operator B-Tp,i(object) is used to

project the new data vector d into a set of candidate coefficient vectors CP,, i= B-tp,i(object) d for everyp, i combination. In step 1016, each of the set of candidate coefficient vectors ep E is compared against the object-specific coefficient vectors ee.

The comparison can be made according to the following equation: |cp,e-ce|.

In step 1018, it is determined whether the set of candidate coefficient vectors cep, l is the closest match to the viewpoint coefficient vectors ce up to this point.

The best matching vector ce can be the one that yields the smallest value of tjc.,-Cejj among all illuminations and viewpoints. If the magnitude of the difference between the set of candidate coefficient vectors cp, i and the viewpoint coefficient vectors ce is smaller than any difference computed up to this point, the procedure of step 820 advances to step 1020. Otherwise, the magnitude of the difference between the set of candidate coefficient vectors Cp, and the procedure of step 820 is forwarded to step 1022. Step 1020 provides that the variable match is set to be equal to the index p.

The variable match signifies the index of the most closely matched viewpoint, such that the set of candidate coefficient vectors ep, i most closely matches the viewpoint coefficient vectors match- Thereafter, in step 1022, it is determined if the index e is equal to E. If that is the case, the procedure of step 820 advances to step 1028; otherwise, the procedure of step 820 advances to step 1024. In step 1024, the index e is incremented by one (1), and the procedure of step 820 advances to step 1014, such that the procedure tests each of the viewpoints in the viewpoint matrix Uviewpoints from 1 to E.

In step 1028, it is determined if the index p is equal to G. If that is the case, the procedure of step 820 sets the index p equal to one (1) and advances to step 1030; otherwise, the procedure of step 820 advances to step 1034. In step 1034, the index p is incremented by one (1), and the procedure of step 820 advances to step 1008, such that the procedure tests each of the objects in the object matrix Uobject from 1 to G.

In step 1030, it is determined if the index i is equal to I. If that is the case, the procedure of step 820 advances to step 1026; otherwise, the procedure of step 820 advances to step 1036. In step 1036, the index i is incremented by one (1), and the procedure of step 820 advances to step 1008, such that the procedure tests each of the illuminations in the illumination matrix Ujllum from 1 to I. Finally, in step 1026, the object match can be identified as the object protrayed in the new data vector d. In a preferred embodiment of the present invention, the variable match can be an indexed array, that records the indices of multiple objects most closely matching the objects portrayed in the new data vector d. Once the object match is identified, the procedure of step 820 is completed.

Fig. 11 illustrates a flow diagram of the details for the data reduction procedure step 824 for dimensionally reduce the amount of data describing illuminations. This data reduction procedure step 824 reduces the amount of data by truncating the mode matrices resulting from the N-mode SVD procedure 304 or 804, where N = 4. The truncation of the mode matrices yields an exemplary reduced- dimensionality approximation D'. The truncation of the mode matrices results in the approximation of the tensor D with reduced ranks Rl &lt; Il, R2 &lt; I2,, RN &lt; IN that has a bounded error where the smallest mode-n singular values that were discarded are defined as <BR> <BR> <BR> <BR> <BR> # in=Rn+1,# in=Rn-2,..., # in=ln. The Rth n mode=n eigenvalue is the Frobenius norm of the<BR> <BR> <BR> <BR> <BR> <BR> <BR> subtensor Z.. The subtensor Z-R iS extracted from the tensor Z<BR> 1,...,." -''',...,N~ by holding the ntl'dimension fixed to i, z = R, and varying all other dimensions. Once the index n is initialized, the procedure step 824 advances to step 1104.

In another exemplary dimensionality reduction procedure for use on the tensors is to compute for a tensor D a best rank-(RI, R2,.., RN) approximation D' =Z'X1U'IX2U'2... XN U'N, with orthonormal InxRn mode matrices U',,, for n=1, 2,..., N, which can minimize the least-squares error function |D-D'| ² For

example, N can equal to four (4). The data reduction procedure step 824 begins in step 1102, where an index n is initialized to one (1).

In step 1104, the mode matrix Un is truncated to Rn columns. All data in the mode matrix Un beyond the Rn column can be removed from the matrix Un.

After the matrix Un is truncated, the procedure step 824 advances to step 1106, in which it is determined whether the index n is equal to N. If that is the case, the procedure step 824 advances to step 1110 ; otherwise, the procedure step 824 is forwarded to step 1108. In step 1108, the index n is incremented by one (1), and the procedure step 824 proceeds to step 1104. Then, in step 1110, the index n is initialized to one (1), and the procedure step 824 advances to step 1112, in which the tensor is calculated Un k+1 =Dx2 UkT2 x3 UkT3 ... XN UkT N. When the tensor U'N k+1 is calculated, the procedure step 824 advances to step 1114, in which the tensor UJnk+ is mode-n flattened to obtain the matrix U' K+1. Then in step 1116, the matrix U'k+1 is computed as the I1xR1 matrix whose columns are the first R1 columns of the left matrix of the SVD of U', '.

In step 1118, it is determined whether the index n is equal to N. If that is the case, the procedure step 824 advances to step 1122; otherwise the procedure step 824 advances to step 1120, in which the index n is incremented by one (1) and the procedure step 824 advances to step 1112. Then in step 1122, it is determined whether the mode matrices have converged. The mode matrices have converged if <BR> <BR> <BR> <BR> <BR> Uk+1T UKn |² &gt;(1-¯)Rn, for 1¾n¾N. If the mode matrices have converged,<BR> <BR> <BR> <BR> n the procedure step 824 advances to step 1124; otherwise the procedure step 824 advances to step 1110. In step 1124, the core tensor Z'is computed. The converged mode matrices U'l, U'2.., U'N is used to compute the core tensor ZF = UtN XNU'N and D'Z'x, U'l X2 U'2... xN U'N as the rank-reduced

approximation of the tensor D. Once the core tensor Z'is computed, the procedure step 824 is completed.

C. image Signature Using A Matrix Representation Of A Corpus Of Data Fig. 13 illustrates a flow diagram of an exemplary embodiment of a process implementing a multilinear data analysis application 1300 which is indicative of the multilinear data analysis application. As described above for the multilinear data analysis application, the process 1300 is configured to synthesize a known viewpoint never before recorded of the object. In particular the multilinear data analysis application utilizes the corpus of viewpoint data, which is collected using the data capturing system 112 from different objects as described above in relation to Fig.

2. This corpus of image information is stored in the database 108 of the server 102, and describes illumination of at least one object from at least one viewpoint. The corpus of image information can be organized as a matrix D and is preferably collected from different objects as described above in relation to Fig. 2. It should be understood that the corpus of image information can also be organized as a tensor D or a vector d. The multilinear data analysis application 1300 is similar to the multilinear data analysis application 200 of Fig. 2, except that the data utilized by the multilinear data analysis application 1300 takes is organized as the matrix D, not as the tensor D.

Turning'to further particulars of Fig. 13, in step 1302, the process 1300 collects image information or data on various objects from different viewpoints, e. g., new image data. If the viewpoint and object are known, the data can be integrated into the matrix D. If the viewpoint or object are not known, such data would likely not be integrated into the matrix D until those pieces of information are determined.

The data describing an unknown viewpoint or object is organized as a new data matrix Dp or a new data vector d. The new data matrix Dp can include more than one new data vector d. Each new data vector dp, a of the new data matrix Dp describes the

image of object p performing viewpoint a. With the knowledge of image sequences of several objects, the matrix D can take the form of a yat x fya matrix, where n is the number of objects, t is the number of image samples, and in is the number of viewpoints. The first column of the matrix D stacks the mean first viewpoint of every object, the second column stacks the mean second viewpoint of every object and the third stacks the mean third viewpoint of every object, as follows: D, D = D ; D i , vieHo iut 1 viewpo int 2 ; viewpo int 3 ; J The columns of the matrix Di are the average first viewpoint, second viewpoint and third viewpoint of the ith object. Each image is defined as the illumination of each pixel.

At step 1304, the process 1300 decomposes the matrix D into a core matrix Z, an object matrix P, and a viewpoint matrix A. The core matrix Z can be used for defining the inter-relationships between an objects matrix P and a viewpoint matrix A. This step represents a singular value decomposition ("SVD") process 1304, shown in Fig. 14, and described in further detail herein. The SVD procedure of step 1304 is an orthonormal procedure that solves for the core matrix Z, the object matrix P, and the viewpoint matrix A, which minimizes where I is the identity matrix. When this procedure of step 1304 determines the core matrix Z, the process 1300 advances to step 1305.

In step 1305, the process 1300 analyzes the data collected in the step 1302. The SVD procedure of step 1304 decomposes the matrix D into the product of a core matrix Z, and two orthogonal matrices as follows: D =(ZVTPT)VT AT =S AT, where the Vt-operator is a matrix transpose T followed by a "vec" operator that creates a vector by stacking the columns of the miatrix. The object matrix P=[p1...

Pn...PG]T, whose row vectros Pi are object specific, encodes the invaricncies acrose viewpoints for each object. Thus, the object matrix P contains the object or human image signatures pi. The viewpoint matrix - T =. A 3 walk ascend descend whose row vectors a,, contain the coefficients for the different viewpoint classes c, encodes the invariancies across objects for each viewpoint. The core matrix Z = [Zi ... Z ;... T represents the basis images which are independent of objects and of viewpoints. It governs the relationship between the orthonormal matrices P and A. A matrix S=(zVTPT)VT=[S1..s1...Sn]T is composed of object-specific signature matrices S.

In step 1306, the process 1300 determines whether it has been instructed by the client interface application to synthesize new data describing at least one known viewpoint that was never before recorded of an object. If the process 1300 has received such instruction, step 1308 is executed to perform advances to an object generation procedure, as shown in further detail in Fig. 15 and described herein.

When the object generation procedure of step 1308 is complete, the process 1300 advances to step 1326. Then in step 1326, the process 1300 determines whether a data set for a new object should be integrated into the matrix D or if the client

interface application has transmitted a new instruction. In particular, if the data set for a new object from the viewpoint is available, the process 1300 advances to step 1302.

Otherwise, the process 1300 received the new instruction from the client interface application, so the process 1300 continues to step 1306.

As shown in Fig. 14, the procedure of step 1304 begins in step 1402 by computing the matrix P by solving D = (ZVTPT) VTAT. The process then calculates (DA) VT = ZITPT. The procedure performs an SVD procedure on the left hand side resulting in USVT = ZVTPT. The matrix V is then truncated to the first r-columns of the matrix V. The procedure of step 1304 then solves for the viewpoint matrix A in step 1404 by calculating D = (ZAT) VTPT. Once this is calculated, the procedure calculates (DATA) Vt=ZA1. The procedure performs SVD on the left hand side resulting in USVT = ZAT. The matrix A is then truncated to the first r-columns of the matrix V. In step 1406, the procedure of step 1304 obtains the core matrix Z by Z = (DVTP) vTA, where the matrix P and the matrix A are orthonormal. It should be understood that by setting the matrix A and the matrix P to the first r-columns of the matrix V, effectively accomplishing dimensional reduction.

Fig. 15 illustrates the details of the object generation procedure of step 1308, which synthesizes the remaining viewpoints, which were never before seen, for an new object. The remaining viewpoints are generated given new image data Dnew of the new object observed from a viewpoint. The new signature model of the new object is the matrix Dnew {[? |] L 9] AT Drew Stew Only a portion of the viewpoint classes c are represented the matrix DneW. The linear combination of known signatures is:

where W is a weight matrix. The object generation procedure of step 1308 solves for the weight matrix W of the new object using iterative gradient descent of the error function E = Dnew=WSATine, where A, T". has only columns corresponding to the image examples available in the matrix Dilew. In particular, step 1502 of this procedure initializes an index t to one (1).

In step 1504, the procedure of step 1308 obtains the matrix Q by calculating Q = SAT inc. Once this procedure obtains the matrix Q, step 1506 of the procedure of step 1308 calculates the matrix W (t+1) in the following manner: W (t + 1) = W (t) + y (Dnew -WQ) QT. The step 1508 then calculates Snew (t+1) by calculating SneW (t+1) = W (t + 1) S, then this procedure advances to step 1510.

In step 1510, it is determined whether the error function E has converged. If the error function E has not converged, the procedure of step 1308 continues to step 1512, where the index t is incremented by one (1) and this procedure advances to step 1504. If the error function E has converged, this procedure advances to step 1514. In step 1514 the procedure of step 1308 synthesizes new data from one of the viewpoint parameters c. For example, if the viewpoint parameter c represents the first viewpoint. The new data for the first viewpoint is synthesized by multiplying the newly extracted signature matrix Snew and the viewpoint parameters for the first viewpoint, ayiewpointi, as follows:

viewpoint1 new =s new a viewpointl.

Once the new data is synthesized, the procedure of step 1308 is complete and it exits.

While the invention has been described in connecting with preferred embodiments, it will be understood by those of ordinary skill in the art that other variations and modifications of the preferred embodiments described above may be made without departing from the scope of the invention. Other embodiments will be apparent to those of ordinary skill in the art from a consideration of the specification or practice of the invention disclosed herein. It is intended that the specification and the described examples are considered as exemplary only, with the true scope and spirit of the invention indicated by the following claims.