WO1994006093A1 - Computer method and apparatus for matching between line drawings - Google Patents

Computer method and apparatus for matching between line drawings Download PDF

Info

Publication number
WO1994006093A1
WO1994006093A1 PCT/US1993/008075 US9308075W WO9406093A1 WO 1994006093 A1 WO1994006093 A1 WO 1994006093A1 US 9308075 W US9308075 W US 9308075W WO 9406093 A1 WO9406093 A1 WO 9406093A1
Authority
WO
WIPO (PCT)
Prior art keywords
points
point
working
coordinate
matcher
Prior art date
Application number
PCT/US1993/008075
Other languages
French (fr)
Inventor
Tomaso Poggio
Stephen E. Librande
Original Assignee
Massachusetts Institute Of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Massachusetts Institute Of Technology filed Critical Massachusetts Institute Of Technology
Priority to JP50732794A priority Critical patent/JP3727061B2/en
Publication of WO1994006093A1 publication Critical patent/WO1994006093A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/757Matching configurations of points or features

Definitions

  • a computer can be used to generate frames of animated drawings. Instead of drawing each frame in the animated sequence, a fewer number of key frames are actually drawn by hand or other means. Then the computer generates the necessary intermediate frames between pairs of the initial key frames to form the animation sequence. This is known as "in-betweening".
  • the computer generates in-between drawings using interpolation techniques on point data in an initial key-frame drawing and in a final key-frame drawing.
  • a method of in-betweening using interpolation is described by Poggio and Brunelli in U.S. Patent Application Serial No. 07/819,767.
  • each point on the initial drawing must be matched to a corresponding point on the final drawing.
  • computer animation it is necessary to correspond control points of the initial and final key ⁇ frame drawings so the computer can interpolate between the key frames.
  • the present invention addresses the needs of the prior art.
  • the present invention provides computer apparatus and method for determining correspondence between two shapes (or drawings) .
  • the present invention provides a computer matcher for determining point by point, matches/correspondence between a first object (e.g., drawing) and a target object (e.g., drawing) whether the objects have similar shapes, or one object is a distortion of the other object, or the two objects are different in a variety of geometrical features (e.g., different total number of points in each drawing).
  • the present invention provides computer apparatus for transforming points on a first drawing to points on a second drawing.
  • the invention apparatus includes an initial association means and a matcher coupled to the initial association means.
  • the initial association means selects and associates a certain number of working points on the first drawing with a same number of working points on the second drawing. As such, the working points in the second drawing serve as respective matched points to the working points in the first drawing.
  • the matcher determines correspondence of, and thus matches, remaining points on the first drawing with respective remaining points on the second drawing. This is accomplished by the matcher performing a vector transformation of each remaining point on the first drawing to a respective point on the second drawing.
  • the vector transformation is defined by the association between the working points of the first drawing and the working points of the second drawing formed by the initial association means.
  • the initial association means includes a user interface that enables a user to specify at least four working points of the first and second drawings and their respective association between the first and second drawings.
  • the matcher further provides a single match (e.g., among possible multiple matches) for each of the remaining points on the first drawing with a respective remaining point on the second drawing by performing a ranking function.
  • the ranking function assigns a numerical value to each match. The match with a resulting ranking function value closest to a threshold value is given the highest ranking or preference, and/or is confirmed where the match was initially questioned in its correctness.
  • Figures la-b illustrate an example of matched/ corresponding points between two similar shapes.
  • Figure 2 is a block diagram of a preferred embodiment of the invention.
  • Figure 3 illustrates an example of line-drawing- matching using a preferred embodiment of the invention.
  • Figure 4 is a flow chart of a matching routine employed in the preferred embodiment of the present invention of Figure 2.
  • Figures la-lb illustrate matched points between two example drawings.
  • Figure la illustrates a drawing 1 of the letter "J".
  • the drawing in Figure la is shown with nine points (P,, P 2 ... P 9 ) .
  • the number of actual points on the drawing may be more or less than nine.
  • Figure lb illustrates a transformation of the subject letter "J" from Figure la.
  • a human can approximate the placement of the nine points corresponding to those shown in Figure la.
  • Those nine corresponding points are shown in Figure lb.
  • a shape is typically composed of various sub-shapes or segments.
  • the drawing 1 in Figure la can be divided into two discrete sub-shapes.
  • One sub-shape is the straight line segment bounded by P 1 and P 3 .
  • the other sub-shape is the hook-shaped segment bounded by P 2 and P 9 .
  • the transformed straight line segment is then located in the drawing 2 of Figure lb and corresponding points (P',, P' 2 , P' 3 ) are approximately labeled accordingly.
  • the hook-shaped segment, rotated and deformed is found in the drawing 2 of Figure lb.
  • each image or subject is divided into sub-shapes or segments and each segment is treated (processed) individually.
  • FIG. 2 is a schematic block diagram of an embodiment of the invention.
  • a matcher 10 functions within a computer (digital processor) 20.
  • Stored in or otherwise provided to working memory of computer 20 are two key frames of drawings 30,40 which serve as inputs to the matcher 10.
  • a source key frame 30 contains a source drawing 3.
  • a target key frame 40 contains a target drawing 4.
  • a user 60 through user interface 50 (e.g., workstation and interactive or other configured program) , causes the matcher 10 to match every control point on the source drawing 3 to a corresponding control point on the target drawing 4.
  • the matcher 10 transforms the control points of source drawing 3 into the target drawing 4. This is accomplished as follows.
  • Figure 3 illustrates a source and target line drawings 3,4, which will be used to describe the invention.
  • the source drawing 3 is the initial key-frame 30 drawing.
  • the target drawing 4 is the final key-frame 40 drawing.
  • the source drawing 3 and target drawing 4 may be hand-drawn, computer generated, or scanned images input and stored in memory of computer 20.
  • a goal of the user 60 is to generate from these given drawings 3,4 in-between (i.e., intermediate) shapes or drawings between the source drawing 3 and target drawing 4.
  • the points on the source drawing 3 are matched to the target drawing 4.
  • the source drawing 3 and target drawing 4 each have an arbitrary number of control points 31,41 respectively.
  • the user identifies and marks at least four pairs of matched or corresponding points between the source drawing 3 and target drawing 4. Determining correspondences between the two drawings 3,4 is generally quickly and easily done by the user 60.
  • the user selects point positions 31 that can be visually differentiated on both the source drawing 3 and target drawing 4.
  • the end points of segments are two such points. Curve transition points are other such points. As explained below, marking the endpoints of segments reduces the chances that points will be left unmatched. In addition, marking the endpoints of segments reduces the chance of multiple intersections.
  • endpoints 31a and 31d of source drawing 3 are matching/corresponding points to endpoints 41a and 4ld respectively of target drawing 4.
  • curve transition points 31b and 31c of source drawing 3 are matching/corresponding points to curve transition points 41b and 41c respectively of target drawing 4. This produces four control point pairs 31a,41a; 31b,41b; 31c,41c; and 31d, 41d as illustrated in Figure 3.
  • the computer 20 aids the user 60 by marking four pairs of matched points between drawings 3 and 4.
  • the endpoints 3la,3Id of the source drawing are matched to the endpoints 4la,4Id of the target drawing.
  • Linear interpolation or a similar technique is used to match the remaining two pairs of points.
  • the user 60 is permitted to alter the points marked by the computer to meet the user's better judgement.
  • the computer selection of points does not always lead to correct matches as seen by the user 60, the user 60 is saved some labor.
  • the present invention and in particular matcher 10 operate as follows.
  • matcher 10 constructs a vector that represents the slope and y-intercept of a line that determines matches (i.e., corresponding points) between the two drawings. Specifically, for each point of the first drawing, the vector provides a line that intersects with a point in the second drawing. The intersected point in the second drawing is the matching or corresponding point to the subject point in the first drawing. Hence, the vector is referred to as a transform vector.
  • one pair of points 31a,41a is used to identify respective origins of the frames of reference used for the drawings 3,4.
  • the other three pairs of points marked by user 60 are used to create the transform vector. That is, one marked point 31a on the source drawing 3 is selected to be the origin of the source drawing.
  • the origin point 31a may be any marked point located anywhere on the source drawing 3.
  • the first point marked by the user 60 is selected as the origin point.
  • the origin point is selected at random from the set of marked points. As shown in Figure 3, the origin of the frame of reference of source drawing 3 is located at position (x o ,y o ) .
  • the corresponding point 41a of the target drawing 4 becomes the origin of the frame of reference of drawing 4.
  • the origin of the frame of reference of target drawing 4 is located at position ( ⁇ 'o»y'o) • ⁇ he two origins are then associated with each other, such that the source origin will transform into the target origin.
  • the computer 20 via matcher 10) defines the line 34a connecting the two origins (as shown in Figure 3). The origins of in-between drawings will be located on the connecting line 34a.
  • the user specifies to matcher 10 the location in the respective drawing of each point of the pairs. That is, having determined the origins in drawings 3 and 4, user 60 specifies to matcher 10 the location of point 31b at (x l7 y,) in drawing 3. The corresponding point 41b on target drawing 4 is then located at (x',, y',) in drawing 4 such that point 31b of drawing 3 transforms into the point 41b in drawing 4.
  • User 60 specifies to matcher 10 the location of point 31c at (x 2 , y 2 ) in drawing 3. The corresponding point 41c on target drawing 4 is then located at (x' 2 , y' 2 ) in drawing 4 such that point 31c is transformed into point 41c.
  • matcher 10 defines a respective connecting line between the associated points as shown in Figure 3. Specifically, matcher 10 calculates
  • matcher 10 uses the three foregoing user-marked pairs of points (31b,41b), (31,41c), (31d,41d) to calculate a transform matrix which ultimately defines the transform vector. More specifically, matcher 10 creates a transform vector [a,b,c] from the coordinates of the three non-origin user-marked points. The y'-intercept of the vector on the target drawing 4 is calculated from the equation
  • a, b, and c are the unknowns
  • x and y are vectors of the known (x,y) positions in the source drawing 3
  • x' and y' are vectors of the known (x',y') positions in the target drawing 4.
  • matcher 10 applies the newly calculated transform vector [a,b,c] to every unmarked (i.e., not previously marked by user 60) point 31 on the source drawing 3.
  • a working line is defined.
  • Matcher 10 then plots each resulting working line onto the target frame 40 (i.e., in the target drawing 4) , and any intersections between the line and the target drawing 4 become possible locations of matches (i.e, corresponding points to the subject source drawing point) . If the source drawing 3 and target drawing 4 are exact affine transformations, then the transform vector is guaranteed to lead to perfect results.
  • the present invention provides additional processing as follows. In cases where there are more than one intersection (case 2) , the best intersection is calculated. This is accomplished using a ranking function, which assigns a numerical value to every intersection of a given working line. The closer the assigned numerical value or rank is to 0 (or a suitable predetermined threshold) , the more likely the intersection is the correct choice. In the case of a single intersection (case 3) , the ranking function is used to judge the correctness of the intersection.
  • the distances and angles between the subject drawing points 31,41 and the respective previous matched points 31a,31b,41a,41b in the source drawing 3 and the target drawing 4 are determined.
  • the previous matched points are also marked points.
  • the previous matched points will be former subject points that had a viable best intersection.
  • the distances and angles of the subject source drawing point 31 with respect to the previous matched points 31a,31b in source drawing 3 are compared to the distances and angles between the intersection (new match) point 41 in the target drawing 4 and the previous matched points 41a,41b in target drawing 4, using the equation
  • ⁇ t is the angle between the vectors from subject source drawing point 31 and each of the two previously matched source drawing points 31a,31b;
  • £ t is the distance between the subject target drawing intersection point 41 and the previously matched target drawing point 41b;
  • ⁇ F is the distance between the subject source drawing point 31 and the previously matched source drawing point 31b;
  • C is a sealer weighting that makes either angle or distance more important as desired. Higher values of C put more weight on the distance measurements and fractional values of C makes the angle measurements more important. In a preferred embodiment of the invention, C is assigned the value 1.0 to make distance and angle measurements equal in importance.
  • Figure 4 is a flow chart of a computer matching routine 100 that implements matcher 10 ( Figure 2) .
  • the matching routine 100 is executed by computer 20 and operates on individual segments of the source and target drawings.
  • the user On input to matching routine 100, the user provides/specifies at least four pairs of matched control points per drawing segment (as described in Figure 3) , one pair identifying origins of the source and target drawing segments.
  • the computer 20 (routine 100) first initializes all data at step 105 in Figure 4. Initialization includes defining the matrix sizes and initializes the matrix values to the values of the user specified matrix points (i.e., the non-origin pairs of matched points) .
  • the matrix can be sized to accommodate more than three pairs of user given matrix points (hence the user may specify more than four pairs of marked points in the initial steps of matcher 10 illustrated in Figure 3) .
  • additional user-marked (specified) point pairs exceeding the selected matrix size are used as an aid in curve-fitting intermediate points.
  • the matrix size may be adjusted downward to accommodate less than three pairs of user specified matrix points.
  • the user may need to only specify less than three pairs of initially matched points, one pair identifying origins in the source and target drawings and remaining pairs used to define the matrix.
  • processing with four pairs of user specified points minimizes user input and enables very good matching results.
  • the routine 100 calculates the transform vector [a,b,c] at step 110 according to Equation 3. Matching routine 100 subsequently uses the values of a, b, and c to compute a transform for each control point on the source drawing to a point on the target drawing.
  • routine 100 next loops at step 165 through all control points on the source drawing.
  • control points on the source drawing are searched sequentially from the given (user specified) origin.
  • the first step 115 in the loop through the source drawing is to obtain the (x,y) position of a succeeding subject point (i.e., succeeding the origin or last processed point) on the source drawing.
  • the point is checked at step 120 to determine if the point is one of the initially given (i.e., user specified or marked) input points. If the point is given (i.e., has been initially marked by the user) , then the corresponding point on the target drawing has also been preselected and marked on input (by the user) . The subject point on the source drawing is paired with the prespecified corresponding marked point on the target drawing at step 125 in Figure 4. If the point has not been initially marked (given on input) by the user, then the y'-intercept on the target drawing is calculated at step 130 according to Equation 4.
  • the routine 100 overlays the resulting line on the target drawing and determines at step 135 the number of intercepts (i.e., number of times the line intersects) with the target drawing. There are three possible cases which can arise at this time. There can be no intersections, there can be one intersection, or there can be more than one intersection with the target drawing.
  • the subject source drawing point is put onto a wait queue at step 160.
  • the wait queue will be processed once a viable intersection is found for a subsequent processed source drawing point.
  • the loop through the source drawing points continues if there are more points to process as determined at step 165 in Figure 4.
  • the loop begins again after incrementing to the next point at step 170 on the source drawing.
  • Routine 100 determines the best intersection at step 140 in the intersection array according to Equation 5. Specifically, the routine 100 calculates for each intersection a ranking R from Equation 5. Routine 100 selects the intersection with the lowest calculated ranking value R to be the best intersection.
  • routine 100 checks at step 145 the rank value, R, of the selected intersection to determine the viability of the corresponding target drawing point (i.e., the point at which the selected intersection crosses the target drawing) .
  • routine 100 makes a viability check at step 145 based on the rank value, R, calculated for that intersection.
  • the ranking value, R, of an intersection must be less than or equal to a predetermined maximum allowed value in order for the corresponding intersection (target drawing) point to be considered a viable match point.
  • the maximum allowed value for the rank is determined interactively by user 60 based on the relative sizes of the target and source drawings.
  • the subject source drawing point is put on the wait queue at step 160.
  • the loop through the source drawing continues as described above if there are more points at step 165 to process.
  • the loop begins again after incrementing at step 170 to the next point on the source drawing.
  • the routine 100 pairs the subject source drawing point to the confirmed viable intersection point on the target drawing at step 150 in Figure 4. Because a viable match has been found, the routine 100 processes the wait queue at step 155.
  • the data from the most recently paired match points is used to determine matches/correspondence to the target drawing points for the source drawing points on the wait queue.
  • a match point i.e., position
  • the loop through the source drawing continues at step 165 if there are more source drawing points to process. The loop begins again after incrementing to the next point at step 170 on the source drawing.
  • routine 100 After the routine 100 has initially processed (i.e., looped through) all points on the source drawing, there may be points remaining on the wait queue at step 175. There will be at least one point on the wait queue if the last source drawing point did not have a viable match on the target drawing. To prevent leaving source drawing points unmatched, the routine 100 processes the wait queue at step 175 (by linear interpolation between previously processed pairs of match points) prior to returning 180 control to the main/calling routine of computer 20.
  • Computer 20 is a minicomputer, PC, or the like.
  • User interface 50 includes I/O devices coupled to computer 20 such as a display monitor and keyboard or mouse through which the user inputs his selections.
  • computer 20 generates and executes commands for carrying out user selections.
  • a program/routine executed on user command is used to effect user selection.
  • user selection includes user specification and/or marking of desired points in a drawing held in working memory of computer 20.
  • User interface 50 also includes interactive or other working programs for prompting/obtaining user input.
  • the working program formats and provides data to matcher 10 to initiate execution of matcher 10 (i.e., matching routine 100).
  • Such communication between user 60 and user interface 50, and between user interface 50 and matcher 10 is supported by common techniques in the art of computer programming. For example, a menu driven main program may prompt user 60 for his selection of control point pairs, and his request to run/execute matcher 10 with the desired input (i.e., given source and target drawings, and user specified control point pairs) .
  • Other means e.g., software routines and the like for initially selecting and associating a desired number of working control point pairs from source and target drawings are suitable. Such means would then provide the desired input to matcher 10.

