Abstract:
A method and system for determining surface topology of a three-dimensional (3D) structure, based on a structured pattern that is projected onto the surface structure, and images of the pattern superposed on the structured surface are analysed to provide surface coordinates of the structure. The pattern comprises a plurality of unique color edges defined between pairs of differently-colored stripes, which substantially overcomes ambiguity problems. In one embodiment, a calibration method is provided enabling the surface coordinates to be obtained from a single image of the structure.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to the field of 3-dimensional (3D) scanning of a surface of a 3D object. More particularly, the present invention relates to a method for reliably, but yet in a simple manner, generating 3D coordinates of a surface of a 3D object, for example 3D coordinates of a surface of a human face.  
       BACKGROUND OF THE INVENTION  
       [0002]     One possible way of obtaining 3D coordinates of an 3D object by from 2D digital image is carried out by utilizing, what is commonly known as the Original “Structured Light Technique”, which is usually based on irradiating (i.e., projecting, e.g., white line(s), or strip(s), onto the surface of a 3D object, employing corresponding 2D image processing technique for distinguishing these lines/strips from other portions of the object (i.e., by usually utilizing simple threshold techniques), after which a known triangulation algorithm is utilized for calculating the 3D coordinates of points residing on these lines/strips. There is a well known ambiguity problem associated with the simultaneous projection of several lines onto the surface of the object, i.e., there is no reliable way to distinguish between different white lines of the 2D image in the presence of noise, because some points could be missed and other points could be falsely assigned to the wrong line. One possible approach to overcome these problems is to project only one line at a time, and, then, to process the resulting 2D image white points as corresponding to respective known lines. However, the problem with the aforesaid ‘one white-line technique’ is that only the coordinates of the points positioned on this line will be obtained. Conventional techniques try to solve this problem (i.e., getting a larger set of 3D points), by physically moving the line to various locations, or, alternatively, by using several lines; which are switched on and off. Both solutions are very long, inconvenient and time consuming processes and they require complicated hardware or mechanical tools.  
         [0003]     Fitracks discloses in a co pending IL Patent application serial No. 154345 a method and apparatus for determining the 3-dimensional shape and dimensions of an object. However, Fitracks teaches utilizing a number of parallel light sources that are switched “ON” and “OFF” according to an acquisition algorithm. However, according to Fitracks, the number of the lines is limited to eight and, in any case, can not be significantly increased, thus restricting 3D resolution of Fitrack&#39;s scanner. In addition, Fitracks utilizes laser light, which is unacceptable in applications where the tested object is a human face.  
         [0004]     In order to solve problems caused by use of white strips/lines, a pattern that includes lines of different colors is used. Then, different lines are projected at the same time, and corresponding software distinguishes between the lines by their respective colors on the 2D image. However, the problem with the latter approach is that it can only be applied for white or homogeneously colored (say grey, yellow or green) colored objects, because when projected on a colored object, such as a human face, one or more of the colored lines could be similar to the colors in the object, which would render the color recognition technique unreliable.  
         [0005]     U.S. Pat. No. 6,028,672 discloses high speed 3D imaging method, which is implemented, according to one embodiment, by two cameras, for creating stereo-pairs, and according to another embodiment, by one camera. However, using one camera as disclosed by U.S. Pat. No. 6,028,672, requires utilization of several mirrors and a LCD shutter, which makes the disclosed system expensive. In addition, the system of U.S. Pat. No. 6,028,672 requires very accurate spectral device, the price of which is normally in the range 730-1,395 US$, which is relatively high. Furthermore, the high accuracy spectral device is critical for obtaining the required results. However, a problem with this method is that, the spectrum of the light reflected from the object under test, is dictated according to the absorption spectrum of the reflecting surface, and, even worse, according to the reflection angle and texture of the reflecting surface.  
         [0006]     U.S. Pat. No. 6,413,084 discloses a method and system for scanning an object, in which each one of the lines is assigned a bar-code like marker above it. However, this system can not be applied to human face, because most of the markers will not be reliably visible by the camera, or reliably resolved.  
         [0007]     U.S. Pat. No. 6,438,272 discloses a method and apparatus for three dimensional surface contouring using a digital video projection system. According to U.S. Pat. No. 6,438,272, one camera is utilized, as well as color strips with separators. However, the aforesaid method/apparatus utilize a phase detection algorithm, which is incapable of handling missing sections in the lines. Therefore, a crucial factor, in operating the system of U.S. Pat. No. 6,438,272, is that the calibration pattern as a whole must be seen by the camera with no ‘holes’/missing sections. In addition, the method disclosed in U.S. Pat. No. 6,438,272 could be employed, as indicated therein, only on white or homogeneously colored surfaces, the angle of acquisition (i.e., of the face) must be very carefully chosen (to ensure contiguity of the pattern), and the optical elements of the camera must be of high precision. Therefore, this apparatus could be potentially exploited mostly by laboratories.  
         [0008]     Other solutions are aimed at solving some of the above-described drawbacks. However, these solutions employ rather complex mathematical algorithms which are mostly highly unreliable in the real life environment, and/or use laser and/or digital projectors, which is a drawback by itself because of the cost.  
         [0009]     All of the above-mentioned solutions have not provided a satisfactory solution to the problem of obtaining a 3D scanning of an object by means of very low cost, compactly designed, and reliable 3D scanning apparatus.  
         [0010]     It is therefore an object of the present invention to provide a compact 3D scanning apparatus, which is inexpensive, easy to operate and reliable.  
         [0011]     It is another object of the present invention to provide a 3D scanning apparatus that is capable of reliably handling non-uniformly colored shape of an object.  
         [0012]     It is still another object of the present invention to provide a 3D scanning apparatus wherein the accuracy of the arrangement of its optical components, relative to one another, and the quality of the optical components are not critical to its proper functioning.  
         [0013]     It is a further object of the present invention to provide a method for reliably obtaining a 3D model of a 3D object.  
         [0014]     It is a further object of the present invention to provide a 3D scanning apparatus capable of operating rapidly or essentially in ‘real-time’.  
         [0015]     Other objects and advantages of the invention will become apparent as the description proceeds.  
       SUMMARY OF THE INVENTION  
       [0016]     The present invention provides a simple novel method for generating a reliable 3D model of a colored surface of a 3D object.  
         [0017]     The present invention is characterized in that the method, for generating a reliable 3D model of a colored surface of a 3D object, utilizes a unique colored pattern that is projected, in a first phase, onto a white 2D surface of a calibration object, for calibration purposes, and then, in a second phase, on the surface of the object whose 3D coordinates are to be obtained (or vice versa; i.e., the described order of phases could be reversed). In each one of the above-mentioned phases, a reflected image of the color pattern (in the first phase), or a reflected complex image, which comprises the color pattern superimposed on the surface of the object (in the second phase), is grabbed by an image grabbing apparatus. By ‘grabbing’ is meant the term used in the digital camera industry to describe a process of converting Charge-Coupled Device (CCD) signals into a sequence of digital bytes that are stored in the form of a corresponding file, in any type of electronic memory.  
         [0018]     In its utilization of a unique colored pattern, the present invention utilizes ‘color-jumps’ rather than utilizing colored strips alone, as is done in some conventional techniques. By ‘color jumps’ is meant an abrupt color change between two parallel and adjacent strips each of which having a different color. The abrupt color change allows accurate and easy identification of the corresponding color edges, or color boundaries. By “color edge” is meant the boundary between two parallel and adjacent colored strips, each strip having a different color, and by ‘unique color edge’ is meant that every color edge (e.g., ‘G/R’—‘Green-Red’ color edge) appears only once in the colored pattern. Color jump technique allow for reliably finding the location of each color edge. Each pair of adjacent colored strips could produce two unique color edges; that is, one order of appearance of the colored strips providing a first unique color edge, while another unique color edge is obtainable if the order of appearance of the colored strips is reversed. For example, according to the present invention, ‘Green-Red’ and ‘Red-Green’ color edges are considered as different unique color edges. Utilizing color edges is advantageous over utilization of color lines themselves, because the use of color edges drastically decreases the intrinsic ambiguity that characterizes the use of color lines. Utilizing unique color edges further enhances the calibration process, because, being unique, the relative spatial location of each calibration color edge, with respect to the other unique color edges, is precisely known, and, therefore, each point that is derived, from a surface of an object, is easily and simply related to the correct calibration color edge.  
         [0019]     The present invention is characterized also in that the colored strips, which form the unique colored pattern and are projected onto the surface of an object, form an angle α preferably other than zero with respect to contour or silhouette lines of the most conspicuous elements on the surface of the object. A well-chosen angle α ensures optimal identification of points that reside on these contour/silhouette lines. For example, in cases where the surface is the face of a person, the color strips would be declined in a way that, when projected on the face of the person, an angle α≈45° would be formed between the color strips and the silhouette lines of the nose and mouth.  
         [0020]     Preferably, the method for generating a 3D model of a colored object, whose 2D image is grabbed by an image grabbing apparatus, comprises:  
         [0021]     a) Providing a storage array for storing a group of {X,Y,Z} coordinates of a plurality of calibration points and a group of a plurality of {Row,Column} pairs that represent these calibration points in the image grabbing apparatus; and also for storing the {X,Y,Z} coordinates and the {Row,Column} pairs that relate to the same calibration points;  
         [0022]     b) Performing a first step of calibration (‘2D mapping’), which includes: (b.1) utilization of 2D calibration grid, for determining {X,Y,Z} coordinates of a plurality of calibration points residing on the 2D calibration grid when placed at a predetermined ‘Calibration Stop’, and finding, for each calibration point, a corresponding {Row,Column} pair that represents this calibration point in the image grabbing apparatus. The determined {X,Y,Z} coordinates and the corresponding {Row,Column} pairs, which represent the calibration points residing on the same (X-Y) plane, are stored in the storage array. By ‘Calibration Stop’ is meant the distance measured (i.e., along ‘Z’ axis) from an image grabbing apparatus to a predetermined (calibration) location, where the 2D calibration grid is positioned. In order to perform a calibration process, at least two different calibration stops (sometimes referred herein as ‘First Calibration Stop’ and ‘Last Calibration Stop’) are to be used; (b.2) repeating step (b.1), with the 2D calibration grid placed at another one or more different calibration stop (i.e., a calibration stop having a different ‘Z’ value), in order to obtain calibration data that represent calibration points that reside on two or more different and parallel planes. The calibration points, which relate to every calibration stop, define a work space, and the calibration data, which relates to calibration points in the work space, is herein referred to as the first calibration data set, which is stored in the storage array; (b.3) calculating, from the stored first calibration data set, a set of coefficients that represents the relationships for each calibrating stop between the {X,Y,Z} coordinates of each calibration point in the 2D calibration grid and the {Row,Column} pair that represents the calibration point in the image grabbing apparatus. The set of coefficients allows obtaining the {X,Y,Z} coordinates of essentially any point, given a {Row,Column} pair representation of this point, by manipulating (i.e., interpolating or extrapolating) data that corresponds to calibration points that are, preferably, the closest to this point;  
         [0023]     The novel method is characterized by performing a second step of calibration that includes:  
         [0024]     c) Placing a white planar surface at several calibration stops, as mentioned in step b), while at each calibration stop performing: 
        c.1) Projecting the color pattern on a white surface that is located at two or more predetermined calibration stops. The unique color pattern is formed by combination of a plurality of pairs of parallel and adjacent color strips, each color strip having a different color with respect to the adjacent strip, for allowing identification of respective unique color edges, by employing Directional Color Edge Detection algorithm. The color strips can be inclined by an angle α, with respect to contours and silhouettes lines on the surface of the object. The slide is intended to be projected on a white surface of a calibration object, for calibration purposes, and on the object whose 3D is to be obtained;     c.2) Projecting the unique color pattern on the white planar surface, and grabbing, by means of the image grabbing apparatus, and for each calibration stop, a 2D image that is the reflection of the color pattern from the white surface; and;     c.3) Identifying, in the grabbed 2D image, points that represent unique calibration color edges that are contained in the unique colored pattern. The identified points having corresponding {Row,Column} pairs that are stored in the storage array. Accordingly, each unique calibration color edge is, therefore, represented by two or more sets of {Row,Column} pairs; each one of the sets of {Row,Column} pairs, is obtained for each calibration stop, and all of the sets of {Row,Column} pairs being herein referred to as ‘second calibration data set’ and are stored in the storage array. Using the coefficients that were found in step b.3) to translate the sets of {Row,Column} pairs, which represent the unique color edges as viewed by the image grabbing apparatus in two or more calibration stops, to corresponding {X,Y,Z} coordinates; and        
 
         [0028]     d) Obtaining the 3D model of the surface of the object by: 
        d.1) placing the object in the work space and projecting the unique color pattern on the object. The three-dimensional (3D) object deforms the reflected color pattern in accordance with its 3D surface characteristics (e.g., curvature);     d.2) grabbing a 2D complex image that includes the deformed color pattern superimposed on the surface of the object;     d.3) identifying, in the complex image, {Row,Column} pairs of points that represent the unique color edges that are included in the deformed color pattern; and     d.4) Utilizing the coefficients for translating the {Row,Column} pairs identified in step d.3) into corresponding {X,Y,Z} coordinates, for obtaining 3D model of the surface of the object, by using ‘state-of-the-art’ image processing means. A 3D representation of the surface of the object could be displayed on a 2D display means by using different presentation angles. Optionally, the 3D model could be utilized for performing geometrical measurements according to specific application needs. For example, the 3D model could be utilized for measuring the size of the eyes of a person, or for measuring the distance between the eyes.        
 
         [0033]     According to one aspect of the present invention, the 2D calibration grid comprises a plurality of parallel vertical lines and parallel horizontal lines that form an X-Y plane. The vertical and horizontal lines could be (though this is not necessary) equidistantly spaced from one another. The intersection points of the horizontal lines and the vertical lines are the calibration points, and the first calibration data set is obtained by placing the 2D calibration grid at two or more calibration stops and utilizing these calibration points in the way described above. The ‘vertical/horizontal lines’ based calibration grid is primarily useful for manual calibration.  
         [0034]     According to another aspect of the present invention the 2D calibration grid comprises a white surface of a 2D calibration object, on which a plurality of colored calibration markers are printed, painted, etched, adhered, or otherwise put, each colored calibration marker comprises a pair of bars, each bar having different color for providing a unique color edge. The method for utilizing these calibration markers comprises: (a) grabbing, by an image grabbing apparatus, the image of the colored calibration markers; (b) identifying, in the grabbed image, the unique color edges; and (c) identifying the central point in each unique color edge. The identified central points are the calibration, points, and the first calibration data set is obtained by placing the 2D calibration object, with the calibration markers thereon, at two or more calibration stops, and utilizing the calibration points in the way described above. The ‘calibration markers’ based calibration grid is better suited for an automated extraction of {Row,Column} pairs of calibration points, and, therefore, it is better suited for automated calibration process.  
         [0035]     Preferably, the unique colored pattern further includes separators (herein after denoted by ‘S’), each of which is part of the color pattern and placed between two unique color edges for allowing to easily distinguish between the various unique color edges). Optionally, two separators could be placed at the extreme ends of the color pattern (i.e., one separator at each extreme end).  
         [0036]     Preferably, a separator ‘S’ is a combination of white and black strips (e.g., S=wbw, wherein ‘w’ and ‘b’ stand for ‘white’ and ‘black’, respectively). Optionally, one or more separators (including those placed at the extreme ends) could include any other combination(s) of colors, which combinations could include, or exclude, white and/or black colors. The word ‘white’ has two meanings: (1) when the unique colored pattern is projected (i.e., during the calibration process and when grabbing an image of an object whose 3D image is to be obtained) by utilizing a slide that contains the color pattern, the word ‘white’ refers to transparent strips in the slide; and (2) when the unique colored pattern is an image that is projected by a computer, the word ‘white’ means the color white.  
         [0037]     According to the present invention, the method for obtaining the 3D coordinates of the surface of the 3D object further includes steps for imparting color attributes to the resulting representation of the modeled surface that essentially match the true colors of the surface of the object.  
         [0038]     According to one embodiment of the present invention, the true color of the surface of the object is imparted to the 3D representation of the surface by performing the following steps: 
    a) Grabbing a true color 2D image of the surface of the object while the surface of the object is illuminated by white light; and     b) For each point belonging to the 3D model, assigning a true color to the point by identifying its {Row, Column} pair and by identifying the true color of a point in the true color 2D image, whose {Row, Column} pair is essentially identical to the {Row, Column} pair of the point belonging to the 3D model. The identified true color (i.e., of the point in the true color 2D image) is assigned to the corresponding point belonging to the 3D model. This approach requires that the 3D Object will be stationary between two frames (i.e., one frame that is obtained by illuminating the object by color pattern, and the second frame by illuminating the object by white light).    
 
         [0041]     According to another embodiment of the present invention, the true color of the face of the object is imparted to the 3D representation by utilizing the white strips, which are part of the separators in the color pattern, to get true color information of points that are positioned on these stripes and represent the true color of matching points on the surface of the object. More specifically, the white strips could be identified (i.e., by using any readily available color identification technique and by a priori knowledge of the relative location of the colored strips contained in the colored pattern), and, because the white strips are colorless, it is assumed that the space, which the white strips occupy in the corresponding grabbed 2D image, has the same color as the corresponding areas in the surface of the object. The color of points not illuminated by white strips (that is, points between white strips) may be calculated, if required, by utilizing any appropriate interpolation algorithm. This approach provides lower resolution (because of the use of interpolation) but enables real-time (for example, 30 frames per second) 3D Scanning of moving objects.  
         [0042]     Preferably, the object is a human being, and the face of the object is, therefore, the face of the human being, or, optionally, any other part of interest (e.g., a palm or leg).  
         [0043]     According to one aspect of the present invention, an angle α is utilized, which is chosen to optimize a 3D model of specific surface, or object.  
         [0044]     Depending on the shape/curvature characteristics of the surface of the object, two or more angles α could be utilized for obtaining an optimal 3D model of the object. Each angle α allows establishing different, and independent, set of data, each set of data allows optimizing the 3D model with respect to corresponding contour/silhouette lines. That is, it is possible to establish one set of data by using α 1  and another, independent, set of data by using α 2 , and then, combine the two independent sets of data to one optimized 3D model.  
         [0045]     According to one aspect of the present invention, the resolution of the 3D model could be enhanced by utilizing a colored pattern that comprises more unique color edges, and/or more separators.  
         [0046]     According to another aspect of the present invention, the resolution of the 3D Model could be enhanced by utilizing the color pattern in two or more different positions. According to this embodiment, the color pattern is moved in the same plane in a direction that is not parallel to the colored strips of the color pattern, until brought to some desired positioning, or the color pattern is rotated about some preferred axis that is normal to the plane of the color pattern, until brought to some desired position, or, the color pattern is both moved in the same plane, in a direction that is, or is not, parallel to the colored strips of the color pattern, and rotated about some preferred axis that is normal to the plane of the color pattern, until brought to a preferred position. Each different position contributes additional points, to the 3D Model whereby enhancing the resolution.  
         [0047]     The present invention also provides a 3D scanning apparatus, comprising:  
         [0000]     a) A housing, comprising:  
         [0048]     a.1) A slide, containing a unique color edge pattern. The unique color edge pattern being formed by a combination of a plurality of pairs of parallel colored strips, each color strip having a different color with respect to the adjacent strip, for allowing convenient and accurate identification of respective unique color edges. The colored strips could be inclined by an angle α, with respect to contours and silhouettes on the surface of the object whose 3D model is to be obtained. The slide is intended to be projected on a white surface of a calibration object, for calibration purposes, and on the surface of an object whose 3D is to be obtained;  
         [0049]     a.2) Slide projector lamp, for illuminating the slide containing the unique color edge pattern;  
         [0050]     a.3) Slide projector condenser lens (optional), for providing parallel light to one side of the slide;  
         [0051]     a.4) Slide projector lens, for focusing the projected color edge pattern on the surface;  
         [0052]     a.5) Mirror (optional), for deflecting the projected color edge pattern to the direction of the surface; and  
         [0053]     a.6) Digital image grabbing apparatus, for grabbing a 2D image of calibration patterns and for grabbing an image of the reflection of the color edge pattern from the surface of the object. 
    b) Calibration object, for obtaining a plurality of sets of calibration points, which form a first and second calibration data sets and defining a work space. The calibration object is external to the housing and placed at various calibration stops with respect to the housing, for allowing obtaining the calibration, points;     c) Spot lamp (optional), for illuminating the calibration object, while the calibration process is carried out, and the surface of the object, in order to get true color 2D image for extracting true color information; and    
 
         [0056]     Computer system, for: d.1) Receiving, from the digital image grabbing apparatus, 2D digital images of a calibration grid, or calibration marks with, optional control marks at different calibration stops. At each calibration stop, a set of 3D calibration points is obtained the {X,Y,Z} coordinates of which are known; d.2) Relating the known {X,Y,Z} coordinates of each calibration point, in each set, to a corresponding {Row,Column} pair in the corresponding 2D digital image; d.3) Storing all of the relationships obtained in step d.2) as first calibration data set; d.4) Performing steps d.1) and d.2), but with the calibration grid/marks being replaced by a color pattern, for obtaining relationships between {X,Y,Z} coordinates of points residing on each unique color edge that is included in the unique colored pattern; d.5) Storing all of the relationships obtained in step d.4) as second calibration data set, and calculating there from a set of coefficients that represents the relationships for each calibration stop between the {X,Y,Z} coordinates of each calibration point in the 2D calibration grid/marker and the {Row,Column} pair that represents the calibration point in the image grabbing apparatus; d.6) Operating the slide, slide projector and, optionally, spot light, for projecting the color edge pattern on the surface of the object; d.7) Receiving, from the digital image grabbing apparatus, 2D digital image(s) of the color edge pattern, as reflected by the surface of the object; d.8) Identifying therein a set of points, the {Row,Column} pairs of which are known but the {X,Y,Z} coordinates of which are to be found, or calculated by interpolation/extrapolation; d.9) Relating the known {Row,Column} pairs of the points to corresponding {X,Y,Z} coordinates, by utilizing said set of coefficients; and d.10) imparting true color to said 3D model, by: (a) receiving a true color 2D image of the object while the object is illuminated by white light; and (b) assigning, for each point belonging to the 3D model, a true color to said point by identifying its {Row, Column} pair and by identifying the true color of a point in the true color 2D image, whose {Row, Column} pair is essentially identical to the {Row,Column} pair of the point belonging to the 3D model, the identified true color is assigned to the corresponding point belonging to the 3D model.  
         [0057]     According to an aspect of the present invention, the digital image grabbing apparatus and the projector reside within different housings.  
         [0058]     Herein, “strip” and “stripe” are generally used interchangeably to refer to a two dimensional colored area, having a length dimension much greater than a width dimension.  
         [0059]     Thus the present invention relates to a structured light pattern for use in the determination of 3D surface topology of a 3D structure, wherein said pattern may be projected onto such a structure and 3D surface topology thereof is determined from at least one image obtained of the structure with said pattern reflected therefrom, the pattern comprising a plurality of pairs of colored stripes, wherein each said pair comprises:  
         [0060]     two juxtaposed discrete stripes, one said stripe being of a different color from the other stripe; and  
         [0061]     a unique color edge defining a unique color transition boundary between the colors of said two adjacent stripes in a predetermined direction substantially orthogonal to a longitudinal direction of said stripes;  
         [0062]     wherein each said color edge is sufficiently unique at least one of:  
         [0063]     by itself; and  
         [0064]     in its spatial relationship with color edges of other said pairs of stripes in a common neighborhood in said pattern comprising said pairs;  
         [0065]     such as to enable identification of each color edge of said pattern when said pattern is reflected from said 3D structure.  
         [0066]     Herein, “discrete stripe” refers to the width dimension of each stripe being sufficient to enable optical identification of the stripe, typically the width dimension being at least 2 pixels wide, and often 3 pixels. (**as agreed with inventor)  
         [0067]     Preferably:—
        the unique color edge of each said pair is not repeated at least in adjacent said pairs thereto; and/or     the colors of said stripes in each pair are chosen to emphasize color contrast between one stripe and the other stripe of said pair; and/or     each stripe comprises a color that is substantially uniform within the stripe; and/or     the pattern is based on said stripes being any one of three basic colors; and/or     the stripes are colored exclusively in primary colors chosen from the group: red, blue and green; and/or     the stripes are colored exclusively in colors chosen from the group: red, blue, green, magenta, cyan and yellow.        
 
         [0074]     Optionally, the pattern further comprises at least one spacer stripe between each adjacent said pair of stripes, said at least one spacer stripe being of a color having a predetermined color contrast with a said stripe of each one of said adjacent pairs of stripes that is adjacent to said at least one spacer stripe. The spacer stripes may comprise a white stripe between adjacent pairs of stripes; or a black stripe between adjacent pairs of stripes; or a group of stripes, comprising a black stripe sandwiched between two white stripes, between adjacent pairs of stripes.  
         [0075]     Optionally, the pattern further comprises a trailer comprising at least one stripe adjacent to at least one or another of a first and a last said pairs taken along said direction. The trailer stripes may comprise a group, comprising a sequence of two black stripes, a white stripe, a black stripe, a white stripe and a black stripe adjacent to said first pair of stripes. Another one of the trailer stripes may comprise a group, comprising a sequence of a black stripe, a white stripe, a black stripe, a white stripe and a black stripe adjacent to said last pair of stripes.  
         [0076]     In one embodiment, the pattern may comprise the following color stripe sequence:  
                           bbwbwb wbwRGwbwBG wbwRBwbwGB wbwBRwbwGRwbw bwbwb              
 
         [0077]     wherein:  
         [0078]     b=black stripe  
         [0079]     w=white stripe  
         [0080]     R=red stripe  
         [0081]     B=blue stripe  
         [0082]     G=green stripe  
         [0083]     In another embodiment the pattern comprises the following color stripe sequence:  
                                       wbwRGwbwRBwbwRMwbwRCwbwRY                           wbwGRwbwGBwbwGMwbwGCwbwGY                       wbwBRwbwBGwbwBMwbwBCwbwBY                       wbwMRwbwMGwbwMBwbwMCwbwMY                       wbwCRwbwCGwbwCBwbwCMwbwCY                       wbwYRwbwYGwbwYBwbwYMwbwYCwbw          
 
         [0084]     wherein:  
         [0085]     b=black stripe  
         [0086]     w=white stripe  
         [0087]     R=red stripe  
         [0088]     B=blue stripe  
         [0089]     G=green stripe  
         [0090]     M=Magenta  
         [0091]     C=Cyan  
         [0092]     Y=Yellow.  
         [0093]     The structured pattern of the invention is extremely effective in overcoming the correspondence problem and allows each part of pattern to be positively identified when the pattern is projected onto a three-dimensional (3D) structure. Accordingly, the pattern may be used with any 3D structure determination method or system which utilizes a structured pattern that is projected onto the structure and from which one or more images are taken and analysed.  
         [0094]     The present invention is also directed to a method for determining 3D surface topology of a 3D structure, comprising:— 
         [0095]     (a) illuminating said structure with the structured pattern defined of the present invention;  
         [0096]     (b) capturing at least two images of the structure on which the said structured pattern is being shone;  
         [0097]     (c) identifying corresponding unique color edges between said images;  
         [0098]     (d) applying a suitable mathematical technique for determining surface coordinates of said structure from the correspondence found in step (c).  
         [0099]     Optionally, in step (d), said mathematical technique includes a triangulation method, or alternatively an epipolar method.  
         [0100]     The present invention also relates to a method for determining surface topology of a 3D structure, comprising:— 
         [0101]     (a providing a calibration image of a structured pattern reflected from a calibration object at each one of at least two calibration stops serially spaced along an optical axis at predetermined depths from a source projecting said structured pattern according to the present invention;  
         [0102]     (b) for each said calibration image, identifying unique color edges between stripes of each said pair of stripes and determining spatial coordinates associated with said unique color edges;  
         [0103]     (c) aligning said structure along said optical axis, projecting said structured light pattern onto a surface of said structure wherein said pattern is modified by virtue of the topology of the structure surface such that to provide a modified pattern superposed over said structure surface comprising a plurality of modified color edges corresponding to said color edges;  
         [0104]     (d) providing at least one complex image of said structure surface with said modified pattern superposed thereon, and for each said complex image identifying unique modified color edges between stripes of each said pair of stripes with respect to said color edges of said pattern; and  
         [0105]     (e) for each said unique modified color edge, determining spatial coordinates associated therewith from the spatial coordinates obtained in (b) for the corresponding unique color edge of each said calibration image, to provide surface coordinates of said structure.  
         [0106]     Typically, the structure surface has depth values from said source between a first depth and a second depth, and wherein one said calibration stop is at a depth from said source not greater than said first depth and another said calibration stop is at a depth from said source not less than said second depth, wherein said first depth is less than said second depth.  
         [0107]     In one embodiment, steps (a) and (b) comprise the sub steps:  
         [0108]     (i) providing a storage array for storing a group of {X,Y,Z} coordinates of a plurality of calibration points and a group of a plurality of {Row,Column} pairs that represent said calibration points in said image grabbing apparatus; and also for storing the {X,Y,Z} coordinates and the {Row,Column} pairs that relate to the same calibration points;  
         [0109]     (ii) performing a first step of calibration, including:  
         [0110]     (b.1) utilization of 2D calibration grid, for determining {X,Y,Z} coordinates of a plurality of calibration points residing on the 2D calibration grid when placed at a predetermined calibration stop, and finding for each calibration point a corresponding {Row,Column} pair that represents said calibration point in said image grabbing apparatus, the determined {X,Y,Z} coordinates and the corresponding {Row,Column} pairs, which represent the calibration points that reside on the same (X-Y) plane, being stored in said storage array;  
         [0111]     (b.2) repeating step (b.1), with the 2D calibration grid placed at another one or more different calibration stops, in order to obtain calibration data that represent calibration points that reside on two or more different and parallel planes, said calibration points, which relate to every calibration stop, defining a work space and the calibration data relating to calibration points in said work space being a first calibration data set that is stored in said storage array;  
         [0112]     (b.3) calculating, from the stored first calibration data set, a set of coefficients that represents the relationships, for each calibrating stop, between its {X,Y,Z} coordinates in the 2D calibration grid and the {Row,Column} pair that represents said calibration point in said image grabbing apparatus, said set of coefficients allowing obtaining the {X,Y,Z} coordinates of essentially any point, given a {Row,Column} pair representation of said point, by manipulating data that corresponds to calibration points that are, preferably, the closest to said point;  
         [0113]     (iii) placing a white planar surface at several calibration stops, as described in step (ii), while at each calibration stop performing:  
         [0114]     c.1) projecting a unique color pattern on said white planar surface that is located at two or more predetermined calibration stops;  
         [0115]     c.2) grabbing, by said image grabbing apparatus and for each calibration stop, a 2D image that is the reflection of the unique color pattern from said white planar surface;  
         [0116]     c.3) identifying, in the grabbed 2D image and for each calibration stop, points that represent unique calibration color edges that are contained in said unique color pattern, the identified points having corresponding {Row,Column} pairs that are stored in the storage array, each unique calibration color edge being represented by two or more sets of {Row,Column} pairs, each one of said sets of {Row,Column} pairs being obtained for each calibration stop, and all of the sets of {Row,Column} pairs being a second calibration data set that is stored in said storage array; and  
         [0117]     c.4) using the coefficients found in step b.3) to translate the sets of {Row,Column} pairs to corresponding {X,Y,Z} coordinates.  
         [0118]     In one embodiment, wherein steps (c) to (e) comprise:  
         [0119]     d.1) placing said object in said work space and projecting the unique color pattern on said object;  
         [0120]     d.2) grabbing a 2D complex image that includes said color pattern, as deformed by said surface of the object, that is superimposed on said surface of said object;  
         [0121]     d.3) identifying, in said complex image, {Row,Column} pairs of points that represent the unique color edges that are included in the deformed color pattern; and  
         [0122]     d.4) utilizing said coefficients for translating the {Row,Column} pairs identified in step d.3) into corresponding {X,Y,Z} coordinates, for obtaining 3D model of said surface of the object.  
         [0123]     Thus, the present invention also relates to a system for the determination of 3D surface topology of a 3D structure, comprising:  
         [0124]     illumination means adapted for projecting a beam of structured light onto at least said portion, said structured light having a pattern according to the present invention;  
         [0125]     at least one image capture means for capturing at least one image of said portion with said structured pattern projected thereon;  
         [0126]     processing means adapted for determining surface topology of at least said portion based on said at least one image provided by said at least one image capture means.  
         [0127]     The illumination means typically comprises a light source, focusing optics and a slide comprising said structured pattern, and the illumination means is comprised in a housing, which can further comprise the image capture means. The image capture means typically comprises a digital image grabbing apparatus.  
         [0128]     The system typically further comprises a calibration apparatus, comprising a calibration object movable between at least a first calibration station and a second calibration station defining a workspace therebetween in which the said portion of said structure is to be positioned, wherein said processing means is adapted for determining depth values associated with said portion based on depth values of said calibration object at said at least first and second calibration stations. The calibration object comprises a two-dimensional calibration grid including a plurality of parallel vertical lines and parallel horizontal lines that form an X-Y plane, the intersection points of said horizontal lines and said vertical lines are the calibration points. Alternatively, the calibration object comprises a white surface on which a plurality of colored calibration markers are printed, painted, etched or adhered, each colored calibration marker comprising a pair of bars, each bar having different color for providing a unique color edge.  
         [0129]     The present invention also relates to a method for determining surface topology of a 3D structure, comprising:—
        (a) providing a calibration image of a structured pattern, comprising a plurality of geometrical portions, reflected from a calibration object at each one of at least two calibration stops serially spaced along an optical axis at predetermined depths from a source projecting said structured pattern;     (b) for each said calibration image, identifying unique portions of said structured pattern corresponding to predetermined portions of said structured pattern in another said image, and determining spatial coordinates associated with said unique portions;     (c) aligning said structure along said optical axis, projecting said structured light pattern onto a surface of said structure wherein said pattern is modified by virtue of the topology of the structure surface such that to provide a modified pattern superposed over said structure surface comprising a plurality of modified geometrical portions corresponding to said geometrical portions;     (d) providing at least one complex image of said structure surface with said modified pattern superposed thereon, and for each said complex image identifying unique modified geometrical portions corresponding to said geometrical portions; and     (e) for each said unique modified portion, determining spatial coordinates associated therewith from the spatial coordinates obtained in     (b) for the corresponding unique portion of each said calibration image, to provide surface coordinates of said structure.        
 
         [0136]     The present invention also relates to a computer readable medium storing instructions for programming a microprocessor means of a system according to the invention to perform a method according to the invention. A computer readable medium storing instructions for programming a microprocessor means of a system as defined in any one of claims  25  to  24  perform a method as defined in any one of claims  17  to  24 . 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0137]     In order to understand the invention and to see how it may be carried out in practice, one or more embodiments will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which:  
         [0138]      FIG. 1  schematically illustrates a general layout and functionality of an system for obtaining a 3D model of a surface of an object;  
         [0139]      FIG. 2  schematically illustrates the main components of a “3D Scanner”, according to an exemplary embodiment of the present invention;  
         [0140]      FIGS. 3   a  and  3   b  show two exemplary unique colored pattern (shown as corresponding grey levels), according to an embodiment of the present invention;  
         [0141]      FIGS. 4   a  and  4   b  schematically illustrate positioning of a calibration object during the calibration process;  
         [0142]      FIGS. 5   a  and  5   b  show utilization of exemplary calibration pattern that is utilized in manual or automatic calibration process, respectively, which is a first part of the calibration process.  
         [0143]      FIG. 6   a  shows utilization of exemplary unique color edge pattern as utilized in the second stage of the calibration process, according to a preferred embodiment of the present invention;  
         [0144]      FIG. 6   b  shows grabbed image of exemplary unique color edge pattern as utilized in the second stage of the calibration process, according to a preferred embodiment of the present invention  
         [0145]      FIG. 7   a  shows an exemplary modeled plaster mimicking human face, while being illuminated by the color pattern shown in  FIG. 6 , where α≈0°, and positioned at some distance from an image grabbing apparatus;  
         [0146]      FIG. 7   b  shows a grabbed image of the plaster face illuminated by color pattern, as vaguely shown in  FIG. 7   a;    
         [0147]      FIG. 7   c  illustrates relationship between exemplary two G/R calibration color edges and G/R color edge of the object whose 3D Model is to be obtained, according to the present invention; and  
         [0148]      FIG. 8  shows a grabbed image of the plaster face illuminated by color pattern for which α≅45°. 
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0149]      FIG. 1  schematically illustrates a general layout and functionality of the present invention. Slide projector  13  irradiates a color edge pattern (the radiation being schematically indicated as  13 / 1 ) onto a face  13 / 2  of a person. A portion  13 / 3  of the irradiated color light  13 / 1  is reflected from face  13 / 2 , and received by an image grabbing apparatus  12 , which could be; e.g., a digital video, or still, camera. The grabbed image is forwarded to computer  19 , which includes corresponding software for processing the acquired image, for obtaining a 3D True Color Model 20, or 3D representation, of the human face  13 / 2 . The 3D True Color Model of the human face relates to points that were derived from a set of points positioned on the surface of the human face, each point being characterized by its {X,Y,Z} coordinates and by its true color attributes. This 3D Model can be used by the software to generate 2D projections, or images, of the human face from different angles and positions.  
         [0150]      FIG. 2  schematically illustrates in general the main components of the “3D Scanner”, according to one embodiment of the present invention.  
         [0151]     The system of the invention may be in the form of a 3D Scanner  10  consists of Housing  11 , which comprises: 
    (1) Digital image grabbing apparatus  12 , which could be a still, or optionally video, camera, is functionally connected to a controlling means (not shown), such as the computer  19  shown in  FIG. 1 , with corresponding software. Still/Video camera  12  could be any readily available camera (i.e., “From the shelf”); and     (2) Slide Projector  13 , the operation of which is controlled by the controlling means (not shown), which Slide Projector comprises: 
        Slide Projector&#39; Lamp  17 ;     Slide Projector&#39; Condenser Lens  14 ;     Slide  15 ;     Mirror  16 ; and     Slide Projector&#39; Lens  23 .    
       
 
         [0159]     The Slide Projector could be any commercially available Slide Projector or a dedicated Slide Projector (i.e., one that is specially designed for complying with the objectives of the present invention).  
         [0160]     3D Scanner  10  may further comprise an additional White Light Source  18  (i.e., Spot Lamp), the operation of which could be controlled by; e.g., computer  19  (in  FIG. 1 ).  
         [0161]     The controlling means (not shown) could be either a readily available computer, such as computer  19 , or a dedicated controller (i.e., that is specially designed for cooperating with the 3D Scanner).  
         [0162]     The arrangement of the components inside housing  11 , as shown in  FIG. 2 , is only one possible way for implementing 3D Scanner  10 . However, this arrangement was found to be rather optimal for obtaining 3D images of a human face in the home environment.  
         [0163]     Description of the 3D Scanner Elements  
         [0164]     1. Housing  11 . The entire 3D Scanner is assembled inside the non-opaque non-reflective housing constructed, for example, with black non-reflective plastic inside and from non-reflective plastic of any color outside. Exemplary external dimensions of housing  11  are 100 mm (W)×100 mm (D)×250 mm (H). Of course, other dimensions of housing  11 , as well as other arrangements of the components residing therein, could be utilized as well, without departing from the scope of the present invention, Housing  11  has openings in its front side (i.e., the side facing the object that is to be scanned) for the: (1) Lens of camera  12 ; (2) Lens  23  of Slide Projector  13 ; (3) Spot Lamp  18 ; and for an (4) electrical cable that functionally connects the relevant components residing within scanner  10  to the (external) computer/controller (not shown).  
         [0165]     In a typical situation, 3D Scanner  10  is positioned on a table in close proximity to the computer/controller and approximately 30-50 cm away from the face of a person, whose face is to be grabbed by means of camera  12  and analyzed (i.e., modeled) by the computer/controller. The person sits near the table so that he may see the image of his face on the computer&#39;s monitor, for allowing him to operate the mouse during acquisition of the image of his face by camera  12 , and to know if he is looking directly towards the 3D camera  12  or in another direction, at different stages of the acquisition process. Optionally, an interface may be provided, which, during the acquisition process, instructs the user (e.g., by audio commands) to “took into the camera”, “took to the Right”, etc., for obtaining the plurality of 3D models of his face, which could be later combined into one 3D Model. For example, a 3D model of the left side of a human face could be obtained, while the right side is not visible. Then, a second model of the right side of this face might be obtained, after which, the left and right 3D models could be combined into one 3D model using state-of-the-art image processing means.  
         [0166]     Optionally, several 3D scanners, such as scanner  10 , could be spatially positioned and used, for obtaining a full panoramic model of the human face, or any other 3D object. Each of the scanners obtaining part of the 3D Model of the object, with state-of-the-art image processing software used to combine all partial 3D models into one full (panoramic) 3D Model of the object, essentially in a way described in the Fitracks Patent application referenced above.  
         [0167]     2. Camera  12 , one task of which is grabbing true color images of the object. Due to the calibration process, which includes utilization of a unique colored pattern, the lens of camera  12  can be of poor quality, producing relatively large distortions, without compromising 3D imaging accuracy. The parameters (e.g., Brightness, Contrast, etc.) of camera  12  must be controlled by a corresponding computer/controller, to allow adequate acquisition of images under different conditions of lighting. For example, a human face could b&amp; illuminated in a room by natural light or ‘spot’ light. A spot light might be utilized in cases where natural light in the room is inadequate. Another exemplary light condition is whenever a human face is illuminated by a Slide Projector for obtaining Structured Light Image, in a way described herein below.  
         [0168]     The resolution of the camera defines the 3D accuracy (see calculations herein below). According to an exemplary embodiment, an SVGA camera with resolution of (640×480 pixels) was utilized with true color 24 bit per pixel (8 bit for each one of the basic {R,G,B} colors (“R”=red, “G”=green and “B”=blue colors).  
         [0169]     3. Slide Projector  13 , the task of which is projecting specially designed Structured Light Pattern (i.e., Color Edge Pattern—the pattern and functionality of which are described herein) onto a surface of an object, the 3D model of which is to be obtained. Due to the uniqueness of the calibration process, which is described below, the Slide Projector&#39;s optical and mechanical characteristics can be poor and considerable optical distortions allowed without compromising the resulting 3D accuracy. An exemplary Slide Projector, which was utilized for demonstrating the benefits of the principles disclosed in the present invention, consists of:  
         [0170]     3.1) Lamp  17 , which is strong enough to provide enough light for the digital camera to grab relevant images, but weak enough not to blind a person being scanned. Standard spot lamp (for example 12V, 50W) is adequate for the goals of this invention;  
         [0171]     3.2) Slide Projector Condenser Lens  14  (optional), the function of which is providing uniform illumination on the Slide;  
         [0172]     3.3) Slide  15  (to be described later)  
         [0173]     3.4) Mirror  16  (optional), the task of which is to deflect a projected pattern to a desired direction, such as towards the face of a person; and  
         [0174]     3.5) Slide Projector Lens  23 , the task of which is to focus the projected pattern onto the face of a person that is positioned, say, approximately 30-50 cm from Slide Projector Lens  23 .  
         [0175]     The arrangement of the slide projector, as schematically shown in  FIG. 1  and  FIG. 2 , was chosen in order to provide a compact design for the 3D Scanner However, other arrangements, for projecting the same pattern(s) on the surface of the object (including objects different from a human face), might be utilized as well.  
         [0176]     4. Additional (Optional) white lightning means (i.e., Spot Lamp  18 ), which is controlled by a computer (not shown), could be utilized. Spot Lamp  18  could be chosen (or especially designed) to project white light onto a calibration object and onto the surface of the object being scanned or onto the face of a person.  
         [0177]     5. A readily available (‘off-the-shelf’) Computer, or any controller that is suited or specially designed, for: (a) controlling slide projector lamp  17 , spot lamp  18  and camera  12 , according to a prescribed acquisition and calibration protocol; (b) grabbing data of images picked up by camera  12 ; (c) processing calibration data; (d) generation of the corresponding 3D Image from stored image(s) and calibration data; and (d) presenting the corresponding 3D image according to user&#39;s chosen interface.  
         [0178]     Slide (and Projected Pattern) Description  
         [0179]     Referring to  FIGS. 3   a  and  3   b  and as described before, utilizing white lines for obtaining a 3D presentation of a surface of an object involves very inconvenient and time consuming processes. The present invention utilizes a specially designed set of color strips that are organized in such a way that a large number of lines can be simultaneously processed, resulting in more accurate and faster 3D image acquisition process. In addition, the production of the pattern of colored strips is simple and inexpensive, because all that is required for its production are readily available inexpensive transparent film, a computer, capable of handling simple graphics, and a state of the art ink-jet printer, for printing the required pattern on the transparent film. Other ways to produce such a slide are any appropriate printing process, like photo printing  
         [0180]     Color Edge Technique (CET)  
         [0181]     Color Edge Technique is based on searching for Color Differences (“Jump of the Color”) in the vicinity of the Color Edge. The CET technique provides more reliable line position recognition in cases where the color of the object is not changed abruptly in the vicinity of the color edge, as is the case of, e.g., Human Face.  
         [0182]     Directional Color Edge Detection (DCED)  
         [0183]     Directional Color Edge Detection is the natural extension of edge detection techniques that are well known in the field of image processing. The goal of DCED is to evaluate the exact position of a known color jump in the overall image at a specified, given, or wanted direction. There is a large number of “Edge Detectors” that can be utilized. A rather simple Color Edge Detector algorithm is utilized by this invention. However, any other appropriate algorithm may be used as well.  
         [0184]     In order to facilitate the understanding of how an edge line is identified in an image, the following example will now be described:  
         [0185]     Suppose that there is a digital data stored in the memory of a computer, which represents an image, and that one line of this image is to be ‘scanned’ (i.e., in an attempt to identify color changes, or edge points, along that line). Suppose, further, that a test is to be made, to determine whether at the column position [i] (i.e., column of index [i]) there is a vertical color edge ‘GREEN-RED’ (i.e., [GR]) in the Left-to-Right direction along the scanned line). Suppose, further, that the digital data that corresponds to the scanned line is as specified in Table-1:  
                                                                                   TABLE-1                                       Column number                i − 4   i − 3   i − 2   i − 1   i   i + 1                        RGB Value   V[i − 4]   V[i − 3]   V[ − 2]   V[i − 1]   V[i]   V[i + 1]                  
 
         [0186]     In Table-1, V[i] is a structure of type RGB (i.e., Red, Green and Blue) and V[i].R denotes the red value, or component/portion, of a pixel in location [i].  
         [0187]     Although the width of the stripes can be 2 pixels each, suppose that it is known for a certain case that the width of the strips is not narrower that three pixels, and specifically to the current discussion. ‘R’ strip and the ‘B’ strip is not narrower then three pixels. Then, one exemplary algorithm for demonstrating the concept comprises the steps of:  
         [0188]     1) Calculating Left.R, Left.G, Left.B: 
 
