Apple Patent  Encoding threedimensional data for processing by capsule neural networks
Patent: Encoding threedimensional data for processing by capsule neural networks
Drawings: Click to check drawins
Publication Number: 20210090302
Publication Date: 20210325
Applicant: Apple
Abstract
A method includes defining a geometric capsule that is interpretable by a capsule neural network, wherein the geometric capsule includes a feature representation and a pose. The method also includes determining multiple viewpoints relative to the geometric capsule and determining a first appearance representation of the geometric capsule for each of the multiple viewpoints. The method also includes determining a transform for each of the multiple viewpoints that moves each of the multiple viewpoints to a respective transformed viewpoint and determining second appearance representations that each correspond to one of the transformed viewpoints. The method also includes combining the second appearance representations to define an agreed appearance representation. The method also includes updating the feature representation for the geometric capsule based on the agreed appearance representation.
Claims

A method, comprising: defining a geometric capsule that is interpretable by a capsule neural network, wherein the geometric capsule includes a feature representation and a pose; determining multiple viewpoints relative to the geometric capsule; determining a first appearance representation of the geometric capsule for each of the multiple viewpoints; determining a transform for each of the multiple viewpoints that moves each of the multiple viewpoints to a respective transformed viewpoint; determining second appearance representations that each correspond to one of the transformed viewpoints; combining the second appearance representations to define an agreed appearance representation; and updating the feature representation for the geometric capsule based on the agreed appearance representation.

The method of claim 1, wherein defining the geometric capsule includes: receiving a group of elements that represent a threedimensional scene as an input, identifying sampled elements from the group of elements, and assigning the sampled elements to the geometric capsule.

The method of claim 2, wherein defining the geometric capsule includes initializing the feature representation and the pose for the geometric capsule based on the sampled elements.

The method of claim 2, wherein the group of elements is a point cloud and the elements from the group of elements are points that are included in the point cloud.

The method of claim 2, wherein the group of elements is a group of lowerlevel geometric capsules.

The method of claim 1, wherein determining the transform for each of the multiple viewpoints is performed using a trained neural network.

The method of claim 6, wherein the trained neural network is configured to determine the transform for each of the multiple viewpoints such that the second appearance representations are constrained to match.

A nontransitory computerreadable storage device including program instructions executable by one or more processors that, when executed, cause the one or more processors to perform operations, the operations comprising: defining a geometric capsule that is interpretable by a capsule neural network, wherein the geometric capsule includes a feature representation and a pose; determining multiple viewpoints relative to the geometric capsule; determining a first appearance representation of the geometric capsule for each of the multiple viewpoints; determining a transform for each of the multiple viewpoints that moves each of the multiple viewpoints to a respective transformed viewpoint; determining second appearance representations that each correspond to one of the transformed viewpoints; combining the second appearance representations to define an agreed appearance representation; and updating the feature representation for the geometric capsule based on the agreed appearance representation.

The nontransitory computerreadable storage device of claim 8, wherein defining the geometric capsule includes: receiving a group of elements that represent a threedimensional scene as an input, identifying sampled elements from the group of elements, and assigning the sampled elements to the geometric capsule.

The nontransitory computerreadable storage device of claim 9, wherein defining the geometric capsule includes initializing the feature representation and the pose for the geometric capsule based on the sampled elements.

The nontransitory computerreadable storage device of claim 9, wherein the group of elements is a point cloud and the elements from the group of elements are points that are included in the point cloud.

The nontransitory computerreadable storage device of claim 9, wherein the group of elements is a group of lowerlevel geometric capsules.

The nontransitory computerreadable storage device of claim 8, wherein determining the transform for each of the multiple viewpoints is performed using a trained neural network.

The nontransitory computerreadable storage device of claim 13, wherein the trained neural network is configured to determine the transform for each of the multiple viewpoints such that the second appearance representations are constrained to match.

A system, comprising: a memory that includes program instructions; and a processor that is operable to execute the program instructions, wherein the program instructions, when executed by the processor, cause the processor to: define a geometric capsule that is interpretable by a capsule neural network, wherein the geometric capsule includes a feature representation and a pose; determine multiple viewpoints relative to the geometric capsule; determine a first appearance representation of the geometric capsule for each of the multiple viewpoints; determine a transform for each of the multiple viewpoints that moves each of the multiple viewpoints to a respective transformed viewpoint; determine second appearance representations that each correspond to one of the transformed viewpoints; combine the second appearance representations to define an agreed appearance representation; and update the feature representation for the geometric capsule based on the agreed appearance representation.