Abstract

Computer apparatus (10, 20) and method determines correspondence between two shapes or drawings (3, 4). Included is a computer matcher (10) which determines point by point matches/correspondence between a source object (3) or drawing and a target object (4) or drawing. As applied to the generation of animation sequences, the computer matcher (10) is given as input a source drawing (3), a target drawing (4) and at least four working points on the first drawing matched to four working points on the second drawing. The matcher (10) defines a transform vector from the initially given working points of the first drawing (3) and working points of the second drawing (4) and their association. With the transform vector, the matcher (10) performs a vector transformation of each of the remaining points on the first drawing (3) to a respective point on the second drawing (4). This generates a correspondence and thus match between remaining points on the first drawing (3) with respective remaining points on the second drawing (4). Additional processing with a ranking function provides a single match from possible multiple matches for each of the remaining points on the first drawing (3) with a respective remaining point on the second drawing (4). The ranking function also confirms matches made by the vector transformation.

Description

COMPUTER METHOD AND APPARATUS FOR MATCHING BETWEEN LINE DRAWINGS
Background of the Invention
In an animated sequence, there is a series of images showing changes in subject position/pose, and/or in background, foreground or other features. For each image, there are multiple frames of drawings. Without the aid of computer animation, each frame of a given image must be redrawn. The process of redrawing each frame is tedious and time consuming.
A computer can be used to generate frames of animated drawings. Instead of drawing each frame in the animated sequence, a fewer number of key frames are actually drawn by hand or other means. Then the computer generates the necessary intermediate frames between pairs of the initial key frames to form the animation sequence. This is known as "in-betweening".
Generally, the computer generates in-between drawings using interpolation techniques on point data in an initial key-frame drawing and in a final key-frame drawing. A method of in-betweening using interpolation is described by Poggio and Brunelli in U.S. Patent Application Serial No. 07/819,767. To be successful, each point on the initial drawing must be matched to a corresponding point on the final drawing. In computer animation, it is necessary to correspond control points of the initial and final key¬ frame drawings so the computer can interpolate between the key frames.
Matching every point between two drawings by hand is feasible when there are only a small number of control points. As the number of control points increases, the task becomes more complex and error-prone. If the drawings are matched incorrectly, then any in-between drawings generated will be incorrect.
Accordingly, there is a need for improvement in generating frames of an animation sequence, and in particular, in "in-betweening", i.e., generating in- between/intermediate drawings between given key frames.
Summary of the Invention
The present invention addresses the needs of the prior art. In particular, the present invention provides computer apparatus and method for determining correspondence between two shapes (or drawings) . As such, the present invention provides a computer matcher for determining point by point, matches/correspondence between a first object (e.g., drawing) and a target object (e.g., drawing) whether the objects have similar shapes, or one object is a distortion of the other object, or the two objects are different in a variety of geometrical features (e.g., different total number of points in each drawing). In a preferred embodiment (for use in, for example, the generation of animation sequences) , the present invention provides computer apparatus for transforming points on a first drawing to points on a second drawing. The invention apparatus includes an initial association means and a matcher coupled to the initial association means. The initial association means selects and associates a certain number of working points on the first drawing with a same number of working points on the second drawing. As such, the working points in the second drawing serve as respective matched points to the working points in the first drawing.
The matcher determines correspondence of, and thus matches, remaining points on the first drawing with respective remaining points on the second drawing. This is accomplished by the matcher performing a vector transformation of each remaining point on the first drawing to a respective point on the second drawing. The vector transformation is defined by the association between the working points of the first drawing and the working points of the second drawing formed by the initial association means.
In one embodiment, the initial association means includes a user interface that enables a user to specify at least four working points of the first and second drawings and their respective association between the first and second drawings.
In accordance with one aspect of the present invention, the matcher further provides a single match (e.g., among possible multiple matches) for each of the remaining points on the first drawing with a respective remaining point on the second drawing by performing a ranking function. In particular, the ranking function assigns a numerical value to each match. The match with a resulting ranking function value closest to a threshold value is given the highest ranking or preference, and/or is confirmed where the match was initially questioned in its correctness.
Brief Description of the Drawings
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
Figures la-b illustrate an example of matched/ corresponding points between two similar shapes. Figure 2 is a block diagram of a preferred embodiment of the invention.
Figure 3 illustrates an example of line-drawing- matching using a preferred embodiment of the invention. Figure 4 is a flow chart of a matching routine employed in the preferred embodiment of the present invention of Figure 2.
Detailed Description of a Preferred Embodiment of the Invention Figures la-lb illustrate matched points between two example drawings. Figure la illustrates a drawing 1 of the letter "J". For simplicity and clarity of description, the drawing in Figure la is shown with nine points (P,, P2 ... P9) . The number of actual points on the drawing may be more or less than nine. Figure lb illustrates a transformation of the subject letter "J" from Figure la. Although the drawing has been rotated and deformed, a human can approximate the placement of the nine points corresponding to those shown in Figure la. Those nine corresponding points (P'j, P'2 ... P'3) are shown in Figure lb.
More particularly, a shape is typically composed of various sub-shapes or segments. For example, the drawing 1 in Figure la can be divided into two discrete sub-shapes. One sub-shape is the straight line segment bounded by P1 and P3. The other sub-shape is the hook-shaped segment bounded by P2 and P9. The transformed straight line segment is then located in the drawing 2 of Figure lb and corresponding points (P',, P'2, P'3) are approximately labeled accordingly. Similarly, the hook-shaped segment, rotated and deformed is found in the drawing 2 of Figure lb. The spatial relationship among points P2 through P9 on the Figure la drawing is then used in locating/approximating the corresponding points (P'2 through P'9) in the Figure lb drawing. Points in the transformed drawing 2 in Figure lb corresponding to the points in the initial Figure la drawing 1 result. Hence, in a preferred embodiment of the invention, each image or subject is divided into sub-shapes or segments and each segment is treated (processed) individually.
Figure 2 is a schematic block diagram of an embodiment of the invention. A matcher 10 functions within a computer (digital processor) 20. Stored in or otherwise provided to working memory of computer 20 are two key frames of drawings 30,40 which serve as inputs to the matcher 10. A source key frame 30 contains a source drawing 3. A target key frame 40 contains a target drawing 4. A user 60, through user interface 50 (e.g., workstation and interactive or other configured program) , causes the matcher 10 to match every control point on the source drawing 3 to a corresponding control point on the target drawing 4. The matcher 10 transforms the control points of source drawing 3 into the target drawing 4. This is accomplished as follows.
Figure 3 illustrates a source and target line drawings 3,4, which will be used to describe the invention. For simplicity and clarity of description, each line drawing has only one segment. The source drawing 3 is the initial key-frame 30 drawing. The target drawing 4 is the final key-frame 40 drawing. In practice, the source drawing 3 and target drawing 4 may be hand-drawn, computer generated, or scanned images input and stored in memory of computer 20. A goal of the user 60 is to generate from these given drawings 3,4 in-between (i.e., intermediate) shapes or drawings between the source drawing 3 and target drawing 4. Before, the in-between drawings can be generated, the points on the source drawing 3 are matched to the target drawing 4. The source drawing 3 and target drawing 4 each have an arbitrary number of control points 31,41 respectively. From these arbitrary number of control points, the user identifies and marks at least four pairs of matched or corresponding points between the source drawing 3 and target drawing 4. Determining correspondences between the two drawings 3,4 is generally quickly and easily done by the user 60. Preferably, the user selects point positions 31 that can be visually differentiated on both the source drawing 3 and target drawing 4. The end points of segments are two such points. Curve transition points are other such points. As explained below, marking the endpoints of segments reduces the chances that points will be left unmatched. In addition, marking the endpoints of segments reduces the chance of multiple intersections.
For purposes of illustration and not limitation, say for example through user interface 50, user 60 marks endpoints 31a and 31d of source drawing 3 as matching/corresponding points to endpoints 41a and 4ld respectively of target drawing 4. Likewise, say user 60 marks (through interface 50) curve transition points 31b and 31c of source drawing 3 as matching/corresponding points to curve transition points 41b and 41c respectively of target drawing 4. This produces four control point pairs 31a,41a; 31b,41b; 31c,41c; and 31d, 41d as illustrated in Figure 3.
In one embodiment of the invention, the computer 20 aids the user 60 by marking four pairs of matched points between drawings 3 and 4. The endpoints 3la,3Id of the source drawing are matched to the endpoints 4la,4Id of the target drawing. Linear interpolation or a similar technique is used to match the remaining two pairs of points. The user 60 is permitted to alter the points marked by the computer to meet the user's better judgement. Although the computer selection of points does not always lead to correct matches as seen by the user 60, the user 60 is saved some labor. Next, by way of overview, the present invention and in particular matcher 10 operate as follows. Given two line drawings and four pairs of matched/corresponding control points in the drawings, matcher 10 constructs a vector that represents the slope and y-intercept of a line that determines matches (i.e., corresponding points) between the two drawings. Specifically, for each point of the first drawing, the vector provides a line that intersects with a point in the second drawing. The intersected point in the second drawing is the matching or corresponding point to the subject point in the first drawing. Hence, the vector is referred to as a transform vector.
In more particular terms, of the four pairs of control points marked by the user 60 in the illustration of Figure 3, one pair of points 31a,41a is used to identify respective origins of the frames of reference used for the drawings 3,4. And the other three pairs of points marked by user 60 are used to create the transform vector. That is, one marked point 31a on the source drawing 3 is selected to be the origin of the source drawing. The origin point 31a may be any marked point located anywhere on the source drawing 3. In a preferred embodiment of the invention, the first point marked by the user 60 is selected as the origin point. In an alternate embodiment of the invention, the origin point is selected at random from the set of marked points. As shown in Figure 3, the origin of the frame of reference of source drawing 3 is located at position (xo,yo) .
After the origin point 31a of the source drawing 3 has been selected, the corresponding point 41a of the target drawing 4 becomes the origin of the frame of reference of drawing 4. In Figure 3, the origin of the frame of reference of target drawing 4 is located at position (χ'o»y'o) • τhe two origins are then associated with each other, such that the source origin will transform into the target origin. In response to the association, the computer 20 (via matcher 10) defines the line 34a connecting the two origins (as shown in Figure 3). The origins of in-between drawings will be located on the connecting line 34a.
In a similar manner for each of the three remaining marked pairs of points, the user specifies to matcher 10 the location in the respective drawing of each point of the pairs. That is, having determined the origins in drawings 3 and 4, user 60 specifies to matcher 10 the location of point 31b at (xl7 y,) in drawing 3. The corresponding point 41b on target drawing 4 is then located at (x',, y',) in drawing 4 such that point 31b of drawing 3 transforms into the point 41b in drawing 4. User 60 specifies to matcher 10 the location of point 31c at (x2, y2) in drawing 3. The corresponding point 41c on target drawing 4 is then located at (x'2, y'2) in drawing 4 such that point 31c is transformed into point 41c. Finally user 60 specifies to matcher 10 the location of point 31d at (x3, y3) in source drawing 3. The corresponding point 41d on target drawing 4 is then located at (x'3, y'3) in drawing 4 such that point 3Id is transformed into point 4Id.
Further, in response to each of these associations, matcher 10 defines a respective connecting line between the associated points as shown in Figure 3. Specifically, matcher 10 calculates
(i) connecting line 34b between associated points 31b of source drawing 3 and 41b of target drawing 4, (ii) connecting line 34c between associated points 31c of source drawing 3 and 41c of target drawing 4, and (iii) connecting line 34d between associated points 3Id of source drawing 3 and 4Id of target drawing 4. Curve transitions and endpoints of in-between drawings will be located on connecting lines 34b, 34c and 34d respectively. In addition as mentioned above, matcher 10 uses the three foregoing user-marked pairs of points (31b,41b), (31,41c), (31d,41d) to calculate a transform matrix which ultimately defines the transform vector. More specifically, matcher 10 creates a transform vector [a,b,c] from the coordinates of the three non-origin user-marked points. The y'-intercept of the vector on the target drawing 4 is calculated from the equation
y'=ax+by+cx'
Equation 1
where a, b, and c are the unknowns; x and y are vectors of the known (x,y) positions in the source drawing 3; x' and y' are vectors of the known (x',y') positions in the target drawing 4.
Expanding Equation 1 for the three subject marked pairs of points, yields
Figure imgf000012_0002
Equation 2
Solving for a, b, and c yields
Figure imgf000012_0001
Figure imgf000012_0003
Equation 3
After the values for a,b and c are calculated, then for each point 31 on the source drawing 3, an equation can be written for a line connecting the point in the source frame 30 to a point in the target frame 40 on which any matched corresponding point 41 of target drawing 4 must lie. The equation for such a line is, from Equation 1, as follows y' = ex1 + (ax by)
Equation 4
where the term (ax+by) is known and becomes the y'-intercept in the target frame 40, and c is the slope of the line. Accordingly, matcher 10 applies the newly calculated transform vector [a,b,c] to every unmarked (i.e., not previously marked by user 60) point 31 on the source drawing 3. As a result, for each such source drawing point, a working line is defined. Matcher 10 then plots each resulting working line onto the target frame 40 (i.e., in the target drawing 4) , and any intersections between the line and the target drawing 4 become possible locations of matches (i.e, corresponding points to the subject source drawing point) . If the source drawing 3 and target drawing 4 are exact affine transformations, then the transform vector is guaranteed to lead to perfect results. Unfortunately, when dealing with noisy data or hand-drawings, the source and target drawings are rarely exact affine transformations. Thus, in practice where generally the target drawing 4 is not an exact affine transformation of the source drawing 3, three errors may occur when performing the foregoing matcher 10 calculations. The three error cases are:
1. The resulting working line does not intersect the target drawing 4;
2. The resulting working line intersects the target drawing 4 more than once; and
3. The resulting working line intersects the target drawing 4 only once, but the intersection is "judged" to be incorrect. To handle the three error cases, the present invention provides additional processing as follows. In cases where there are more than one intersection (case 2) , the best intersection is calculated. This is accomplished using a ranking function, which assigns a numerical value to every intersection of a given working line. The closer the assigned numerical value or rank is to 0 (or a suitable predetermined threshold) , the more likely the intersection is the correct choice. In the case of a single intersection (case 3) , the ranking function is used to judge the correctness of the intersection.
To determine the ranking of an intersection, the distances and angles between the subject drawing points 31,41 and the respective previous matched points 31a,31b,41a,41b in the source drawing 3 and the target drawing 4 are determined. For simplicity and clarity of description, the previous matched points are also marked points. Typically, however, the previous matched points will be former subject points that had a viable best intersection.
To determine the rank "R" of a new match, the distances and angles of the subject source drawing point 31 with respect to the previous matched points 31a,31b in source drawing 3 are compared to the distances and angles between the intersection (new match) point 41 in the target drawing 4 and the previous matched points 41a,41b in target drawing 4, using the equation
Equation 5
In ranking Equation 5, 0, is the angle between the vectors from the subject target drawing intersection point 41 to each of the two previously matched target drawing points 41a,41b;
θt is the angle between the vectors from subject source drawing point 31 and each of the two previously matched source drawing points 31a,31b;
£t is the distance between the subject target drawing intersection point 41 and the previously matched target drawing point 41b;
<F, is the distance between the subject source drawing point 31 and the previously matched source drawing point 31b; and
C is a sealer weighting that makes either angle or distance more important as desired. Higher values of C put more weight on the distance measurements and fractional values of C makes the angle measurements more important. In a preferred embodiment of the invention, C is assigned the value 1.0 to make distance and angle measurements equal in importance.
It is understood that scaled sums, percentages and the like may be used for θx, θs, <St and <SS, so that a unitless calculation is made in Equation 5.
In cases where no known intersection exists (cases 1 and 3) , the subject source drawing 3 point cannot be properly matched to any point on the target drawing 4. The subject source drawing 3 point must temporarily be ignored until more information becomes available. That point is placed on a wait queue, i.e., a list of points waiting to be processed. After a point is placed on the wait queue, an attempt is made to process the next source drawing point. Once a valid match is determined, all points on the wait queue are linearly interpolated between the previous εuccessfully processed source drawing point (having a properly defined match or corresponding point on target drawing 4) and the current successfully processed source drawing point (having a properly defined match point on target drawing 4) .
Figure 4 is a flow chart of a computer matching routine 100 that implements matcher 10 (Figure 2) . The matching routine 100 is executed by computer 20 and operates on individual segments of the source and target drawings. On input to matching routine 100, the user provides/specifies at least four pairs of matched control points per drawing segment (as described in Figure 3) , one pair identifying origins of the source and target drawing segments. The computer 20 (routine 100) first initializes all data at step 105 in Figure 4. Initialization includes defining the matrix sizes and initializes the matrix values to the values of the user specified matrix points (i.e., the non-origin pairs of matched points) . In a preferred embodiment, the matrix can be sized to accommodate more than three pairs of user given matrix points (hence the user may specify more than four pairs of marked points in the initial steps of matcher 10 illustrated in Figure 3) . In such a preferred embodiment, additional user-marked (specified) point pairs exceeding the selected matrix size are used as an aid in curve-fitting intermediate points.
Likewise it is understood that the matrix size may be adjusted downward to accommodate less than three pairs of user specified matrix points. In that case, the user may need to only specify less than three pairs of initially matched points, one pair identifying origins in the source and target drawings and remaining pairs used to define the matrix. Applicants have found, however, that processing with four pairs of user specified points (one pair for identifying source and target drawings origins, three pairs for defining the matrix of Equation 3) minimizes user input and enables very good matching results.
After the data is initialized, the routine 100 calculates the transform vector [a,b,c] at step 110 according to Equation 3. Matching routine 100 subsequently uses the values of a, b, and c to compute a transform for each control point on the source drawing to a point on the target drawing.
In particular, routine 100 next loops at step 165 through all control points on the source drawing.
Preferably, the control points on the source drawing are searched sequentially from the given (user specified) origin. The first step 115 in the loop through the source drawing is to obtain the (x,y) position of a succeeding subject point (i.e., succeeding the origin or last processed point) on the source drawing.
After the (x,y) position is calculated, the point is checked at step 120 to determine if the point is one of the initially given (i.e., user specified or marked) input points. If the point is given (i.e., has been initially marked by the user) , then the corresponding point on the target drawing has also been preselected and marked on input (by the user) . The subject point on the source drawing is paired with the prespecified corresponding marked point on the target drawing at step 125 in Figure 4. If the point has not been initially marked (given on input) by the user, then the y'-intercept on the target drawing is calculated at step 130 according to Equation 4.
After the y'-intercept is calculated, the routine 100 overlays the resulting line on the target drawing and determines at step 135 the number of intercepts (i.e., number of times the line intersects) with the target drawing. There are three possible cases which can arise at this time. There can be no intersections, there can be one intersection, or there can be more than one intersection with the target drawing.
If there is no intersection with the target drawing, then the subject source drawing point is put onto a wait queue at step 160. The wait queue will be processed once a viable intersection is found for a subsequent processed source drawing point. The loop through the source drawing points continues if there are more points to process as determined at step 165 in Figure 4. The loop begins again after incrementing to the next point at step 170 on the source drawing.
If there is more than one intersection with the target drawing (i.e., the case of multiple intersections by the calculated working line) , then an array of possible intersections is created at subpart E in Figure 4. The routine 100 determines the best intersection at step 140 in the intersection array according to Equation 5. Specifically, the routine 100 calculates for each intersection a ranking R from Equation 5. Routine 100 selects the intersection with the lowest calculated ranking value R to be the best intersection.
Once a single intersection is selected (i.e. the one existing intersection or the best intersection) , the routine 100 then checks at step 145 the rank value, R, of the selected intersection to determine the viability of the corresponding target drawing point (i.e., the point at which the selected intersection crosses the target drawing) . In the case of only one intersection, routine 100 makes a viability check at step 145 based on the rank value, R, calculated for that intersection. In a preferred embodiment of the invention, the ranking value, R, of an intersection must be less than or equal to a predetermined maximum allowed value in order for the corresponding intersection (target drawing) point to be considered a viable match point. In a preferred embodiment of the invention, the maximum allowed value for the rank is determined interactively by user 60 based on the relative sizes of the target and source drawings.
If the target drawing intersection point of the selected best or subject intersection is not a viable point, then the subject source drawing point is put on the wait queue at step 160. The loop through the source drawing continues as described above if there are more points at step 165 to process. The loop begins again after incrementing at step 170 to the next point on the source drawing.
If the subject intersection is at a viable point, the routine 100 pairs the subject source drawing point to the confirmed viable intersection point on the target drawing at step 150 in Figure 4. Because a viable match has been found, the routine 100 processes the wait queue at step 155. In a preferred embodiment, the data from the most recently paired match points is used to determine matches/correspondence to the target drawing points for the source drawing points on the wait queue. In particular, for each source drawing point on the wait queue, a match point (i.e., position) on the target drawing is calculated by linearly interpolating between the previously determined pair of match points (i.e., source drawing point and corresponding target drawing point) and the newly determined pair of match points. The loop through the source drawing continues at step 165 if there are more source drawing points to process. The loop begins again after incrementing to the next point at step 170 on the source drawing.
After the routine 100 has initially processed (i.e., looped through) all points on the source drawing, there may be points remaining on the wait queue at step 175. There will be at least one point on the wait queue if the last source drawing point did not have a viable match on the target drawing. To prevent leaving source drawing points unmatched, the routine 100 processes the wait queue at step 175 (by linear interpolation between previously processed pairs of match points) prior to returning 180 control to the main/calling routine of computer 20.
While the invention has been particularly shown and described with reference to a preferred embodiment thereof, the following variations are understood by those skilled in the art as conforming to the invention as defined by the appended claims.
For example computer 20 is a minicomputer, PC, or the like. User interface 50 includes I/O devices coupled to computer 20 such as a display monitor and keyboard or mouse through which the user inputs his selections. In response, computer 20 generates and executes commands for carrying out user selections. Alternatively, a program/routine executed on user command is used to effect user selection. The term "user selection" as used herein includes user specification and/or marking of desired points in a drawing held in working memory of computer 20.
User interface 50 also includes interactive or other working programs for prompting/obtaining user input. In response to received user input, the working program formats and provides data to matcher 10 to initiate execution of matcher 10 (i.e., matching routine 100).
Such communication between user 60 and user interface 50, and between user interface 50 and matcher 10 is supported by common techniques in the art of computer programming. For example, a menu driven main program may prompt user 60 for his selection of control point pairs, and his request to run/execute matcher 10 with the desired input (i.e., given source and target drawings, and user specified control point pairs) . Other means (e.g., software routines and the like) for initially selecting and associating a desired number of working control point pairs from source and target drawings are suitable. Such means would then provide the desired input to matcher 10.

Claims

1. In a computer system having a working memory storing (i) a first line drawing formed of a plurality of points, the points defining at least one drawing segment and (ii) a second line drawing formed of at least one point, each point having a discrete position in a spatial coordinate system, apparatus for matching the position of each point from a non-empty first set of points defining a first drawing segment of the first line drawing to a point matched from a non-empty second set of points defining a second drawing segment of the second drawing, comprising: initial selection means for selecting a predetermined number of first working points from the first set of points and a same number of second working points from the second set of points, each working point representing the coordinate position of the corresponding selected point; initial association means coupled to the initial selection means for associating each first working point with a respective second working point; and a matcher coupled to the initial association means for determining correspondence of and thus matching the coordinate position of each non-selected point from the first set of points with the coordinate position of a matched point from the second set of points, the matcher performing a vector transformation of each non-selected point from the first set of points to a matched point from the second set of points, the vector transformation being defined by the working points as associated by the initial association means.
2. Apparatus as claimed in claim 1 wherein the initial association means includes a user interface for enabling a user to specify the association between the first working points and the second working points.
3. Apparatus as claimed in Claim 1 wherein the second line drawing is a distortion of the first line drawing.
4. Apparatus as claimed in Claim 1 wherein the second set of points has a different number of points than the first set of points.
5. Apparatus as claimed in Claim 1 wherein the matcher performs a ranking function which (i) provides a single match for each non-selected point from the first set of points with a non-selected point from the second set of points, and (ii) confirms matches between points from the first set of points and points from the second set of points.
6. Apparatus as claimed in Claim 1 wherein the predetermined number is at least four.
7. In a computer system having a working memory storing (i) a first line drawing formed of a first plurality of points, the points defining at least one drawing segment and (ii) a second line drawing formed of a second plurality of points, each point having a discrete position in a two-dimensional spatial coordinate system, a method of matching the coordinate position of each point of the first line drawing to a matched point of the second line drawing, comprising the steps of: identifying at least one first drawing segment of the first line drawing, each first drawing segment defined by a non-empty first set of continuous points; identifying at least one second drawing segment of the second line drawing, each second drawing segment defined by a non-empty second set of continuous points; for each first drawing segment, matching the first set of points to one second set of point, the matching step comprising: a) selecting the position of four first working points from the first set of points and four second working points from the second set of points, each working point representing the coordinate position of the corresponding selected point; b) associating each first working point with a respective second working point; c) designating the two-dimensional coordinate systems such that the coordinate positions of the first working points are represented relative to the coordinate position of a designated one of the first working points and the coordinate positions of the second working points are represented relative to the coordinate position of a designated one of the second working points; d) defining a transform vector from the coordinate positions of the associated first and second working points, the transform vector providing a mathematical relationship between the coordinate positions of points in the first set of points and the coordinate positions of points in the' second set of points; and e) determining correspondence of and thus matching the coordinate location of each remaining point from the first set of points with the coordinate location of a matched point from the second set of points by applying the transform vector to each non-selected point in the first set of points.
A method as claimed in Claim 7 further comprising the step of performing a ranking function to limit matching to a single match for each non-selected point from the first set of points with a non-selected point from the second set of points.
9. A method as claimed in Claim 7 further comprising the step of performing a ranking function for confirming matches between non-selected points from the first set of points with non-selected points from the second set of points.
10. A method as claimed in Claim 7 wherein the step of defining a transform vector includes calculating the transform vector from the equation
Figure imgf000025_0001
Figure imgf000025_0002
where a, b, c is the transform vector; x, and y, are vectors of a first one of the first working points, x2 and y2 are vectors of a second one of the first working points, x3 and y3 are vectors of a third one of the first working points, 'j and y', are vectors of a first one of the second working points, x'2 and y'2 are vectors of a second one of the second working points, x'3 and y'3 are vectors of a third one of the second working points, each vector being in a two-dimensional spatial coordinate system, the first working point vectors being relative to the coordinate position of a fourth one of the first working points and the second working point vectors being relative to the coordinate position of a fourth one of the second working points.
PCT/US1993/008075 1992-09-09 1993-08-26 Computer method and apparatus for matching between line drawings WO1994006093A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP50732794A JP3727061B2 (en) 1992-09-09 1993-08-26 Computer method and apparatus for line drawing matching

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/942,537 US5325475A (en) 1992-09-09 1992-09-09 Computer method and apparatus for matching between line drawings
US07/942,537 1992-09-09