Left R=V[i− 3]. R+V[i− 2 ].R+V[i− 1]. R  
 
Left G=V[i− 3 ].G+V[i− 2 ].G+V[i− 1]. G  
 
Left B=V[i− 3]. B+V[i− 2 ].B+V[i− 1]. B  
 
         [0189]     2) Calculating Right.R, Right.G, Right.B: 
 
Right R=V[i+ 2 ].R+V[i+ 1 ].R+V[i].R  
 
Right G=V[i+ 2]. G+V[i+ 1 ].G+V[i].G  
 
Right B=V[i+ 2]. B+V[i+ 1]. B+V[i].B  
 
         [0190]     3) Calculating Color Jump: 
 
ColorJump. R =Right. R −Left. R  
 
ColorJump. G =Right. G −Left. G  
 
ColorJump. B =Right. B −Left. B  
 
         [0191]     4) Deciding Whether there is Color Edge ‘GR’ at the Point [i]:  
                                                                                       IF { ( ColorJump.R &gt; LimitR )                AND ( −(ColorJump.G &gt; LimitG))                AND( abs( ColorJump.B) &lt; LimitB ) } then “This is GR            color edge”                otherwise “This is NOT GR color edge”                      
 
         [0192]     where LimitR, LimirG, LimitB are empirical parameters chosen according to application.  
         [0193]     The criteria described in step 4) (immediately above) must be adapted according to the Left and Right colors of the Color Edge that is being searched for, that, is for each unique color jump a proper criteria must be provided.  
         [0194]     If for some practical reason (for example because of noise), several points of the color edge are not be recognized by DCED (false negative), the only result of this will be that these missed points will not be part of the resulting 3D Model. This will not severely deteriorate the 3D model provided that the number of these points is not large. On the other hand, situations in which some “non-edge” points are erroneously recognized as “edge points” are negligible. Therefore, even the simplest DCED is robust and reliable enough for the goals of this invention. Nevertheless, more robust color-edge techniques could be utilized for minimizing the number of ‘missed-points’ and erroneous points.  
         [0195]     A number of other, more robust techniques which are insensitive to the background light intensity and noise, and to properties of the detectors, can be developed and utilized for specific applications.  
         [0196]     Pattern  
         [0197]     There are a large number of possible color patterns, which can be utilized for generating 3D image of an object, provided that the colors are different for each adjacent edge (including order of the adjacent colors, see later explanation). In addition, in order to improve the 3D resolution, color spacers/separators can be included in a color pattern.  
         [0198]     For the sake of simplicity, an example of a color pattern having six basic colors is described below, which can be reliably produced on the slide&#39;s surface and the colors of which can be reliably distinguished by a true color camera. The six colors are ‘Red’ (R), Green (G), Blue (B), Magenta (M), Cyan (C) and Yellow (Y). The pattern includes additional colors; i.e., White (w) and Black (b) (in small letters, to distinguish black from Blue). The latter colors (i.e., w and b) will be used as separators. Of course, any other selection of colors could be utilized with the camera still being capable of distinguishing between the different colored strips.  
         [0199]     In addition, “S” will symbolize a separator/spacer, which may consist of a short sequence of the colors mentioned above (i.e., R, G, B, M, C, Y, w and b). Edges at the separator are not unique, but they are located between unique edges, so they also could be reliably distinguished.  
         [0200]     It should be noted that employing the Color Edge Technique on the color pair ‘XY’ and on the color pair ‘YX’ (wherein ‘X’ and ‘Y’ are two different colors) would yield different unique color edges. This way, each pair of colors would provide two unique color edges. The more unique color edges there are the better is the resolution of the 3D Model.  
         [0201]      FIG. 3   a  shows (in gray levels) an exemplary unique colored pattern of relatively complex pattern of colored strips. This exemplary pattern was obtained by using all possible combinations of six colors (i.e., each combination providing a unique color edge), and by ‘implanting’ separators (‘wbw’) to allow distinguishing between each two adjacent color edges. The sequence (described below) representing the unique color pattern is to be read from the left hand side to the right hand side, and from the upper line to the bottom line:  
                                       wbwRGwbwRBwbwRMwbwRCwbwRY                           wbwGRwbwGBwbwGMwbwGCwbwGY                       wbwBRwbwBGwbwBMwbwBCwbwBY                       wbwMRwbwMGwbwMBwbwMCwbwMY                       wbwCRwbwCGwbwCBwbwCMwbwCY                       wbwYRwbwYGwbwYBwbwYMwbwYCwbw            
         [0202]     This sequence provides 153 color edges, which gives spacing of four pixels (i.e., 640/153) between each two color edges. This pixel width is more than adequate for the purpose of the current invention and still large enough for the Color Edge Detector (see previous description).  
         [0203]     A separator may contain a combination of more colored and non-colored strips, which would result in more edges and, therefore, improved resolution.  
         [0204]     The more colored strips and unique color edges in the pattern, the more enhanced the resolution and more accurate the resulting 3D model. The actual selection of the number of strips and their colors would preferably be made in accordance with the characteristics of the shape and colors of the object, whose 3D image is to be modeled.  
         [0205]     To simplify the drawing and related description, a simpler pattern, which is based on only three basic colors, will be referred now (see  FIG. 3   b ):  
         [0206]      FIG. 3   b  shows another example of a unique colored pattern, which is much simpler than the colored pattern shown in  FIG. 3   a . The sequence of colored strips is:  
                                       bbwbwb                           wbwRGwbwBG                       wbwRBwbwGB                       wbwBRwbwGRwbw                       bwbwb            
         [0207]     The sequence shown in  FIG. 3   b  provides only six unique color combinations and a total of only 33 useful color edges (44 edges if left and right trailers are counted in addition to the unique color edges themselves). Left and right ‘wbw’ trailers are not counted nor they are recognized by the software, as they are included here only for geometrical reasons: only useful color edges will be eventually seen from all relevant calibration stops (see description relating to the calibration process).  
         [0208]     Calibration Procedure and Relevant Calculation  
         [0209]     Considering intrinsic inaccuracies in the components of 3D Scanner  10  (e.g., distorted lenses, inaccurate spatial position and orientations of the lenses, etc.), calibration of 3D Scanner  10  is essential prior to its usage.  
         [0210]     In cases of robust (mechanically stable) implementation/assembly of a 3D Scanner  10 , the 3D Scanner could be calibrated once at the manufacturing stage at the factory. Calibration can also be performed on the site where the scanner is being used if necessary. The calibration process is essentially the same for both cases.  
         [0211]     The calibration process will be described with reference to  FIGS. 4   a  to  6   b  and comprises two basic stages. The first stage involves utilization of a calibration grid, or calibration marks, the image of which is grabbed at different calibration stops. The first calibration stage is described in connection with FIGS.  4   a ,  4   b ,  5   a  and  5   b . The second stage of the calibration process involves projection of a unique colored pattern on a white surface of; e.g., a planar board (being the calibration object). The second calibration stage is described in connection with  FIGS. 6   a  and  6   b.    
         [0212]     The calibration process may be manual, nearly automated or fully automated. A manual calibration process will be now described by referring to  FIG. 5   a , and an automated calibration process will be described by referring to  FIG. 5   b.    
         [0213]     The calibration process referred to as “Projection Light” technique is well known. Here it will be described specifically in connection with the goals of the present invention.  
         [0214]      FIGS. 4   a  and  4   b  schematically illustrate the calibration system setup for the first stage of the calibration process. The calibration system comprises calibration object  21  and positioning means  22 . According to one aspect of the present invention, the calibration object  21  is a flat plate, on one side of which there is printed, adhered, or etched, calibration grid  21 / 1 , which is used in the first stage of the calibration process, for obtaining the first calibration data set. Calibration grid  21 / 1  includes parallel horizontal lines and parallel vertical lines that are equidistantly spaced from one another (e.g., by 1 cm). For simplicity only part of the horizontal and vertical lines are shown on  FIGS. 4   a ,  4   b . Some crossing points, which are the crossings of some horizontal line with some vertical line, are referred to herein as calibration points. The other side (not shown) of calibration object  21  is white, for allowing projection of color pattern thereon while performing the second stage of the calibration process. The calibration grid could have different characteristics (i.e., color grid/pattern). The coordinates system is the following (see  FIG. 4   a ): axis ‘Z’ points away from scanner  10 ; axis ‘X’ is the horizontal axis; ‘Y’ is the vertical axis and point {X=0, Y=0, Z=0} resides at point  31  on Positioning Means  22 .  
         [0215]     The calibration process includes utilization of both calibration grid  21 / 1  in the first stage of the calibration process and the side with the white surface in the second stage of the calibration process. The calibration process is carried out by placing scanner  10  at some distance from the calibration system, and moving calibration grid  21 / 1  to two or more calibration stops, for example, to a first calibration stop (i.e., the position nearest to scanner  10 , location  22 / 1 , where Z=0), and to a last calibration stop (i.e., the position furthest from scanner  10 , location  22 / 2 ), while, at each calibration stop, scanner  10  grabs the image of calibration grid  21 / 1 . Each one of the grabbed images of the calibration grid provides a set of calibration points, and the collection of sets of calibration points defines a 3D work space, in which an object could be later positioned in order to obtain its 3D model. The {X,Y,Z} coordinates of every calibration point in the 3D work space is known, and so is its corresponding {Row,Column} pair in the grabbed image. The relationships between the {X,Y,Z} coordinates of the calibration points to the corresponding {Row, Column} pairs for each calibration stop are referred to as the first calibration data set, which is stored in a storage array.  
         [0216]     It should be noted, that, due to the principles disclosed herein, the absolute distance between scanner  10  and calibration grid  21 / 1  is unimportant for the calibration process, a fact that makes the calibration process very friendly to the user. The same is correct with respect to the exact orientation of calibration object  21  relative to the optical axis of scanner  10 , because, after completing the calculations, an exact 3D shape will be obtained in any case.  
         [0217]      FIG. 5   a  shows a realistic image of the real calibration grid with exemplary spacing 1 cm between horizontal and vertical lines, as captured, or grabbed, by scanner  10  (see  FIG. 4   a ) while being positioned in the first calibration stop having exemplary value Z=6 cm.  
         [0218]     Exemplary calibration point  1 , the {X,Y,Z} coordinates of which (i.e., in cm) are {5,5,6} (see  FIG. 4   a ), appears in the 2D representation as equivalent {Row,Column} pair {77, 119} (shown in  FIG. 5   a ). It may be seen that optical distortion in this example is low (that is, vertical lines are nearly parallel and horizontal lines are nearly parallel, and angles between horizontal and vertical lines are nearly 90°.  
         [0219]     In this case the mathematical relationship between {Row,Column} values of any point on this image and real {X,Y,Z} coordinates of this point may be approximated by simple linear interpolation equations: 
 
 X=A 1 +B 1*Row+ C 1 *Col;  
 
 Y=A 2 +B 2*Row+ C 2 *Col;  
 
         [0220]     Wherein ‘X’ and ‘Y’ are absolute coordinates of some point on the Calibration Grid Pattern, and ‘Row’ and ‘Col’ are the row and column of the same point on the 2D image of the Calibration Grid Pattern. ‘A1’, ‘B1’, ‘A2’, ‘B2’, ‘C1’ and ‘C2’ are coefficients that are to be calculated during the calibration process. ‘Z’ is known and equals 6 cm.  
         [0221]     In order to evaluate coefficients {A1, B1, C1} and {A2, B2, C2}, three calibration points are required: (Calibration Point  1  (an exemplary Point  1  is shown in  FIGS. 4   a  and  5   a ), and additional Calibration Points  2  and  3  (not shown). The three Calibration points must not be positioned on the same straight line. Realistic coordinates of exemplary Point  2  and Point  3  could be: {15,5,6} for Point  2 , and {5,20,6} for Point  3 .  
         [0222]     This exemplary selection of calibration points creates a 2D ‘working region’ confined in the 2D rectangle defined by {X,Y} points {5,5} and {15,20} 
         [0223]     The relationships between coordinates {X,Y,Z} and {Row,Column} pairs are found for two or more calibration stops, and stored as the first calibration data set.  
         [0224]     In case the Linear mapping error appears to be significant, any appropriate nonlinear (for example bilinear) mapping may be used. In such a case more Calibration Points must be chosen.  
         [0225]     In any case, the relationships between {Row,Column} for the first calibration stop will be later referenced as: 
 
 X=F 1(Row,Column) 
 
 Y=F 2(Row,Column) 
 
         [0226]     And for the last calibration stop as: 
 
 X=F 3(Row,Column); 
 
 Y=F 4(Row,Column); 
 
         [0227]     ‘Z’ has a different known value for each calibration stop.  
         [0228]     According to another aspect of the present invention, the calibration grid is replaced by calibration and control marks, as described in connection with  FIG. 5   b.    
         [0229]      FIG. 5   b  shows an exemplary alternative for the calibration grid shown in  FIGS. 5   a ; that is, the calibration image of  FIG. 5   b  could replace the calibration grid shown, for example, in  FIG. 5   a . Three special markers (i.e.,  51 ,  52  and  53 ) are positioned at known calibration points, for example {5,5}, {5,20}, {15,5}, respectively. An additional marker, a control marker, is positioned at {15,20}. Each marker comprises a pair of different color bars that create a unique color edge. By ‘unique’ it is meant (in this context) that each color edge appears only once in the calibration image  56 . For example, for calibration marker  51  the bottom bar has a color Green and the upper bar has color Red (forming color edge ‘G/R’), for marker  52  the corresponding colors are ‘B/R’, and for marker  53 —‘G/B’. Additional (control) marker  54  has ‘Yellow—Black’ color edge). Control mark  54  may be used for testing the accuracy of the automated calibration and accuracy of the interpolation relationships F1, F2.  
         [0230]     Each unique color edge can be reliably found by a proper color edge detection algorithm. The central point of each color edge defines a calibration point. In contrast to utilizing a calibration grid such as the one shown, for example, in  FIG. 5   a , the {Row,Column} of the calibration points relating to  FIG. 5   b  may be found automatically, by using corresponding software capable of, or designed for, performing DCED. Additionally, human readable marks could be added (i.e., {5,5},{15,5} etc. . . .), to allow an operator to supervise and control the results of the automated calibration process.  
         [0231]     During the automated calibration process, the calibration grid is to be positioned in two or more calibration stops, as is done in the manual calibration procedures described above. At each calibration stop the relationship between {X,Y,Z} coordinates and corresponding {Row,Column} of each calibration point is established. In cases where more calibration points are required, more markers might be utilized, each of which provides an additional unique color edge and corresponding calibration points.  
         [0232]      FIG. 6   a  shows exemplary setup of a calibration system for the second stage of the calibration process. A color pattern, such as the color pattern shown in  FIG. 3   a  or  FIG. 3   b , is projected by slide projector  17  onto a white surface of calibration object  21 , and its image is grabbed by camera  12 , as shown in  FIG. 6   b . Calibration object  21  is positioned at two or more calibration stops (each calibration stop having a different ‘Z’ coordinate), while at each calibration stop the corresponding image of the color pattern is grabbed. Accordingly, each unique color edge is acquired by camera  12  once for each of the actual calibration stops. For example, if there are only two calibration stops, each unique color edge will be grabbed twice, because each color is seen differently by camera  12  at the different calibration stops. The color edges in every grabbed image are then obtained by utilizing any of the readily available Directional Color Edge Detection techniques (DCED), and {Row,Column} pairs of points residing on the obtained color edges (e.g., G/R, G/B, etc.) are obtained. The obtained color edges, as they are seen by camera  12  from every calibration stop, are herein referred to as ‘calibration color edges’. Next, each obtained point is assigned {X,Y,Z} coordinates by utilizing its {Row,Column} pair and the relationships between {Row,Column} pairs and {X,Y,Z} coordinates, as were obtained in the first calibration stage, when a calibration grid was utilized.  
         [0233]      FIG. 7   a  shows projection of a color pattern on an exemplary human face made of plaster, in accordance with the present invention. Object  70  (in this case a plaster object representing the front side of a head of a human) is placed in the work region in order to obtain its 3D model. A slide projector (not shown) projects a unique colored pattern, such as the color pattern shown in  FIG. 3   a  or  FIG. 3   b , unto the face of object  70  (i.e., the color strips are shown as horizontal lines in  FIG. 7   a ), and a camera/scanner (not shown) grabs the complex image that is reflected from object  70 . By ‘complex image’ is meant an image that includes modified colored strips that are superimposed on the image of the face of the object, as shown in, e.g.,  FIG. 7   b . The function of board  75  is only to provide mechanical support to plaster face  70  while the image of plaster face  70 , with the color pattern projected there upon, is grabbed.  
         [0234]     In  FIG. 7   b , reference numeral  73  denotes an exemplary color edge G/R, and reference numeral  74  denotes an exemplary Row line that is shifted, by a corresponding software, along color edge  73 , for allowing obtaining points residing thereon and which will be later assigned corresponding {X,Y,Z} coordinates (by utilizing the first calibration data set) that will represent this color edge (i.e., G/R,  73 ). For example, at the current position of line  74 , line  74  crosses color edge  73  at point C, the {Row, Column} pair of which is known to the software carrying the calculations.  
         [0235]      FIG. 7   c  shows an exemplary detection of a G/R color edge by utilizing the G/R calibration color edges that were found in the second stage of the calibration process.  
         [0236]     By ‘G/R color edges’ is meant, in this example, the same ‘G/R’ color edge that was seen by the camera from two different calibration stops. In  FIG. 7   c , reference numerals  71  and  72  denote the ‘G/R’ calibration color edges as seen by the camera/scanner from the first and last calibration stops, respectively. However, because it is most likely that real color edges would be at an arbitrary distance away from the camera (i.e., having arbitrary ‘Z’ coordinates), a real color edge would normally fall between two calibration color edges of the same type (e.g., G/R). Nevertheless, any such color edge is obtainable by utilizing the two (neighboring) calibration color edges that are the closest to specific real color edge (i.e., line  73 ). Represented by pixels, the {Row,Column} of points residing on the calibration color edges  71 ,  72 , and on the real color edge  73 , are known. In order to obtain a 3D model of the face of object  70  ( FIG. 7   a ), there is a need to obtain the {X,Y,Z} coordinates that correspond to all of the {Row,Column} pairs of all of the real color edges.  
         [0237]     In order to facilitate the understanding of how the latter requirement is fulfilled, the method of obtaining how {X,Y,Z} coordinates of real color edge ‘G/R’  73  are obtained by utilizing the two calibration ‘G/R’ color edges that are the closest (i.e.,  71  and  72 ) to ‘G/R’ color edge  73  it will now be described. Line  74  denotes the arbitrary Row (see also  FIG. 7   b ) that was selected for demonstrating the calculations. In this example, Row=240. Point ‘A’ (in  FIG. 7   c ) refers to the point on GR having Row value equals to 240 and column value equals to Col_F. The ‘GR’ in the first expression indicates that the calculation is related to the G/R color edge. The ‘F’ refers to the fact that the image of the color pattern was grabbed at the first calibration stop. Considering the fact that point {Row,Col_F} lies on a plane Z=Z F , it is possible to map this point using the following equations: 
 
 X   A   =F 1(Row, Col   —   F ); 
 
 Y   A   =F 2(Row, Col   —   F ); 
 
 Z   A   =Z   F ; 
 
         [0238]     Point ‘B’ (in  FIG. 7   c ) refers to the point on GR having Row value equals to 240 and column value equals to Col_L. The ‘L’ in the latter expression refers to the fact that the image of the color pattern was grabbed at the last calibration stop. Considering the fact that point {Row,Col_L} lies on a plane Z=Z L , it is possible to map this point using the following equations: 
 
 X   B   =F 3(Row, Col   —   L ); 
 
 Y   B   =F 4(Row, Col   —   L ); 
 
Z A =Z L ; 
 
         [0239]     Relationships F1, F2, F3 and F4, are known at this stage, and their parameters (coefficients) are stored as the first calibration data set.  
         [0240]     Computation Procedure  
         [0241]     Point ‘C’ refers to a point of ‘G/R’ color edge lying on the object whose face is to be modeled. Point ‘C’ has Row and Column values {Row, Col_C}. Finding absolute {X, Y, Z} coordinates of point ‘C’ can be accomplished by, e.g., performing linear interpolation, as follows: 
 
 X=A   11   +A   12   *Col;  
 
 Y=A   21   +A   22   *Col ; and 
 
         [0242]     Z=A 31 +A 32 *Col; wherein the coefficients {A} are to be found as a solution of the following three interpolation pairs of linear equations: 
 
 X   A   =A   11   +A   12   *Col   —   F;  
 
 X   B   =A   11   +A   12   *Col   —   L ; and 
 
 Y   A   =A   21   +A   22   *Col   —   F,  
 
Y B   =A   21   +A   22   *Col   —   L ; and 
 
 Z   F   =A   31   +A   32   *Col   —   F;  
 
 Z   L   =A   31   +A   32   *Col   —   L;  
 
         [0243]     Accordingly, the {X,Y,Z} coordinates of point ‘C’ are found using the coefficients {A}, as follows: 
 
 X   C   =A   11   +A   12   *Col   —   C;  
 
 Y   C   =A   21   +A   22   *Col   —   C;  
 
 Z   C   =A   31   +A   32   *Col   —   C;  
 
         [0244]     Coordinates {X C , Y C , Z C } represent some point on the surface of the object whose 3D features are to be modeled, and the above described calculations are to be repeated for all of the Row values, such as Row  240 , of the real ‘G/R’ color edge. After obtaining the 3D representation of the real ‘G/R’ color edge, the calculations are to be repeated for the other unique color edges, and, if required (such as when wishing to improve the resolution), for non-unique color edges.  
         [0245]     In case color attribute is to be added, values {Row, Col_C} may be utilized for obtaining true color of a corresponding pixel of a 2D image of the object while illuminated by white light, and assigning the obtained true color to a corresponding point belonging to the 3D model.  
         [0246]      FIG. 8  shows an exemplary complex image, according to an embodiment of the present invention. A unique colored pattern was projected onto a face of a plaster face mimicking a human&#39;s face (see, for example,  FIG. 7   b ), and the complex image, which includes the color pattern superimposed on the plaster face, was grabbed by an image grabbing means, such as camera  12 . The colored strips of the pattern shown in  FIG. 8  are inclined by approximately α=45°, with respect to the lines of the nose and mouth of the object, for allowing better accuracy to be obtained. Depending on the shape characteristics of an object, more than one color pattern could be utilized for enhancing accuracy of the resulting 3D model, each of each including strips that are inclined by a different angle. For example, a first color pattern could be utilized, for which α=0°, like the color pattern shown in  FIG. 7   b , and a second color pattern could be utilized, for which α=45°, like the color pattern shown in  FIG. 8 .  
         [0247]     The result of the calculations is a set of 3D points that represent the shape of the object. This set could be utilized for modeling the object&#39;s shape, and the model could be utilized for manipulating corresponding 3D points to obtain essentially any desired representation of the object. For example, the model could be utilized to rotate the object from a first chosen position to a second chosen position. In addition, the model could be utilized to obtain an illusion of motion of the object, etc.  
         [0248]     Described above calibration procedure and 3D coordinates calculation procedure are exemplary, so that any mathematically correct calibration procedure may be used and any other correct 3D coordinates calibration procedure may be used.  
         [0249]     Specifically, in another embodiment of the current invention any other standard triangulation procedure or epipolar method may be used in order to obtain 3D points of the object lightened by structured light in the spirit of the current invention.  
         [0250]     Additionally, described calibration method may be used with any other structured light patterns without departing from the spirit of the invention or exceeding the scope of the claims.  
         [0251]     Specifically, described calibration method may be used without changes for single line pattern whereas light line is moved over the white surface of the calibration object by other means.  
         [0252]     Additionally, described method of calculation of the 3D coordinates may be used with any other 3D scanner without departing from the spirit of the invention or exceeding the scope of the claims.  
         [0253]     Specifically, described calibration method may be used without changes for single line pattern whereas light line is moved over the surface of the object by other means.  
         [0254]     In the method claims that follow, alphanumeric characters and Roman numerals used to designate claim steps are provided for convenience only and do not imply any particular order of performing the steps.  
         [0255]     Finally, it should be noted that the word “comprising” as used throughout the appended claims is to be interpreted to mean “including but not limited to”.  
         [0256]     While some embodiments of the invention have been described by way of illustration, it will be apparent that the invention can be carried into practice with many modifications, variations and adaptations, and with the use of numerous equivalents or alternative solutions that are within the scope of persons skilled in the art, without departing from the spirit of the invention or exceeding the scope of the claims.