The system of claim 15, wherein the program instructions to define the geometric capsule further cause the processor to: receive a group of elements that represent a threedimensional scene as an input, identify sampled elements from the group of elements, and assign the sampled elements to the geometric capsule.

The system of claim 16, wherein defining the geometric capsule includes initializing the feature representation and the pose for the geometric capsule based on the sampled elements.

The system of claim 16, wherein the group of elements is a point cloud and the elements from the group of elements are points that are included in the point cloud.

The system of claim 16, wherein the group of elements is a group of lowerlevel geometric capsules.

The system of claim 15, wherein determining the transform for each of the multiple viewpoints is performed using a trained neural network.

The system of claim 20, wherein the trained neural network is configured to determine the transform for each of the multiple viewpoints such that the second appearance representations are constrained to match.
Description
CROSSREFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 62/904,890, filed on Sep. 24, 2019, the contents of which is incorporated herein in its entirety by reference for all purposes.
TECHNICAL FIELD
[0002] This disclosure relates to encoding threedimensional data for processing by capsule neural networks.
BACKGROUND
[0003] A capsule neural network is a modification and expansion of convolutional neural network architectures that adds structures referred to as capsules. Capsule neural networks arrange capsules in a hierarchical manner to model relationships between groups of data. Each capsule is a group of hidden units. Each group represents a single feature and the hidden units jointly encode information about that feature. For example, the length of the hidden unit vector can be used to represent the existence of the feature and its direction could be used to represent the feature’s instantiation parameters, such as pose. In contrast to unbundled hidden units, capsules can explicitly bind together all of the information regarding one entity in one place. When applied to computer vision models grouping in capsules makes it easy to enforce relationship rules, such as specifying that a particular part can only be a member of a single whole entity by enforcing the routing of the entire capsule to a single parent capsule. This combines the power of distributed representations (used within each capsule) with the interpretability of having one computational entity per realworld entity.
SUMMARY
[0004] One aspect of the disclosure is a method that includes defining a geometric capsule that is interpretable by a capsule neural network, wherein the geometric capsule includes a feature representation and a pose. The method also includes determining multiple viewpoints relative to the geometric capsule and determining a first appearance representation of the geometric capsule for each of the multiple viewpoints. The method also includes determining a transform for each of the multiple viewpoints that moves each of the multiple viewpoints to a respective transformed viewpoint and determining second appearance representations that each correspond to one of the transformed viewpoints. The method also includes combining the second appearance representations to define an agreed appearance representation. The method also includes updating the feature representation for the geometric capsule based on the agreed appearance representation.
[0005] Defining the geometric capsule may include receiving a group of elements that represent a threedimensional scene as an input, identifying sampled elements from the group of elements, and assigning the sampled elements to the geometric capsule. Defining the geometric capsule may also include initializing the feature representation and the pose for the geometric capsule based on the sampled elements.
[0006] The group of elements may be a point cloud and the elements from the group of elements may be points that are included in the point cloud. The group of elements is may be a group of lowerlevel geometric capsules.
[0007] Determining the transform for each of the multiple viewpoints may be performed using a trained neural network. The trained neural network may be configured to determine the transform for each of the multiple viewpoints such that the second appearance representations are constrained to match.
[0008] Another aspect of the disclosure is a nontransitory computerreadable storage device including program instructions executable by one or more processors that, when executed, cause the one or more processors to perform operations. The operations include defining a geometric capsule that is interpretable by a capsule neural network, wherein the geometric capsule includes a feature representation and a pose. The operations also include determining multiple viewpoints relative to the geometric capsule and determining a first appearance representation of the geometric capsule for each of the multiple viewpoints. The operations also include determining a transform for each of the multiple viewpoints that moves each of the multiple viewpoints to a respective transformed viewpoint and determining second appearance representations that each correspond to one of the transformed viewpoints. The operations also include combining the second appearance representations to define an agreed appearance representation and updating the feature representation for the geometric capsule based on the agreed appearance representation.
[0009] Another aspect of the disclosure is a system that includes a memory that includes program instruction and a processor that is operable to execute the program instructions, wherein the program instructions, when executed by the processor, cause the processor to define a geometric capsule that is interpretable by a capsule neural network, wherein the geometric capsule includes a feature representation and a pose. The instructions also cause the processor to determine multiple viewpoints relative to the geometric capsule and determine a first appearance representation of the geometric capsule for each of the multiple viewpoints. The instructions also cause the processor to determine a transform for each of the multiple viewpoints that moves each of the multiple viewpoints to a respective transformed viewpoint and determine second appearance representations that each correspond to one of the transformed viewpoints. The instructions also cause the processor to combine the second appearance representations to define an agreed appearance representation and update the feature representation for the geometric capsule based on the agreed appearance representation.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a block diagram that shows a geometric capsule.
[0011] FIG. 2 is a block diagram that shows a sensing system.
[0012] FIG. 3 is a block diagram that shows a part encoder.
[0013] FIG. 4 is a block diagram that shows an object encoder.
[0014] FIG. 5 is a flowchart that shows an example of a process for encoding a geometric capsule.
[0015] FIG. 6 is a flowchart that shows an example of a process for updating a feature representation of a geometric capsule using multiview agreement.
[0016] FIG. 7 is an illustration that shows an example of a hardware configuration for a computing device.
DETAILED DESCRIPTION
[0017] The systems and methods that are described herein relate to encoding a threedimensional point cloud into a form that can be processed by a capsule neural network. Object representations are learned from a threedimensional point cloud using bundles of geometrically interpretable hidden units, which are referred to herein as geometric capsules. The geometric capsules each encode a geometric entity in terms of presence probability, pose, and feature. A complex object may be encoded hierarchically, by first encoding small surfaces into geometric capsules, and then encoding higherlevel structures into higherlevel geometric capsules that each include a group of lowerlevel geometric capsules.
[0018] The systems and methods that are described herein also relate to a voting method, referred to herein as multiview agreement, that is used to route visual entities into capsules and define poseinvariant feature representations for the capsules. The systems and methods that are described herein also relate to autoencoders that use multiview agreement to hierarchically encode a scene using a point cloud.
[0019] Prior capsule neural network systems typically represent the identity of a visual entity by placecoding, in which the identity of the visual entity corresponds to the index of the capsule. For example, the kth capsule with a hidden state v encodes a variant of the kth feature, k E [1, … , k]. Therefore, only k types of features can be modeled, each with some flexibility. Moreover, at any multiple in an image (e.g., at different poses), this cannot be represented unless the model is applied repeatedly, similar to a convolution operation.
[0020] In some previous work on capsule neural networks, a capsule’s presence probability was encoded as the length of the hidden unit vector corresponding to the capsule. The direction of the vector encodes the pose, and the index of the capsule encodes the feature. In order to model a complex data distribution with a discrete number of features, the pose of each capsule is able to model many variations. For higherlevel features, this makes the pose very high dimensional and hard to interpret. In other prior work, a matrix is used to encode the pose of the entity with respect to the viewer and a separate binary unit is used to encode the existence of the capsule. Encoding the pose of visual entities explicitly as a coordinate transformation makes it possible for the network to encode the geometric relationship between a part and its parent object as a relative transform which is independent of the viewer’s reference frame. This encoding inherently enforces viewpoint independence of the partobject geometric relationship. However, the feature is still represented by the index of the capsule in this encoding scheme. Prior work describing stacked capsule autoencoders modified this design by adding a feature vector to each capsule, but index of the capsule was still used to determine both the identity of the object and the decoder weights that govern its interactions with other capsules. Thus, the added feature vector captured some degrees of variation of the same feature, but the capsule identity was still placecoded.
[0021] Capsule networks are designed to allow the state of a parent capsule to be inferred, given the parts that belong to it. One prior approach is to have each part vote for the state of the parent by transforming its state by a learned weight matrix, which has been shown to work in the setting where discretely many parent objects are being considered for existence. In that case, each part casts a vote per object and the vote is conditioned on the index of the object. However, to represent generic objects that are valuecoded instead of placecoded, a part cannot be relied on to vote for its parent object, because the same part can belong to many different objects. While each part does constrain the space of possible objects, the constraint cannot be reliably specified as a single vote or as a fixed number of votes.
[0022] Another prior approach processes all of the parts collectively into a set transformer that then outputs the parent’s state. Since the model will have access to all the parts simultaneously, it can compute a feature representation for the object directly without any need for explicit voting or agreement among the parts. This approach can be implemented in an encoder that goes from part to object capsules. However, the feature representation is placecoded instead of valuecoded and a separate decoder network per object index is needed for decoding.
[0023] FIG. 1 is a block diagram that shows a geometric capsule 100. The geometric capsule 100 is an encoded representation of a visual entity. As will be explained herein, the geometric capsules 100 explicitly encode the pose and features (e.g., shape) of the visual entity in a computerinterpretable form.
[0024] A visual entity is any type of entity that can be seen (e.g., by human eyes or by sensors such as cameras). A visual entity may be part of an object or all of an object. As examples, a visual entity may be a pointsample from a surface, a surface, a collection of surfaces, an object, or a scene that includes multiple objects. Geometric capsules may be arranged in a hierarchical manner, with higherlevel geometric capsules defined as groups of lowerlevel geometric capsules.
[0025] As one example, the geometric capsule 100 may be an encoded representation of a group of points. As another example, the geometric capsule 100 may be an encoded representation of a surface that is defined based on a group of points. As another example, the geometric capsule 100 may be an encoded representation of a part of an object that is defined by multiple surfaces. As another example, the geometric capsule 100 may be an encoded representation of an object that is defined by multiple parts of the object. As another example, the geometric capsule 100 may be an encoded representation of a scene that is defined by multiple objects.
[0026] The geometric capsule 100 has a presence probability component 102, a pose component 104, and a feature component 106. The presence probability component 102, the pose component 104, and the feature component 106 are encoded hidden units that are included in the geometric capsule 100. As an example, the presence probability component 102, the pose component 104, and the feature component 106 may each be encoded as hidden unit vectors.
[0027] The presence probability component 102 describes the likelihood that the geometric capsule 100 exists. Since the geometric capsule 100 describes a visual entity, the presence probability component 102 therefore describes the likelihood that the visual entity represented by the geometric capsule 100 is present in a scene.
[0028] The pose component 104 describes where the visual entity represented by the geometric capsule 100 is. For example, the pose component 104 may describe the location and orientation of the object as an encoded set of values. As an example, the pose component 104 may be represented as a six degreeoffreedom coordinate transformation which encodes the canonical pose of that visual entity with respect to a viewer. The pose component 104 may be in the form of a transformation between a reference coordinate frame and the visual entity’s canonical frame. The six degreeoffreedom coordinate transformation may be, for example, expressed as a translation and a quaternion (e.g., a fourelement vector that encodes rotation in a threedimensional coordinate system). As an example, the pose component 104 may be encoded such that the space of pose transformations is restricted to threedimensional rotations and threedimensional translations. The pose component 104 may exclude representation of other affine transformations such as scaling, shearing, and reflecting.
[0029] The feature component 106 describes what the visual entity represented by the geometric capsule 100 is. As an example, the feature component 106 may describe the geometric configuration of the visual entity represented by the geometric capsule 100 as an encoded set of values. The feature component 106 may be, for example, a realvalued vector. The feature component 106 may encode all nonpose attributes the visual entity that is represented by the geometric capsule 100, such as the shape of the visual entity.
[0030] The geometric capsule 100 may be represented in the form:
c=(c.sub.p,c.sub.q,c.sub.f) (1)
[0031] In Equation 1, c.sub.p represents the presence probability component 102 where c.sub.p.dielect cons.[0,1]. In Equation 1, c.sub.q represents the pose component 104, and includes a translation and rotation, e.g., each c.sub.q=(t, r) where t.dielect cons..sup.3 is a translation and r.dielect cons..sup.4, .parallel.r.parallel.=1, r.sub.0.gtoreq.0 is a quaternion that represents rotation. Therefore c.sub.q may be a sevendimensional vector that encodes where visual entity is with respect to a reference coordinate frame in six degrees of freedom. In Equation 1, c.sub.f represents the feature component 106, where c.sub.f.dielect cons..sup.D represents the identity of the visual entity to define what the visual entity is and to encode all of the attributes of the visual entity other than its pose.
[0032] As will be explained herein, the geometric capsules 100 are used as the basis for defining a geometric capsule autoencoder model that learns to group lowlevel visual entities such as small local surfaces (parts) into highlevel entities such as objects. A voting mechanism, referred to herein as multiview agreement, facilitates valuecoded capsule representations. The geometric capsule autoencoders are stacked to define successively higherlevel representations, such as a point representation, a part representation, and an object representation. This configuration allows for understanding of object pose in a computerinterpretable manner, for use in tasks such as aligning entities such as point clouds, for use in tasks that require semantic understanding such as shape classification, and for use in other tasks that benefit from understanding and/or manipulating the poses of visual entities.
[0033] The systems and methods that are described herein include a voting mechanism for capsules, which is referred to as multiview agreement. The systems and methods that are described herein include a capsule design, which is referred to as a geometric capsule. The systems and methods that are described herein use a variational autoencoder model that is configured to encode geometric capsules and use the geometric capsules to learn object representations. These models are may be referred to as geometric capsule autoencoders.
[0034] The systems and methods herein are configured to encode and interpret threedimensional input data. In the disclosure that follows, point cloud data is used as an example of threedimensional input data. Using point cloud data, a visual scene may be represented as an unordered set of threedimensional points. Point clouds encode locations of observed occupancy using threedimensional coordinates. Thus, for example, each point in a point cloud may correspond to a location on the surface of a solid object. Because of this, analysis starts with geometrically meaningful entities.
[0035] FIG. 2 is an illustration that shows a sensing system 210. The sensing system 210 is configured to observe a scene 212 and to output a point cloud 214 that represents geometric features (e.g., point measurements of surface locations) of objects that are present in scene. The scene 212 may be any physical environment or simulated physical environment. The sensing system 210 is a sensor that is configured to observe the scene 212 and output information describing the scene, such as the point cloud 214. As examples, the sensing system 210 may be a three dimensional sensing device such as a depth camera (e.g., an RGBD camera), a LIDAR sensor, a structured light sensor, an ultrasonic sensor, or any other type of sensing device operable to output information describing the geometric configurations of observed visual entities. The information collected by the sensing system 210 may be processed into the point cloud 214 or other computerinterpretable data representation of the scene 212.
[0036] As will be described in detail, threedimensional input data, such as the point cloud 214, can be processed to define a hierarchical representation of the scene 212. The hierarchical representation of the scene 212 can be defined by grouping points from the point cloud 214 into parts, and then grouping parts into objects. Each of the parts and each of objects are represented by a geometric capsule, per the description of the geometric capsule 100. The hierarchical representation of the object is determined by dynamically routing points from the point cloud 214 to geometric capsules that each represent a part (herein, “part capsules”) and by routing the part capsules to geometric capsules that each represent an object (herein, “object capsules”). In the description herein, routing is performed using a process referred to as multiview agreement to determine the part capsules and to determine the object capsules.
[0037] FIG. 3 is an illustration that shows a part encoder 320. The part encoder 320 is implemented in the form of a variational autoencoder and may also be referred to as a pointstoparts autoencoder. The part encoder 320 is configured to encode a part in the form of capsules that describe geometry of parts of an object and can be processed by a capsule neural network. These capsules are referred to herein as geometric part capsules or part capsules.
[0038] The part encoder 320 is configured to process threedimensional input data, which in the illustrated example is a point cloud X, and to output part capsules V. The point cloud the point cloud X is equivalent to the point cloud 214. The part capsules V encode a portion of an object (e.g., a part of a surface), and are consistent with the description of the geometric capsule 100. To process the point cloud X, the part encoder 320 includes an initialization procedure 322, a dynamic routing procedure 324, and a feature update procedure 326.
[0039] The initialization procedure 322 defines the part capsules V and sets initial values for each of the part capsules V including initial values for the pose component and feature component for each of the part capsules. The dynamic routing procedure 324 assigns points from the point cloud X to specific ones of the part capsules V. The feature update procedure 326 updates the feature component for each of the part capsules V. The dynamic routing procedure 324 and the feature update procedure 326 are implemented using one or more capsule neural networks that are configured to accept the part capsules V as an input.
[0040] In an example of an implementation of the part encoder 320, the point cloud X and the part capsules V are defined as follows:
X={x.sup.i}.sub.i=1.sup.N (2)
V={v.sub.q.sup.j,v.sub.f.sup.j}.sub.j=1.sup.M (3)
[0041] In Equation 2, x.sup.i.dielect cons..sup.3 represents a threedimensional point. In Equation 3, v.sub.q.sup.j represents the pose for the j.sup.th capsule and v.sub.f.sup.j represents the feature for the j.sup.th capsule. The number N represents the total number of points in the point cloud X, which is larger than the number M, which represents the total number of the part capsules V. Multiple points from the point cloud X are used to define each of the part capsules V, as will be explained herein.
[0042] Since the point cloud X is sampled from the surface of objects, it can be treated as a collection of twodimensional surfaces embedded in a threedimensional space. The feature component v.sub.f.sup.j for each of the part capsules V may therefore include an encoded representation of a surface. The feature component v.sub.f.sup.j may be encoded based on the points included in a part capsule V using a trained encoding model, such as a neural network, that is trained to encode a surface in a form that can be subsequently decoded by a corresponding decoder model.
[0043] One example of a prior art encoding and decoding scheme that can be used to encode the feature component v.sub.f.sup.j for each of the part capsules V is know as a FoldingNet. In this approach, a surface is represented using a feature vector v.sub.f.dielect cons..sup.D that describes how a twodimensional unit square can be folded into that surface. The surface represented by any feature f can be decoded using a neural network G.sub..theta.:(.sup.D.times..sup.2).fwdarw..sup.3 that maps the feature components v.sub.f.sup.j concatenated with twodimensional points sampled from a unit square to threedimensional points.
[0044] The pose component v.sub.q.sup.j for each of the part capsules V is determined such that it can be applied to transform the generated threedimensional surface to the viewer’s reference frame. Thus, each part capsule V may define a threedimensional surface that is a constituent part of a larger threedimensional surface. Determination of the pose component v.sub.q.sup.j will be described further herein.
[0045] To infer the part capsules V given the point cloud X, the pose component v.sub.q.sup.j is initialized for each of the part capsules V as part of the initialization procedure 322. Points are sampled from the point cloud X in a number that is equal to the number M of the part capsules V and each of the sampled points is assigned to one of the part capsules V. The points may be sampled from the point cloud X in a manner that enforces spacing between the sampled points and samples points from various locations through the point cloud X such that the sampled points are spatiallyrepresentative of the geometric configuration of the point cloud X. As an example, the points may be sampled from the point cloud X using greedy farthest point sampling. The translation values of the pose components v.sub.q.sup.j of the part capsules V are set to the translation values of sampled points such that locations of the part capsules V correspond to the locations on the points that are sampled during the initialization procedure 322. The rotation values for each pose component v.sub.q.sup.j are set to be random. Additionally, variational parameters (.mu..sup.j, .sigma..sup.j) are defined to be the mean and standard deviation for a Gaussian distribution corresponding to the feature vector v.sub.f.sup.j. The variational parameters are initialized to 0 and 1 respectively. The feature component v.sub.f.sup.j is therefore initialized to represent a small surface of limited extents to represent the sampled point, and is located and oriented according to the pose component v.sub.q.sup.j.
[0046] After the feature component v.sub.f.sup.j and the pose component v.sub.q.sup.j are initialized for each of the part capsules V during the initialization procedure 322, the dynamic routing procedure 324 and the feature update procedure 326 are performed iteratively. The dynamic routing procedure 324 updates the assignment of points from the point cloud X to the part capsules V. The feature update procedure 326 updates the feature component v.sub.f.sup.j and the pose component v.sub.q.sup.j for each of the part capsules V based on the points that are currently assigned to each of the part capsules V to reflect the fact that one or more additional points may have been assigned to each of the part capsules V by the dynamic routing procedure 324.
[0047] In each iteration of the dynamic routing procedure 324, points from the point cloud X are assigned to the part capsules V. Each part feature v.sub.f.sup.j is sampled from a Gaussian distribution (.mu..sup.j, .sigma..sup.j) as in Equation 4. Each part capsule is then decoded using the neural network G.sub..theta. and a uniformly sampled unit square grid U to obtain a folded surface Y.sup.j as in Equation 5.
v f j = .mu. j + .sigma. j * , ~ ( 0 , 1 ) ( 4 ) Y j  v q j = { y  y = G .theta. ( v f j , u x , u y ) , ( u x , u y ) .dielect cons. U } ( 5 ) ##EQU00001##
[0048] The generated surface is in the canonical pose of the part that is represented by the part capsule V. The generated surface is transformed from the canonical pose of the part to the viewer’s frame by applying the transformation v.sub.q.sup.j as in Equation 6.
Y j = { v q j .circlew/dot. y y .dielect cons. Y j v q j } ( 6 ) ##EQU00002##
……
……
……