Publications (1)

Publication Number Publication Date
WO1994006093A1 true WO1994006093A1 (en) 1994-03-17

Family

ID=25478231

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1993/008075 WO1994006093A1 (en) 1992-09-09 1993-08-26 Computer method and apparatus for matching between line drawings

Country Status (3)

Country Link
US (1) US5325475A (en)
JP (1) JP3727061B2 (en)
WO (1) WO1994006093A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1280096A3 (en) * 2001-07-23 2005-08-10 Siemens Aktiengesellschaft Method for matching two digital images consisting of polygonal stroke sequences
EP2919155A1 (en) * 2014-03-13 2015-09-16 Omron Corporation Image processing device, system, image processing method, and image processing program

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773190A (en) * 1993-04-29 1995-03-17 Matsushita Electric Ind Co Ltd Pictograph naming for pen base computer system
US5613048A (en) * 1993-08-03 1997-03-18 Apple Computer, Inc. Three-dimensional image synthesis using view interpolation
US5504696A (en) * 1994-01-03 1996-04-02 Xerox Corporation User interface calibration and alignment device
US5818462A (en) * 1994-07-01 1998-10-06 Digital Equipment Corporation Method and apparatus for producing complex animation from simpler animated sequences
US5613093A (en) * 1994-10-12 1997-03-18 Kolb; George P. Apparatus and method for drill design
US5649086A (en) * 1995-03-08 1997-07-15 Nfx Corporation System and method for parameter-based image synthesis using hierarchical networks
US6016147A (en) 1995-05-08 2000-01-18 Autodesk, Inc. Method and system for interactively determining and displaying geometric relationships between three dimensional objects based on predetermined geometric constraints and position of an input device
US5572639A (en) * 1995-05-08 1996-11-05 Gantt; Brian D. Method and apparatus for interactively manipulating and displaying presumptive relationships between graphic objects
US7401299B2 (en) 2001-09-05 2008-07-15 Autodesk, Inc. Method and apparatus for providing a presumptive drafting solution
US5854634A (en) 1995-12-26 1998-12-29 Imax Corporation Computer-assisted animation construction system using source poses within a pose transformation space
US5832474A (en) * 1996-02-26 1998-11-03 Matsushita Electric Industrial Co., Ltd. Document search and retrieval system with partial match searching of user-drawn annotations
US6272467B1 (en) 1996-09-09 2001-08-07 Spark Network Services, Inc. System for data collection and matching compatible profiles
US6421463B1 (en) 1998-04-01 2002-07-16 Massachusetts Institute Of Technology Trainable system to search for objects in images
US6356669B1 (en) 1998-05-26 2002-03-12 Interval Research Corporation Example-based image synthesis suitable for articulated figures
JP2000172861A (en) * 1998-12-08 2000-06-23 Hitachi Ltd Multi-layer type polygon editing and drawing method
US6417865B1 (en) 1999-03-09 2002-07-09 Autodesk, Inc. Affinitive placement by proximity in a computer-implemented graphics system
US8355968B2 (en) * 1999-09-01 2013-01-15 Capital Iq, Inc. Method of identifying potential targets for a capital transaction
US6646641B1 (en) 1999-12-08 2003-11-11 Autodesk, Inc. Extrapolation of behavioral constraints in a computer-implemented graphics system
US7050051B1 (en) * 2000-01-28 2006-05-23 Carnegie Mellon University Parametric shape grammar interpreter
US7415156B2 (en) 2000-01-28 2008-08-19 Carnegie Mellon University Parametric shape grammar interpreter
US6587103B1 (en) 2000-03-29 2003-07-01 Autodesk, Inc. Method and apparatus for determining coincident lines
US7000197B1 (en) 2000-06-01 2006-02-14 Autodesk, Inc. Method and apparatus for inferred selection of objects
US20090058863A1 (en) * 2007-09-04 2009-03-05 Apple Inc. Image animation with transitional images
US8155449B2 (en) * 2007-11-09 2012-04-10 The Boeing Company Method for comparing computer-generated drawings
CN102568302B (en) * 2011-12-31 2013-10-16 北京地拓科技发展有限公司 Method and device for map annotation
US11769281B2 (en) * 2022-02-01 2023-09-26 Adobe Inc. Vector object transformation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0440218A2 (en) * 1990-01-31 1991-08-07 Fujitsu Limited A moving video image estimation system
WO1992003799A1 (en) * 1990-08-15 1992-03-05 Televerket Method of motion compensation and elastic deformation in picture sequences

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4600919A (en) * 1982-08-03 1986-07-15 New York Institute Of Technology Three dimensional animation
US4797836A (en) * 1986-11-19 1989-01-10 The Grass Valley Group, Inc. Image orientation and animation using quaternions
GB8822062D0 (en) * 1988-09-20 1988-10-19 Quantel Ltd Video processing
US4952051A (en) * 1988-09-27 1990-08-28 Lovell Douglas C Method and apparatus for producing animated drawings and in-between drawings

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0440218A2 (en) * 1990-01-31 1991-08-07 Fujitsu Limited A moving video image estimation system
WO1992003799A1 (en) * 1990-08-15 1992-03-05 Televerket Method of motion compensation and elastic deformation in picture sequences

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1280096A3 (en) * 2001-07-23 2005-08-10 Siemens Aktiengesellschaft Method for matching two digital images consisting of polygonal stroke sequences
EP2919155A1 (en) * 2014-03-13 2015-09-16 Omron Corporation Image processing device, system, image processing method, and image processing program
US9607244B2 (en) 2014-03-13 2017-03-28 Omron Corporation Image processing device, system, image processing method, and image processing program

