ALIGNING A LOCALLY-RECONSTRUCTED THREE-DIMENSIONAL OBJECT TO A GLOBAL COORDINATE SYSTEM

Abstract: A system and method are described for aligning a locally-reconstructed three-dimensional object, whose local reconstruction is relative to a local coordinate system, to a global coordinate system by using pre-mapped control points which are projected onto one or more of the images that may be used to generate the local reconstruction. A system includes a control point information generator and an alignment generator. The control point information generator is configured to identify in at least image associated with a local reconstruction of the object a projection of at least one control point in the scene onto the at least one image, and generate local projected coordinate information indicating coordinates of the projection in the at least one image. The alignement information generator is configured to utilize the local projected coordinate information and mapping information relating to global coordinate information indicating coordinates of the at least one control point relative to the global coordinate system to generate alignment information relating a local coordinate system associated with the local reconstruction to the global coordinate system.

Description: ALIGNING A LOCALLY-RECONSTRUCTED THREE-DIMENSIONAL OBJECT TO A GLOBAL COORDINATE SYSTEM FIELD OF THE INVENTION This invention relates generally to the field of reconstructing and/or manipulating surface geometries of one or more three dimensional objects in a scene, from a plurality of two dimensional images of the scene, and more particularly to a system and method for relating a local coordinate system associated with a reconstruction of at least a portion of the scene to a global coordinate system. BACKGROUND OF THE INVENTION Reconstruction and/or manipulation (generally, "reconstruction") of surface features of three- dimensional object(s) in a scene, from a plurality of two-dimensional images of the object(s), is useful in a number of applications. U. S. Patent Application Serial No. 08/989,047, filed December 11, 1997, in the names of Dan Albeck, et al., and entitled "Apparatus And Method For 3- Dimensional Surface Geometry Reconstruction" (hereinafter referred to as the "Albeck application") describes an apparatus for performing such reconstruction using a rig including an optical head of three cameras, using a tensor arrangement described in U. S Patent Application Serial No. 08/497,224, filed June 30, 1995, in the name of Amnon Shashua, and entitled "Apparatus And Method For Recreating And Manipulating A 3D Object Based On A 2D Projection Thereof (hereinafter referred to as the "Shashua application") to generate information regarding reconstruction for the features of the object(s) from three images generated by the cameras. In the arrangement described in the Shashua application, the surface features that are reconstructed are defined by points that have coordinates in a coordinate system relative to one of the cameras in the rig. A problem arises in reconstruction if the surface features that are to be reconstructed cannot all be recorded by all of the cameras with the rig in one position. The apparatus described in the Albeck application provides a mechanism for moving the rig so as to allow the cameras to record sets of images of various portions of the surface(s) of the object(s). However, when the rig moves from one location, in which the cameras record a set of images of one portion of the object(s), to another location, in which the cameras record another set of images of another portion of the object(s), the coordinate system for the points defining the surface features of the various portions of the object(s) also changes. In order to utilize the reconstruction information generated in the two "local" coordinate systems in a unitary manner in connection with the object(s) in the scene, it is necessary to relate the local coordinate systems to a common global coordinate system, which will allow all of the points of the various portions of the reconstructed object(s) to be related to the global coordinate system, effectively "stitching" the reconstructions together. The global coordinate system can conveniently be one of the two local coordinate systems that were used in the reconstruction, or it can be a third coordinate system, but in any case all of the points for the various portions of the reconstructed object need to be related to the global coordinate system. When a rig, such as the rig described in the Albeck application is moved from one position to another, to facilitate recording of sets of images of different portions of the object(s), the movement comprises one or both of a translation and a rotation of the rig, both in three dimensions. If the translational and rotational movement of the rig can be controlled sufficiently precise, the relation of the coordinate system after movement to the coordinate system before movement can easily be determined. However, if, for example, the mass of the rig is sufficiently large, in a number of applications the movement of the rig cannot readily be controlled sufficiently precisely to allow sufficiently precise reconstruction. U. S. Patent Application Serial No. 09/165,687, filed October 2, 1998, in the name of Tamir Shalom, et al., and entitled "System And Method For "Stitching" A Plurality Of Reconstructions Of Three-Dimensional Surface Features Of Object(s) In A Scene Defined Relative To Respective Coordinate Systems To Relate Them To A Common Coordinate System," (hereinafter referred to as the Shalom application) describes an arrangement for relating a reconstruction of a portion of a scene to a global coordinate system. In the arrangement described in the Shalom application, a reconstruction of one portion of a scene is generated, which is related to the global coordinate system. Reconstructions of other portions can be related to the global coordinate system, but in the arrangement described in the Shalom application, the respective pairs of reconstructed portions will need to overlap with each other. That is, reconstructions successively displaced from the reconstruction which was originally related to the global coordinate systems will need to overlap, at least to some extent, with the overlapping portions providing information that is used to relate the local coordinate systems of the overlapping portions, thereby facilitating relation of the sequence of local coordinate systems to each other and, ultimately, to the global coordinate system. However, it will be appreciated that errors can develop in relating local coordinate systems of successive pairs of reconstructions, which can result in successively increasing errors in relating the local coordinate systems of the respective reconstructions to the global coordinate system. In addition, when the optical head is moved from one location to another to facilitate recording images from which the respective reconstructions are generated, the movement needs to be rigid, that is, the cameras need to maintain their respective orientations with respect to each other. If the optical head is not rigid, that is, if the cameras change their translational or rotational orientations with respect to each other, errors in relating the local coordinate systems of the respective pairs of reconstructions can also develop. SUMMARY OF THE INVENTION The invention provides a new and improved system and method for aligning a locally- reconstructed three-dimensional object to a global coordinate system using partially-detected control points. In brief summary, the invention provides a system and method for aligning a locally- reconstructed three-dimensional object, whose local reconstruction is relative to a local coordinate system, to a global coordinate system by using pre-mapped control points which are projected onto one or more of the images that may be used to generate the local reconstruction. A system in accordance with the invention includes a control point information generator and an alignment generator. The control point information generator is configured to identify in at least image associated with a local reconstruction of said object a projection of at least one control point in the scene onto said at least one image, and generate local projected coordinate information indicating coordinates of said projection in said at least one image. The alignment information generator is configured to utilize said local projected coordinate information and mapping information relating to global coordinate information indicating coordinates of said at least one control point relative to said global coordinate system to generate alignment information relating a local coordinate system associated with said local reconstruction to said global coordinate system.. After the alignment information has been generated, the reconstruction in the local coordinate system can be aligned to the global coordinate system. This can be done with a plurality of local reconstructions, essentially stitching them together. BRIEF DESCRIPTION OF THE DRAWINGS This invention is pointed out with particularity in the appended claims. The above and further advantages of this invention may be better understood by referring to the following description taken in conjunction with the accompanying drawings, in which: FIG. 1 schematically depicts a system for aligning a locally-reconstructed three-dimensional object to a global coordinate system using partially-detected control points, constructed in accordance with the invention; FIG. 2 is a flow chart depicting operations performed by the system in connection with aligning a locally-reconstructed three-dimensional object to a global coordinate system using partially-detected control points. DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT FIG. 1 is a diagram of a system 10 for aligning a locally-reconstructed three-dimensional object to a global coordinate system using partially-detected control points, constructed in accordance with the invention. With reference to FIG. 1, system 10 includes a rig 11 that supports an optical head 12 that comprises a plurality of cameras 12(0) through 12(C) (generally referred to by reference numeral 12(c)) mounted on a common support 13. The cameras 12(c) are preferably focused on generally the same portion of a scene, including the same portion(s) of the surface(s) of one or more objects generally identified by reference numeral 14 in the scene, thereby to facilitate recording of a set of two-dimensional images of the respective portion(s) by the respective cameras 12(c). The cameras 12(c) provide the set of recorded images to an image processor 15 which generates, from the images provided thereto by the cameras 12(c), information relating to a three- dimensional reconstruction of surface features of the respective object(s) 14 in the scene, for the respective portion(s) to which the cameras 12(c) are focused. In one embodiment, the rig 11 and optical head are similar to the respective elements of the apparatus described in the aforementioned Albeck application. In that embodiment, the cameras 12(c) preferably include CCD ("charge- coupled device") image recording devices, which provide image information in digital form to the image processor 15 for processing. In addition, in that embodiment, the image processor 15 includes suitably-programmed computing devices (such as a suitably-programmed general purpose computer) that generate the three-dimensional surface information from the set of two-dimensional images in a manner similar to that described in the aforementioned Shashua application. The system 10 is further provided with a motor 16 which, under control of a control processor 17, can move the rig 11 to facilitate direction of the cameras 12(c) to another portion of the scene 14, including respective other portion(s) of the surface(s) of respective object(s) in the scene 14 from which position the cameras 12(c) can record a second set of images. The rig 11 before one such illustrative movement, indicated in FIG. 1 by the arrow associated with reference numeral 18, is depicted in solid lines in FIG. 1 , and rig 11 after the illustrative movement 18 depicted in dashed lines in FIG. 1. In addition, the set of images recorded by the respective cameras 12(c) prior to the illustrative movement 18 of rig 11 is represented by images 20(A)(0) through 20(A)(C) (generally identified by reference numeral 20(A)(c)), and the set of images recorded by the respective cameras 12(c) after the illustrative movement 18 of rig 11 is represented by images 20(B)(0) through 20(B)(C) (generally identified by reference numeral 20(B)(c)). The respective sets of images 20(A)(c) and 20(B)(c) are preferably not of coincident portions of the surface(s) of the object(s) 14 in the scene. Instead, the sets of images 20(A)(c) and 20(B)(c) will preferably be of different portions of the respective surface(s). The portions of the respective surface(s) represented by the sets of images 20(A)(c) and 20(B)(c) may, but need not, overlap. The image processor 15 processes the images 20(A)(c) provided by the cameras 12(c) prior to the illustrative movement 18 to generate the three-dimensional surface information relating to the portion(s) of the object(s) depicted by the images 20(A)(c). In addition, the image processor 15 processes the images 20(B)(c) provided by the cameras 12(c) after the illustrative movement 18 to generate the three-dimensional surface information relating to the portion(s) of the object(s) depicted by images 20(B)(c). In one embodiment, operations performed by the image processor 15 in generating the three-dimensional surface information, in connection with the images recorded both before and after the illustrative movement 18, correspond to those operations described in the aforementioned Shashua application, and the information so generated may represent a three- dimensional reconstruction of the portion(s) of the object(s) depicted in the respective set of images. In that embodiment, the image processor 15 generates, from a plurality of sets of points p j; p and j " ("j" being an index) in images 20(A)(0) through 20(A)(2), respectively, with points p J5 p and p ' in each set corresponding to projections of a point P j on a surface of an object in the scene 14 onto the respective images 20(A)(0) through 20(A)(2), a tensor T A . In generating the tensor T A , the image processor 15 uses two-dimensional coordinates, in the respective images 20(A)(c), of a selected number of sets of respective points p J5 p : ' and P j ". As described in the Shashua application, seven sets of points P j , P j ' and p^' will suffice to enable the image processor 15 to generate the tensor T A . As also described in the Shashua application, using the tensor T A and two-dimensional coordinates of any set of points p J? p and p," in the images 20(A)(c) which are projections of a point P j (including, but not limited to, the seven sets of points used to generate the tensor T A ), the image processor 15 can determine the three-dimensional coordinates of the corresponding point P j in the scene 14. The three dimensional coordinates of point P j will be in a coordinate system relative to one of the images 20(A)(c), illustratively the image 20(A)(0) recorded by camera 12(0) before the illustrative movement 18. Similarly, the image processor generates, from coordinates a plurality of points q p q,' and q," in images 20(B)(0) through 20(B)(2), respectively, all corresponding to projections of respective points Q, onto the respective images 20(B)(0) through 20(B)(2), a tensor T B and coordinates for the respective points Q j in a coordinate three-dimensional coordinate system relative to one of the images, illustratively image 20(B)(0), recorded by camera 12(0) after the illustrative movement 18. If optical head 12 is rigid under the movement, so that the cameras 12(c) will be in the same positions relative to each other before and after the illustrative movement 18, and if the three- dimensional coordinate systems are relative to images recorded by the same camera 12(0), then the tensor T B will correspond to the tensor T A . On the other hand, if the optical head 12 is not rigid under the illustrative movement 18, the tensor T B will differ from the tensor T A As noted above, the coordinates generated by the image processor 15 for points P j generated using images 20(A)(c) are defined relative to a three-dimensional coordinate system associated with one of the cameras 12(c), for example, camera 12(0), in its position, prior to the illustrative movement 18, at which image 20(A)(0) was recorded, and coordinates generated by the image processor 15 for points Q } from images 20(B)(c) are defined relative to a coordinate system that is preferably associated with the same camera 12(0), but which will be relative to the camera's position after the illustrative movement 18 at which image 20(B)(0) was recorded. In each case, the coordinates will be defined relative to two coordinate axes (illustratively referred to herein as "x" and "y" axes") which correspond to the plane of the respective image 20(A)(0) and 20(B)(0), and a third axis (illustratively referred to herein as a "z" axis) that is transverse thereto. It will be appreciated that the coordinate systems for the two sets of points Y > } and Q, in the scene 14 will differ. To be able to utilize both sets of points in a unitary fashion, it is desirable to associate them both to a common global coordinate system. The particular global coordinate system that is selected is not important. For simplicity and without loss of generality, the global coordinate system can be selected to be the local coordinate system before the illustrative movement 18 or after the illustrative movement 18. On the other hand, the global coordinate system may comprise a coordinate system separate from any of the local coordinate systems, illustratively, coordinate system 21. Generally, the relation between the global coordinate system and the local coordinate systems consists of one or both of a translational component and/or a rotational component, both in three dimensional space. Thus, if, the coordinate system associated with camera 12(0), both before and after the illustrative movement 18, has an origin at the center of the image plane of the camera 12(0), the translational component comprises the position of the center of the image plane after the illustrative movement 18, in the coordinate system associated with the camera 12(0) before the illustrative movement 18. In addition, the rotational component corresponds to the angle of the image plane after the illustrative movement 18, relative to the image plane before the illustrative movement 18. It will be appreciated that, if the position of the origin after the illustrative movement 18 corresponds to the position of the origin before the illustrative movement 18, there is no translational component for the illustrative movement 18. Similarly, if the angular position of the coordinate axes after the illustrative movement 18 corresponds to the angular position of the coordinate axes before the illustrative movement 18, there is no rotational component for the illustrative movement 18. It will be appreciated that, if the position and angular orientation of the rig 11 before and after the illustrative movement 18 can be controlled or determined (by, for example, mechanical or electronic sensors) to a sufficient degree of accuracy they (that is, the position and angular orientation) can be used to define the translational and rotational components to relate the coordinate system after the illustrative movement 18 to the coordinate system before the illustrative movement 18. However, in one embodiment, to provide a higher degree of accuracy, the image processor 15 for each reconstruction uses information relating to respective control points (not separately shown) that are distributed throughout the scene, images of at least some of which may be recorded one or more of the images 20(A)(c) and or 20(B)(c) in each set. Generally, separately from the recording of the sets of images before and after the illustrative movement 18, during a mapping stage information is generated as to the positions of the control points relative to the global coordinate system. That information, along with information about the ones of the control points recorded on respective ones of images 20(A)(c) can be used to facilitate relation of the local coordinate system associated with the optical head 12 in the various positions to the global coordinate system. Operations performed by the image processor 15 in determining the translational and rotational components relating a local coordinate system to the global coordinate system will be described in connection with flowchart depicted in FIG. 2. Before proceeding to a description of FIG. 2 and by way of background, given a set of three-dimensional control points \ G \ _ in the scene, coordinates in the global coordinate system for which are measured in the mapping stage. The three dimensional control points G _ generally have respective projections p„ p,' and p," in images 20(A)(c), although, as will be described below, not all control points need have projections in all three images. Assume further that the projection matrices for the respective images are represented by T, T' and T", each being a three-by four matrix. Assume further that the local coordinate system differs from the global coordinate system by a rotation R and a translation t. In that case, during the reconstruction phase, the coordinates of the points p„ p', and p", of the control points G \ in the images 20(A)(c) are given by T- (1) and R respectively. It will be appreciated that the matrix in equations (1) through (3) 0 0 0 1 effectively operates to transform the coordinates of the control points j G l _ from the global coordinate system to the local coordinate system following the transformation, and multiplying by the respective projection matrix T, T' and T" provides the coordinates of the projections in the respective images 20(A)(c), up to a scale factor represented by the respective scalars λ„ λ and λ",. If the projection matrices T, T' and T" are decomposed into respective three by three and three by one sub-matrices T=[S s], T'=[S' s'] and T"=[S" s"], where sub-matrices S, S' and S" are three-by-three matrices and sub-matrices s, s' and s" are one-by-three matrices (or vectors) equations (1) through (3) can be rewritten as S' (R - G t + t) + s = λ (4) and P ' , S'iR-G, + t)+s'= (6) respectively. Since the matrices S, S', and S" are invertible, equations (4) through (6) can be rewritten as R G+t=λ S- -S ' (7) R G, + t= λ S- -S (8) and respectively. Defining sets of three-dimensional points {P,}" =1 , {P }" =1 and {P' }" =1 by P, P P i P = s ~ -1 P = S' and P" = S Cii-l and further defining d = S ■ s d'= S' '- 1 andd" = S" l ■ s" , and noting that the left sides of equations (7) through (9) all equal R-G, + t , those equations (7) through (9) can be re-written R-G, + t= λ ,P-d = λ P -d = λ","P" -d", (10) Since the values of scalars {λ " =1 , {^' ,}" =l and {λ" t }" =l are unknown, the points P„ P', and P", can be normalized to Q = where IIP UIP'.II and ||P",| represent the lengths of the vectors representing the points P„ P 1 , and P"„ respectfully in the local coordinate system, and in that case equation 10 can be re- written as R-G, + t= λ ,Q-d = λ',Q,-d'= λ" ,-d" (11). Using equation (10), the values of the scalars {λ ( }" =] , {i',}" =1 and { " ( }" =1 and the components of the rotation matrix R and the translation matrix t can be obtained by minimizing the cost function Note that, if the rotation matrix R and translation matrix t are known, which may be the case if the position and orientation of the local coordinate system relative to the global coordinate system are known, the values of the scalars {A ,}" =1 , {A' t }" =l m & {^" ,}" =1 can be determined by projecting the point R G t + t onto respective lines A ,Q, - d , A Q -d and A " ( <2", - fi?" . In that case, and since Q T Q=Q' T Q-Q" T Q"=1, where "T" represents the transpose operation, λ = (R-G, + t+d) T -Q ( 13 > λ = (R G l + t+d) T Q 04) and λ",= (R-G, + t+d) T -Q", ( 15 > On the other hand, if the values of the scalars { , ,}" =1 , {/?.', }" =1 and { ",}" =1 are known, the rotation matrix R and translation matrix t can be determined using the well-known Singular Value Decomposition (SVD) algorithm that fits the sets of points λ l Q 1 - d\ __ , λ Q -d' and I A " ; Q - <i" j to the set of control points j G ( j , repeated three times for each of the three sets. Accordingly, one can start with the values of the rotation matrix R and translation matrix t and use them to determine the values of the scalars {A ; }" =1 , { ',}" =1 and {A" ; }" =1 , or start with the values of the scalars {λ ; }" =1 , { ',}" =1 and {i",}" =1 and use them to determine the values of the rotation matrix R and translation matrix t. In one embodiment, the image processor initially determines values of the scalars {A ,}" =1 , { ',}" =1 and {A" t }" =l and uses them to determine the values of the rotation matrix R and translation matrix t. Initially, it determines the values of the scalars {A ,}" =1 , { ',}" =] and {2" ; }" =1 using the fact that the distance between two points in the scene is invariant when the optical head undergoes a rigid transformation (although the distance between the projections of the points in respective images may change) as follows. If projections of two different control points G, and G j appear in the same image, the distance between the points is given by G, - G = |(R- G, + t)- (R- G } + f)| . Since (R G, + t)= (λ ,Q - d) and R G. ') = (Ά d\ G. -G. λ ι Q,-λ & On the other hand, if a control point G, in the scene is projected onto two images, then the values of the scalars {A ; }" =1 and {A }" =1 associated with the respective images can be determined using the fact that A t Q t - d = A ' t Q - d' for the two images. This provides three equations for the two unknowns λ, and λ, which can be solved in a conventional manner. A third case is that each of two different control points G, and G j in the scene projects onto one of the two images. In that case, the distance between the two points is given by G,-G J \\= lR-a + t)-(R-Q J + t) t l n w h However, since this case is less useful than the two described above, it will not be considered further. Considering the first case, that is, the case in which proj ections of two different control points G, and G } appear in the same image, as noted above, the distance between the points is given by G -G. λ &-λ β r Q J , that equation can be re-written as λ 2 ,-2A ,λ jqι + A = glJ (16). m In the case of "m" points, use of equation (16) provides (that is, the combination of "m" things 2 taken "two" at a time) equations. Accordingly, if there are, for example, three points ("m" = 3), there will be three equations. The appendix attached hereto includes the output of a program in the Maple symbolic language that shows one to obtain a fourth-degree equation in A that can be solved explicitly. If there are more than three points (that is, "m">3) there are more equations than unknowns and a methodology such as the Levenberg-Marquardt procedure can be used to obtain a solution for the system of equations defined by equation (16). If the value of one of the scalars, illustratively λ„ is already known, the values of the other scalars can be found by finding a point along a line that passes through the origin of the local coordinate system and has a direction towards point Q y In that case, the distance from the known point A , ? is G - G. . If the projection of A t Q t is further from that line than G - G. , then the projection is the best solution, and, otherwise there are two equally good solutions. Considering the second case, in which a point in the scene is projected onto two images, then The matrix Q t - Q ι in equation (17) is a three-row by two-column matrix (that is, Q, and Q', are both three-element vectors) and the uniqueness and stability of the solution of the system defined by equation (17) depends on the rank of the matrix. Note that, if a point appears in all three images, the equation A ,Q, - d = A Q - d - A " l Q l - d" (reference equation (11)) yields which is a system of six equations on three unknowns, a solution for which can be obtained in a conventional manner. As noted above, after the values for the scalars {A ,}" =l , {i ' ,}" =1 and {A " t }" =l have been determined, the rotation matrix R and translation matrix t can readily be determined using the well- known Singular Value Decomposition (SVD) algorithm that fits the three sets of points {A ,Q - d)" ι , {A Q - d'}" and {A " ,Q", - d"Y to the set of control points {G, }" , repeated three times once for each set. With this background, operations performed by the system 10 will be described in connection with the flow chart in FIG. 2. With reference to FIG. 2, initially a series of operations are performed which together comprise the mapping stage. The mapping stage may be performed by the system 10 or by another device that can detect the control points and determine their coordinates in three dimensional space relative to the global coordinate system. In the mapping stage, a set of control points I , j is initially selected (step 100), and their coordinates relative to the global coordinate system determined (step 101). Step 101 can be performed in a number of ways as will be apparent to those skilled in the art; several methodologies are described in U. S. Patent No. 5,598,515, issued January 28, 1997, in the name of Amnon Shashua, and entitled "System And Method For Reconstructing Surface Elements Of Solid Objects In A Three-Dimensional Scene From A Plurality Of Two Dimensional Images Of The Scene," and U. S. Patent No. 5,821,943, issued December 13, 1998, in the name of Amnon Shashua, and entitled "Apparatus And Method For Recreating And Manipulating A 3D Object Based On A 2D Projection Thereof, both assigned to the assignee of this application. After the mapping stage has been completed, the system 10 can use the information determined for the control points during the mapping stage, and information determined for the control points as recorded in images 20(A)(c) or 20(B)(c), respectively, to determine the rotational matrix R and translation matrix t that relate the global coordinate system to the local coordinate system associated with respective images 20(A)(c) or 20(B)(c). In those operations, the optical head can record one or more images of the scene (step 110) and provide the recorded images to the image processor (step 111). The image processor, in turn, processes the images to identify the control points from the set of control point JG ; ] projections of which have been recorded in the respective images (step 112) and determines their three-dimensional coordinates in the local coordinate system defined by the current position and angular orientation of the optical head (step 113). The image processor then selects one of the three images (step 114) and determines whether there are at least three control points from the set of control point J ; | projected onto the selected image (step 115). If the image processor makes a positive determination in step 115, it proceeds to process the image in accordance with the first case mentioned above. In that operation, the image processor generates g = I G t - G I I G ; - G ] for the respective pairs of control points (step 116) and q t = Q ■ Q (step 117), sets up the system of equations A - 2A t A j qι ^ A 2 gl (19) (step 118), and solves the system to determine the values of the scalars λ, and λ j (step 119). It will be appreciated that the methodology used by the image processor in solving the system of equations in step 119 will depend on whether three control points appear in the selected image or more than three control points. If three control points appear in the selected image, the image processor can use the methodology detailed in the attached appendix. On the other hand, if more than three control points appear in the selected image, the image processor makes use of the Levenberg-Marquardt methodology to solve the system of equations. Returning to sep 115, if the image processor makes a negative determination in that step, it sequences to step 120 to determine whether one or two control points were projected onto the selected image. If the image processor makes a positive determination in step 120, it sequences to step 121 in which it selects one of the points and determines whether the selected control point was also projected onto one or more of the other images. If the image processor makes a positive determination in step 121, it generates values of Q, and Q', and d-d' therefor for the respective images, along with Q", and d-d" if the control point was projected onto the third image (step 122). Thereafter, the image processor uses equation 16, or equation 17 if the control point was projected onto the third image, to determine values for the respective scalars λ, and λ',. as well as λ", if the control point was projected onto the third image (step 123). After the image processor has performed steps 121 through 123 in connection with the control point that was selected in step 120 projected onto the image that had been selected in step 114, it determines whether there is another control point projected onto the same image that has not been processed (step 124) . If the image processor makes a positive determination in connection with step 124, it returns to step 120 to select the other control point projected on the selected image. Thereafter, the image processor performs steps 121 through 123 in connection with the other control point projected onto the selected image. Following (i) step 119; (ii) step 124 if the image processor makes a negative determination in that step, or (iii) step 120 if the image processor makes a negative determination in that step, the image processor sequences to step 125 to determine whether it has selected all of the images recorded by the optical head in step 110. If the image processor makes a negative determination in step 125, it returns to step 114 to select the next image. The image processor will perform steps 115 through 125 in connection with each of the images recorded by the optical head in step 110. After the image processor has processed all of the images recorded in step 110, it determines the rotation matrix R and translation matrix t using the well-known Singular Value Decomposition (SVD) algorithm that fits the sets of points {Λ ,β - d}"_ , {λ Q -d'}"_ and { A" ,Q", - d" _ to the set of control points |G ( j , repeated three times for each of the three sets of points (step 126). The rotation matrix R and translation matrix t relate the local coordinate system to the global coordinate system and can be used to relate three-dimensional coordinates of other points in the scene in the local coordinate system, as determined by the image processor from the images recorded in step 110, to the global coordinate system. This can be used, for example, to relate reconstructions of the scene made from a number of orientations, each of which may include a different portion of the scene, to the global coordinate system, effectively stitching them together. The invention provides a number of advantages. In particular, the invention provides an arrangement for relating a local coordinate system to a global coordinate system, using control points information for which is obtained during a mapping stage. Since this can be accomplished for each position of the optical head 12, there is no necessity of having reconstructions of overlapping portions of the scene to relate respective local coordinate systems to the global coordinate system. The relation between each local coordinate system to the global coordinate system is determined independently of any other local coordinate systems. It will be appreciated that a number of modifications may be made to the system described above. For example, although the invention has been described in relation to the system depicted in FIG. 1 and described in the Albeck application, it will be appreciated that the invention can be used in connection with any arrangement which facilitates reconstruction of surface features of objects in a scene using images of the surface features. The invention can be used in connection with any arrangement that makes use of any number of images to facilitate the reconstruction, including arrangements that make use of three images, as in the arrangement described in the Shashua patent, arrangements that make use of two images, as well as arrangements that make use of different numbers of images. In addition, it will be appreciated that the mapping information, which is determined during the mapping stage, may be developed in any manner and by any type arrangement. For example, the mapping information may be determined in whole or in part by the system 10 as described above. Alternatively, the mapping information may be developed by other arrangements that can determine the three dimensional coordinates of the control points from two dimensional images relative to the global coordinate system, or by other arrangements, such as directly measuring the positions of the control points relative to the global coordinate system. It will be appreciated that a system in accordance with the invention can be constructed in whole or in part from special purpose hardware or a general purpose computer system, or any combination thereof, any portion of which may be controlled by a suitable program. Any program may in whole or in part comprise part of or be stored on the system in a conventional manner, or it may in whole or in part be provided in to the system over a network or other mechanism for transferring information in a conventional manner. In addition, it will be appreciated that the system may be operated and/or otherwise controlled by means of information provided by an operator using operator input elements (not shown) which may be connected directly to the system or which may transfer the information to the system over a network or other mechanism for transferring information in a conventional manner. APPENDIX Alignment of locally reconstructed 3D object to global coordinate system via partially detected control points Tamir Shalom CogniTens Ltd. Abstract: The objective of the algorithm developed below is to find a rigid transformation that aligns the reconstructed points of a 3D object to a prescribed system of coordinates. The alignment is done using control points that need not reside on the object itself. Nor do these control points need to be detected by the device that acquired the object's points. Hence, these control points need not undergo the reconstruction process as the points of the object do. The single assumption on the control points is that a single camera acquires them so that for each such control point's projection on the camera's image, corresponds a 3D ray along which the actual control point resides. This assumption means that there is a known transformation between the single camera's image locations to 3D rays in the local coordinate system, namely, the same coordinate system in which the local reconstruction of the 3D object's points is given. The objective of the algorithm is therefore achieved in two steps. At first we find the local 3D location of the control point so it is on the ray that corresponds to its projection on the image. Then we find a rigid transformation that transforms these locally valued control points to their global coordinate system. This transformation enables us to transform the reconstructed 3D object from the local coordinate system to the global one. There are various scenarios that can be handled by the proposed algorithm: 1. There is a main rigid device that acquires the object's points so that it can reconstruct them locally, and an additional device (a single camera) that can detect the control points' 2D image coordinates. We assume that the global 3D coordinates of these control points are known (have been pre measured). The main device and the additional device are assumed to be in rigid relative known position so that once we solve the local position of the additional device, we may compute the transformation of the reconstructed 3D object's points to the global system of coordinates. 2. There is a rigid device that acquires the object's points so that it can reconstruct them locally, and one of this device's components is a camera that can detect the control points' 2D image coordinates. We assume that the global 3D coordinates of these control points are known (have been pre measured). Since the camera is part of the device that reconstruct the object's points locally, the reconstruction process defines a ray per each of the control points detected in the single camera. 3. There is no need to know the label of the specific control points. Alternatively, we are given a set of 3D points that are the control points measured in advance. The image taken by a single camera contains the projection of several control points without knowing of which of the control points precisely these projections are. Still, one can search for the precise subset of the control points that will fulfill the algorithm with the best score. Head Resection Issues Problem Definition: We are given a set {G, }" =1 of 3D control points as measured in a pre-reconstruction stage, hereafter also called the mapping stage. In the current position, the reconstruction device, hereafter also called the optical head, has acquires at least 2 images of the same area of the 3D object (we usually use 3 images). Some of the control points were measured in the first and/or the second and/or the third images. Let p t , p , p' be the 2D values in these images respectively. It is a known process of obtaining projective reconstruction of points that appear in at least two images, namely, per each 2D point in the any image we may add its projective height from the knowledge of this point in any additional image. Now, m order to avoid the projective height k t (and k , k' ) we may consider the 3- by-4 projection matrices from the 3D space to the images. Let T, T and T" be these matrices. In fact, these projection matrices are known (given the tensor) and actually they are sub-matrices of the inverse of the corresponding Proj2Euclid matrices. We look for rotation R and translation t from the global coordinate system to the local one. Note that even if we need the inverse one to move to global coordinates, the formulation in this case is easier with (R,t) in the direction Global -> Local. Decompose the projection matrices us T = (S s), T'= (S' s') and T"= (S" s") . Add unknown scalars {Λ,}" =] , { }" =1 and {Λ",}" =1 so that each of the equations are replaced by S • (R • G, + 1) + s S'iR-G,+t) + and Multiplying by the appropriate inverse matrices S ' , S' ' and S" ' yield R-G+t -s' and R-G+t = λ", S" i.-l -S" 1 J For simplicity, let us introduce the sets of known 3D points {P t }" =] , {P }" =1 and and let d , d' and d" be the 3D known translation vectors d = S l -s, d^S'^-s' and d"=S" ~l -s". Then, the above equations are simply R-G l +t = λ l P l -d = λ P -d'= A", F -d" . Note that since the scalars { ( }" =1 , {λ }" =1 and { ",}" =1 are unknown, each of them can be multiplied by any scalar. In particular we may move to unit valued 3D points {fit,. te' , and {Q" ,):__, defined by Modifying the unknown scalars accordingly yield R-G,+t = λ,Q,-d= λ Q -d'= A", Q -d" . In this context we should actually redefine the problem in the following way: We are given a set {G, }" =1 of 3D points as measured in the mapping stage. In the current position of the optical head some of these points were measured in the first and/or the second and/or the third images. Let p t , p , p", be the 2D values in these images respectively. From the projection matrices we conclude that for each of the 2D points there corresponds a 3D line such that the 3D point in the local coordinate system is on this line. The objective is to find scalars {^,}" =1 , {^',}" =1 and { ",},!,, rotation matrix R and translation vector t from the global coordinate system to the local one such that ∑IKΛ-G, + -(4£ ~d t + \\( R - G , + -W 2W ) |f + is minimal Breaking the problem to two sub-problems: Note that if we are given the rotation matrix R and the translation vector t then finding the scalars that minimize the defined cost function is simply done by projecting the 3D point R-G,+t on any of the lines A t Q t -d , A Q -d' or A' Q"-d". Recall further that Q, τ Q, = 1, Q', τ -Q', = l and Hence, and λ" l = (R-G l +t + d") τ -Q",. On the other hand, if the scalars {λ t }" =1 , {λ }" =1 and {A' }" =1 are known then the rotation matrix R and the translation vector t can be computed from the known SVD algorithm that fit the known sets of points {A t Q, - }" =] , {λ Q -</'}" = , and {A", Q", -d"}] =λ to the set {G, }" =1 (repeats three times for each of its copies). The remaining issue is to find initial solution to either the scalars or to the rotation and translation. We want to avoid the rotation R and translation t and deal merely with the unknown scalars based on the fact that distance between points is invariant under rigid transformation. There are different cases of derived equations. The first case is of two distinct points that appear in the same (say the first one) image. The equation is derived from G, - G J = R • G ( +t)-(R-G j + t) , so, ||G, -Gj = |μ,ι2, -< -(Λ,ρ -d)\\ or, ||G, -σJ = || β -Λ,O;J. The second one is of the same point that appears in two (say the first one and the second one) images Here we have the same 3D point R-G,+t so the equation is simply λ,Q, -d = λ Q -d Here there are actually 3 equations in the two unknowns λ t and A . The third one is of two distinct points that appear in two (say the first one and the second one) images. The derived equation here is ||G, - G , I = -d)- (Λ', Q J - . This case is of less information so we omit it from the further developed analysis. Detailed cases: Cas 1: Start with JIG, -G | = |A,O,, -λ,β,|, and let g ω =(G, -G,) r -(G, -G } ) and Q ιj = QΪ 'Q, tnen th e equation is λ, - 2A l A J q I + A J 2 = gl J . ι> Now, in case of m points, we end up with quadratic equations. v 2 In case of 3 points, there are 3 equations and in appendix 2 there is the output of a symbolic language (called MAPLE) that shows how to obtain an equation of degree 4 in A t so that it can be solved explicitly. Namely, the MAPLE has been used to obtain the specific coefficients of the equation of degree 4. If there are more than 3 points, then we have more equations than unknown elements. We should apply the Levenberg-Marquardt iterative process for which we need initial solution. Start with any triplet and solve its coefficients. Now consider any additional point and solve its coefficient as a system of m-\ quadratic equations in a single unknown (see appendix 1 below). Note that if one of the scalars, say λ, , is already known then we actually look for a point along the line which passes through the origin and has direction Q } so that its distance from the known point λ t Q t is ||G, - . If the projection of λ t Q t is further from that line than JIG, - G , then the projection is the best solution. Otherwise, there are two solutions. Case 2: The equations on A t and uniqueness and stability of the solutions of λ l and λ depend on the rank of the 3-by- 2 matrix of the coefficients. Note that if the point appears in all three images then the equations λ,Q, - d = λ Q -d' = A' Q -d" means 6 equations on 3 unknowns, namely, APPENDIX 1: System of quadratic equations in a single unknown. Consider the system of quadratic equations that we want to solve {a,* 2 +b [ x + c l + b l x + c l ) 2 then minimizing this function yields a cubic equation n ∑ 2 • (α,* 2 + b t x + c, ) • (2a t x + b l ) = 0. (Note that in case of a single quadratic equation, the solutions of the appropriate cubic equation are the two solutions to the original quadratic as well as the known extreme point x - — ) 2a APPENDIX 2: MAPLE program on 3 points fitting. > restart;A12 :=H Λ 2-2*ll*l2*ql2+12 Λ 2-gl2; 2 2 A12 := 11 - 2 11 12 ql2 + 12 - gl2 > A13 :=11 Λ 2 -2*11*13 *ql3+l3 A 2-gl3, • 2 2 A13 := 11 - 2 11 13 ql3 + 13 - gl3 > A23 : =12^2-2*12*13 *q23+l3 Λ 2-g23; 2 2 A23 := 12 - 2 12 13 q23 + 13 - g23 > A13-A23; 2 2 11 - 2 11 13 ql3 - gl3 - 12 + 2 12 13 q23 + g23 > 13:=SOlve(A13-A23,13) 2 2 11 + g23 - gl3 - 12 13 := 1/2 -12 q23 + 11 ql3 > B12 :=collect (numer (simplify (A13) ) , 12) ; 4 3 B12 := 12 - 4 11 ql3 12 q23 + 2 2 2 2 2 2 (-2 g23 + 4 11 ql3 + 4 11 q23 - 4 gl3 q23 - 2 11 + 2 gl3) 2 3 12 + (4 11 ql3 g23 q23 - 4 ll q23 ql3 + 4 11 ql3 gl3 q23) 12 2 2 2 2 2 + 2 11 g23 + gl3 - 4 11 ql3 g23 - 2 g23 gl3 - 2 11 gl3 4 2 + 11 + g23 > B12elim4 : =simplify (coeff (B12 , 12 , 4) /coeff (A12,12,2) ) ; B12elim4 := 1 > B12free4 —simplify (B12-A12*12 Λ 2*B12elim4) ; 3 2 2 2 2 B12free4 := -4 11 ql3 12 q23 - 2 g23 12 + 4 11 ql3 12 2 2 2 2 2 2 2 2 + 4 11 12 q23 - 4 gl3 12 q23 - 3 11 12 + 2 gl3 12 3 + 4 11 ql3 g23 12 q23 - 4 11 12 q23 ql3 + 4 11 ql3 gl3 12 q23 2 2 2 2 2 + 2 11 g23 + gl3 - 4 11 ql3 g23 - 2 g23 gl3 - 2 11 gl3 4 2 3 2 + 11 + g23 + 2 12 11 ql2 + 12 gl2 > B12elim3 : =simplify (coef f (B12f ree4 , 12 , 3) /coef f (A12 , 12 , 2) ) ; B12elim3 := -4 11 ql3 q23 + 2 11 ql2 > B12free3 —simplify (B12free4-A12*12*B12elim3) ; 2 2 2 2 2 2 2 2 B12free3 := 4 11 12 q23 + 2 11 g23 - 2 11 gl3 - 3 11 12 + g23 2 2 2 2 4 - 2 g23 gl3 - 2 g23 12 + gl3 + 2 gl3 12 + 12 gl2 + 11 2 2 2 2 2 2 2 - 4 11 ql3 g23 + 4 11 ql3 12 - 4 gl3 12 q23 2 2 2 + 4 11 ql3 g23 12 q23 + 4 11 ql3 gl3 12 q23 + 4 11 12 ql2 3 2 2 - 2 12 11 ql2 - 8 11 12 ql2 ql3 q23 - 4 12 gl2 11 ql3 q23 + 2 12 gl2 11 ql2 > C12:=simplify(B12free3*coeff (A12,12,2) -A12*coeff (B12free3 , 12 , 2 ) ) ; 4 2 2 2 2 2 C12 := -4 11 ql3 + 4 11 g23 - 4 11 gl3 + g23 - 2 g23 gl3 + gl3 4 2 2 4 2 2 - 4 11 q23 - 4 11 gl2 + 4 11 - 4 11 ql3 g23 3 + 4 11 ql3 g23 12 q23 + 4 11 ql3 gl3 12 q23 - 8 12 11 ql2 2 2 3 3 2 2 4 2 + 4 11 gl3 q23 + 8 11 12 ql2 + 4 gl2 11 q23 - 4 ll ql2 4 - 4 12 gl2 11 ql3 q23 + 4 12 gl2 11 ql2 + 8 11 ql2 ql3 q23 3 2 2 + 8 11 12 ql2 q23 - 2 gl2 g23 + 2 gl2 gl3 + gl2 3 2 2 + 8 11 12 ql2 ql3 - 8 11 12 ql2 gl3 q23 3 2 - 16 11 12 ql2 ql3 q23 - 4 11 12 ql2 g23 + 4 11 12 ql2 gl3 2 2 2 2 2 + 4 gl2 11 ql3 - 4 gl2 gl3 q23 + 4 gl2 11 ql2 2 - 8 gl2 11 ql2 ql3 q23 > 12 := -coeff (C12, 12,0) /coeff (C12 , 12 , 1) ; 4 2 2 2 2 12 := - (-4 11 ql3 + 4 11 g23 - 4 11 gl3 + g23 - 2 g23 gl3 2 4 2 2 4 2 2 + gl3 - 4 11 q23 - 4 11 gl2 + 4 ll - 4 11 ql3 g23 2 2 2 2 4 2 + 4 11 gl3 q23 + 4 gl2 11 q23 - 4 11 ql2 4 2 + 8 11 ql2 ql3 q23 - 2 gl2 g23 + 2 gl2 gl3 + gl2 2 2 2 2 2 + 4 gl2 11 ql3 - 4 gl2 gl3 q23 + 4 gl2 11 ql2 2 / - 8 gl2 11 ql2 ql3 q23) / (4 11 ql3 g23 q23 / 3 3 3 + 4 11 ql3 gl3 q23 - 8 11 ql2 + 8 11 ql2 - 4 gl2 11 ql3 q23 3 2 3 2 + 4 gl2 11 ql2 + 8 11 ql2 q23 + 8 11 ql2 ql3 2 3 2 - 8 11 ql2 gl3 q23 - 16 11 ql2 ql3 q23 - 4 11 ql2 g23 + 4 11 ql2 gl3) > A: =simplify (numer (A12) ) : > factor (coeff (A, 11,0) ) ; 2 2 2 2 (-4 gl2 gl3 q23 + gl2 + 2 gl2 gl3 + gl3 + g23 - 2 gl2 g23 2 - 2 g23 gl3) > coeff (A, 11,1) ; > factor (coeff (A, 11,2) ) ; 3 2 2 2 2 2 2 -16 gl2 ql3 q23 - 24 gl2 ql3 g23 + 24 gl2 ql3 g23 2 2 2 2 2 + 8 gl2 ql3 gl3 + 16 gl2 gl3 ql3 - 40 gl2 gl3 ql2 ql3 q23 2 2 2 3 - 16 gl2 ql2 gl3 q23 + 32 gl2 ql3 q23 ql2 gl3 g23 2 3 2 3 + 32 gl3 gl2 ql2 q23 ql3 + 32 gl2 gl3 ql2 q23 ql3 2 3 3 - 32 ql2 g23 gl3 gl2 + 8 gl3 ql2 ql3 q23 + 8 gl2 ql2 ql3 q23 2 2 2 2 - 8 g23 gl2 ql2 ql3 q23 - 16 ql2 g23 gl3 q23 2 - 8 g23 gl3 ql2 ql3 q23 + 48 g23 gl3 gl2 ql2 ql3 q23 3 3 2 2 2 + 8 g23 ql2 ql3 q23 - 8 gl2 + 32 gl2 ql3 g23 q23 2 2 2 2 2 2 - 16 gl2 ql3 g23 q23 - 16 gl2 ql3 gl3 q23 2 4 2 2 2 4- - 32 gl3 q23 gl2 - 16 gl2 q23 g23 - 32 gl2 q23 gl3 2 2 2 2 + 56 gl2 gl3 q23 + 48 gl2 g23 gl3 + 56 gl3 gl2 q23 2 2 2 2 2 2 + 8 g23 gl3 q23 + 8 g23 gl2 q23 + 16 g23 gl3 ql3 2 2 2 2 2 2 - 16 g23 gl3 q23 - 8 gl3 ql3 g23 - 24 ql2 g23 gl3 2 2 2 2 - 64 gl2 g23 gl3 q23 - 24 gl3 gl2 + 16 ql2 g23 gl2 3 2 2 3 2 2 + 8 gl2 ql3 - 24 gl2 gl3 + 8 gl2 q23 - 24 g23 gl3 2 2 2 3 2 - 24 g23 gl2 + 24 g23 gl3 + 24 g23 gl2 - 8 g23 ql3 3 2 2 3 2 3 2 + 8 gl3 q23 + 8 ql2 gl3 - 8 ql2 g23 - 32 gl2 g23 gl3 ql3 2 2 2 2 + 32 ql2 g23 gl3 q23 - 40 gl3 gl2 ql2 ql3 q23 2 2 2 2 2 3 2 + 24 ql2 g23 gl3 + 16 ql2 gl3 gl2 - 16 ql2 gl3 q23 2 2 2 2 2 - 8 gl2 ql2 g23 + 8 gl2 ql2 gl3 - 8 gl2 g23 ql2 ql3 q23 3 3 2 + 8 g23 - 8 gl3 - 8 ql2 g23 ql3 gl3 q23 > coeff (A, 11, 3) ; > factor (coeff (A, 11,4) ) , ■ 4 3 3 64 q23 gl2 gl3 - 32 ql2 gl2 gl3 ql3 q23 - 32 gl2 ql2 ql3 gl3 q23 2 2 2 2 3 + 64 ql2 gl2 ql3 gl3 q23 - 32 ql2 gl2 ql3 q23 2 2 2 3 2 + 16 gl2 ql2 ql3 - 32 ql2 g23 ql3 q23 2 2 2 4 2 + 64 ql2 gl2 ql3 q23 g23 - 32 ql3 g23 gl2 + 48 ql3 g23 gl3 2 2 2 - 48 gl2 ql3 gl3 + 48 g23 gl3 q23 + 48 gl2 g23 q23 2 2 2 2 2 2 + 48 gl2 ql3 q23 - 48 gl2 ql2 gl3 - 64 ql3 g23 q23 gl2 3 - 32 ql3 g23 q23 gl2 ql2 - 32 ql3 g23 q23 ql2 gl3 2 + 16 ql3 g23 q23 ql2 - 32 ql3 g23 q23 ql2 gl3 2 2 2 2 2 2 2 2 + 16 ql3 g23 q23 + 16 ql3 gl3 q23 + 32 gl2 ql2 gl3 q23 2 2 2 2 + 48 gl2 ql2 g23 + 16 gl2 ql3 q23 ql2 - 8 gl2 ql2 3 2 - 128 gl2 ql3 q23 ql2 gl3 + 16 ql3 gl3 q23 ql2 2 2 + 32 ql3 gl3 q23 gl2 + 160 ql3 gl3 q23 gl2 ql2 2 3 2 2 - 32 ql3 gl3 q23 ql2 + 24 g23 - 48 g23 gl3 + 24 gl3 2 2 4 2 2 - 40 ql2 gl3 - 32 ql2 g23 gl3 - 40 ql2 g23 2 2 2 2 2 2 + 80 gl2 ql3 g23 - 64 ql2 gl3 q23 g23 + 48 ql2 gl3 q23 2 2 + 80 ql2 g23 gl3 - 48 gl2 g23 + 48 gl2 gl3 + 24 gl2 2 2 2 2 4 2 2 - 112 gl2 gl3 q23 - 40 gl2 ql3 + 16 gl3 q23 - 40 gl2 q23 2 4 4 2 2 4 2 2 + 16 gl2 q23 + 16 ql3 g23 + 16 gl2 ql3 - 8 gl3 ql3 2 2 2 2 2 2 4 2 - 40 ql3 g23 - 40 gl3 q23 - 8 g23 q23 + 16 q!2 g23 + 16 ql2 gl3 - 64 ql2 g23 gl3 ql3 + 64 ql2 g23 gl3 ql3 q23 3 2 3 2 - 32 ql2 gl3 ql3 q23 - 32 ql2 ql3 g23 q23 3 2 2 2 - 32 ql2 ql3 g23 gl3 q23 + 16 gl2 ql2 q23 2 2 2 2 2 2 2 2 2 + 16 ql2 g23 q23 + 48 ql2 g23 ql3 + 16 ql2 gl3 ql3 2 2 3 - 64 ql2 ql3 g23 gl2 + 64 ql2 ql3 g23 gl2 q23 2 2 2 3 + 64 ql2 g23 gl3 ql3 q23 - 32 gl2 ql2 q23 ql3 g23 2 3 3 - 32 ql2 gl2 q23 ql3 - 32 ql2 gl2 g23 ql3 q23 > coeff (A, 11, 5) ; > factor (coeff (A, 11, 6) ) ; 2 2 2 2 -32 (-1 + ql2 + ql3 - 2 ql2 ql3 q23 + q23 ) (-ql2 g23 2 2 2 + 2 ql2 ql3 g23 + ql2 gl3 - ql3 gl3 q23 ql2 - ql3 g23 q23 ql2 2 2 - gl2 ql2 ql3 q23 - ql3 g23 - gl2 + q23 gl2 - gl3 + g23 2 2 + gl3 q23 + gl2 ql3 ) > coeff (A, 11, 7) ; 0 > factor (coeff (A, 11, 8) ) ; 2 2 2 2 16 (-1 + ql2 + ql3 - 2 ql2 ql3 q23 + q23 ) The foregoing description has been limited to a specific embodiment of this invention. It will be apparent, however, that various variations and modifications may be made to the invention, with the attainment of some or all of the advantages of the invention. It is the object of the appended claims to cover these and such other variations and modifications as come within the true spirit and scope of the invention. What is claimed as new and desired to be secured by Letters Patent is:

Claims: CLAIMS 1. A system for aligning a locally-reconstructed three-dimensional object in a scene to a global coordinate system comprising: A. a control point information generator configured to identify in at least image associated with a local reconstruction of said object a projection of at least one control point in the scene onto said at least one image, and generate local projected coordinate information indicating coordinates of said projection in said at least one image; and B. an alignment information generator configured to utilize said local projected coordinate information and mapping information relating to global coordinate information indicating coordinates of said at least one control point relative to said global coordinate system to generate alignment information relating a local coordinate system associated with said local reconstruction to said global coordinate system. 2. A system as defined in claim 1 in which said alignment information includes rotation information indicating an angular orientation of said local coordinate system relative to said global coordinate system.. 3. A system as defined in claim 1 in which said alignment information includes translation information indicating a translational displacement of said local coordinate system relative to said global coordinate system.. 4. A system as defined in claim 1 in which the control point information generator is configured to generate the local projected coordinate information as the value of a plurality of scalars λ, and λ j in relation to G - G. A t Q t - λ Q \ , where ||G,-G j || represents a distance between control points G, and G, in the scene and Q ι - , where P ι = S and S represents a portion of a projection matrix defining projections from the scene into the at least one image. 5. A system as defined in claim 1 in which the control point information generator is configured to identify projections of one control point onto each of two images and generate the control point information coordinate information therefrom. 6. A system as defined in claim 5 in which the control point information generator is configured to generate the local projected coordinate information as the value of a plurality of scalars λ, and λ', in - 1 relation to λ ,Q t - d = A Q - d , where > = π ( P, = ) and d = S ' • s , with "S" and "s" both representing portions of a respective projection matrices defining projections from the scene into the respective images. 7. A system as defined in claim 5 in which the control point information generator is configured to identify projections of one control point onto each of three images and generate the control point information coordinate information therefrom. 8. A system as defined in claim 1 in which said alignment information generator is configured to generate said alignment information by using a Singular Value Decomposition (SVD) algorithm that fits sets of points [λ t Q - d}" , {A ', Q - d'}" = and [λ " ,Q", - d"Y to the control points {G f } = ι , where β = ( > = ιS -ι ) and d = S • s , with "S" and "s" both represent portions of a respective projection matrices defining projections from the scene into the at least one image. 9. A method for aligning a locally-reconstructed three-dimensional object in a scene to a global coordinate system comprising the steps of: A. a control point information generating step in which is identified in at least image associated with a local reconstruction of said object a projection of at least one control point in the scene onto said at least one image, and is generated local projected coordinate information indicating coordinates of said projection in said at least one image; and B . an alignment information generating step in which are utilized said local proj ected coordinate information and mapping information relating to global coordinate information indicating coordinates of said at least one control point relative to said global coordinate system to generate alignment information relating a local coordinate system associated with said local reconstruction to said global coordinate system. 10. A method as defined in claim 9 in which said alignment information includes rotation information indicating an angular orientation of said local coordinate system relative to said global coordinate system.. 11. A method as defined in claim 9 in which said alignment information includes translation information indicating a translational displacement of said local coordinate system relative to said global coordinate system.. 12. A method as defined in claim 9 in which the control point information generating step includes the step of generating the local projected coordinate information as the value of a plurality of scalars λ, and λ, in relation to G - G, A Q - A Q , where IIQ-G j ll represents a distance between -1 control points G, and G, in the scene and Q t = TH-FT , where P ι = S and S represents a portion of a projection matrix defining projections from the scene into the at least one image. 13. A method as defined in claim 9 in which the control point information generating step includes the steps of identifying projections of one control point onto each of two images and generating the control point information coordinate information therefrom. 14. A method as defined in claim 13 in which the control point information generating step includes the step of generating the local projected coordinate information as the value of a plurality of scalars λ, and λ', in relation to A ,Q, - d = λ Q - d' , where Q = - r ( P = S ~ ) and d = S ■ s , with "S" and "s" both representing portions of a respective projection matrices defining projections from the scene into the respective images. 15. A method as defined in claim 13 in which the control point information generating step includes the steps of identifying projections of one control point onto each of three images and generating the control point information coordinate information therefrom. 16. A method as defined in claim 9 in which said alignment information generating step includes the step of generating said alignment information by using a Singular Value Decomposition (SVD) algorithm that fits sets of points {λ ,Q - d "_ , [λ and {A " Q < - ύT}"_ to the control points \ G \ , where O - TI — HT ( P = S ) and d = S '1 ■ s , with "S" and "s" both represent portions of a respective projection matrices defining projections from the scene into the at least one image. 17. A computer program product for use in connection with a computer to provide a system for aligning a locally-reconstructed three-dimensional object in a scene to a global coordinate system comprising a computer readable medium having encoded thereon: A. a control point information generator module configured to enable said computer to identify in at least image associated with a local reconstruction of said object a projection of at least one control point in the scene onto said at least one image, and generate local projected coordinate information indicating coordinates of said projection in said at least one image; and B . an alignment information generator module configured to enable the computer to utilize said local projected coordinate information and mapping information relating to global coordinate information indicating coordinates of said at least one control point relative to said global coordinate system to generate alignment information relating a local coordinate system associated with said local reconstruction to said global coordinate system. 18. A computer program product as defined in claim 17 in which said alignment information includes rotation information indicating an angular orientation of said local coordinate system relative to said global coordinate system.. 19. A computer program product as defined in claim 17 in which said alignment information includes translation information indicating a translational displacement of said local coordinate system relative to said global coordinate system.. 20. A computer program product as defined in claim 17 in which the control point information generator module is configured to enable said computer to generate the local projected coordinate information as the value of a plurality of scalars λ { and λ j in relation to G - G, * ,Q ~ λ J QJ where ||G r G j || represents a distance between control points G ; and G j in the scene and Q t - where P = S ~ and S represents a portion of a projection matrix defining projections from the scene into the at least one image. 21. A computer program product as defined in claim 17 in which the control point information generator module is configured to enable said computer to identify projections of one control point onto each of two images and generate the control point information coordinate information therefrom. 22. A computer program product as defined in claim 21 in which the control point information generator module is configured to enable said computer to generate the local projected coordinate information as the value of a plurality of scalars λ, and λ', in relation to A t Q t - d = A ' t Q - d' , where Q, = ) and d = S l ■ s , with "S" and "s" both representing portions of a respective projection matrices defining projections from the scene into the respective images. 23. A computer program product as defined in claim 21 in which the control point information generator module is configured to enable said computer to identify projections of one control point onto each of three images and generate the control point information coordinate information therefrom. 24. A computer program product as defined in claim 17 in which said alignment information generator module is configured to enable said computer to generate said alignment information by using a Singular Value Decomposition (SVD) algorithm that fits sets of points λ l Q l - d , {λ Q -d'Y_ and [λ " ,Q", -d"Y χ to the control points [G ^" , where 0 = i P, ( P, = S- ) and d - S ■ s , with "S" and "s" both represent portions of a respective projection matrices defining projections from the scene into the at least one image.

Inventors: SHALOM TAMIR, SHALOM, TAMIR
Applicants: COGNITENS LTD, COGNITENS, LTD.
Application year: 2000
Main classification: G06K9
IPC codes: G06T3, G06T7, G06T17