Also Published As

Publication number Publication date
JP3727061B2 (en) 2005-12-14
JPH09502290A (en) 1997-03-04
US5325475A (en) 1994-06-28

Similar Documents

Publication Publication Date Title
US5325475A (en) Computer method and apparatus for matching between line drawings
US6434278B1 (en) Generating three-dimensional models of objects defined by two-dimensional image data
US6369818B1 (en) Method, apparatus and computer program product for generating perspective corrected data from warped information
US8699828B2 (en) Image matching using inlier coverage
JP2559910B2 (en) Method and apparatus for designating 3D points in 2D graphic display
US5892691A (en) Method, apparatus, and software product for generating weighted deformations for geometric models
US20040075645A1 (en) Gaze tracking system
JP3032894B2 (en) Method for clipping an object to be displayed on a computer display device
US6222940B1 (en) Pattern matching system and method which detects rotated and scaled template images
JP3611239B2 (en) Three-dimensional CG model creation device and recording medium on which processing program is recorded
CN112651389A (en) Method and device for training, correcting and identifying correction model of non-orthoptic iris image
US5173946A (en) Corner-based image matching
US6334129B1 (en) Data processing apparatus and method
JPH08212381A (en) Three-dimensional image processor
US6728407B1 (en) Method for automatically determining trackers along contour and storage medium storing program for implementing the same
US6396494B1 (en) Method for virtual clipping a three-dimensional graphics image
CN109754467A (en) Three-dimensional face construction method, computer storage medium and computer equipment
JP2776746B2 (en) Image processing method for correcting distorted images and apparatus for performing the same
Torre et al. Agricultural-field extraction on aerial images by region competition algorithm
CN114138893A (en) Chart display method and chart label display system
JP3220603B2 (en) Design support equipment
JP3451292B2 (en) Figure transformation device
US20220129973A1 (en) Image Modification to Generate Ghost Mannequin Effect in Image Content
JP2854588B2 (en) Raster vector conversion method and line figure input device
JPH1027249A (en) Method for object position matching

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)