Abstract:
A method for calibrating a non-contact range sensor comprises the steps of employing the range sensor to obtain a range image of an object to be inspected. The range image is registered with a reference image of the object thereby providing registered data. The reference image may be derived through computer assisted drawing (CAD) data. Normal deviations between the registered data and the reference image are computed. Noise is filtered from the normal deviations. A plurality of bias vectors and a covariance matrix are estimated based on the normal deviations, stored in memory as a lookup table comprising geometric correction factors for the sensor. Images of the object subsequently obtained by the sensor are compensated in accordance with the lookup table.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims priority to Provisional Application No. 60/094,444 entitled “Precise and Accurate Surface Reconstruction Using a Priori Model and Dense Data”, filed on Jul. 28, 1998, and to Provisional Application No. 60/094,443, entitled, “Finding Shape Deformations in Airfoils or Generalized Cylinders,” filed on Jul. 28, 1998, both of which are incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates generally to digital image processing techniques and in particular to a method and apparatus for calibrating a non-contact range sensor of the type used to obtain digital images of objects for the purpose of inspecting the objects for defects. 
     Currently, automated inspection is performed on manufactured objects such as airfoils (e.g. turbine blades) by obtaining digital data and images of the objects to detect defects in them. Airfoils, including forged blades such as those used for aircraft engines, are inspected for deformation parameters such as platform orientation, contour cross-section, bow and twist along stacking axis, thickness and chord length at given cross-sections. One method of obtaining digital data representing these parameters is through coordinate measurement machines (commonly known as “CMMs”). CMM&#39;s translate and rotate a probe in contact with the surface of the object to sample points on the object&#39;s surface. 
     Another means of obtaining digital representations of these parameters is with full-field non-contact range sensors. Non-contact full-field sensors scan the external surfaces of opaque objects using laser or white light. These sensors are capable of scanning the part quickly while obtaining large quantities of data. Examples of non contact sensors include sensors that are based on laser line grating and stereo triangulation; and based on single laser line scan plus rotating the part. Another non contact sensor is based on phased-shift Moiré and white light. 
     The raw data points obtained by non-contact sensors, however, provide a very low degree of accuracy and thereby, generate noisy normal deviations that yield unacceptable precision and accuracy when the data are used to reconstruct the surface of an object in order to detect deformations and defects of the object. Because full-field sensors are relatively new, efforts to calibrate and characterize them to increase their accuracy have been few and largely unsuccessful. 
     BRIEF SUMMARY OF THE INVENTION 
     In an exemplary embodiment of the present invention, a method for calibrating a non contact range sensor comprises the steps of scanning the object to be inspected with the range sensor to obtain a range image of the object. The range image is registered with a reference image of the object to provide registered data. Normal deviations between the registered data and the reference image are computed. Noise is filtered from the normal deviations. A plurality of bias vectors and a covariance matrix are estimated and used to generate a lookup table comprising geometric correction factors. The range image of the object is compensated in accordance with the lookup table. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Referring now to the drawings wherein like elements are numbered alike in the several Figures: 
     FIG.  1 . is a flowchart of the method of the present invention, of calibrating a full-field non-contact range sensor; 
     FIG.  2 . is a perspective view of a plurality of projections of a bias vector disposed along the z-axis; 
     FIG.  3 . is a perspective view of the x, y and z components of the bias vector illustrated in FIG.  2 . 
     FIG.  4 . is a flowchart of one method of registering a range image of an object with a reference image of the object. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     For purposes of this specification, sensor calibration is defined as the process of identifying bias errors in measurements obtained by the sensor such that later-obtained measurements can be compensated for the errors. 
     Generally, according to the method of the present invention, the sensor is calibrated in a sequence of steps as follows. The sensor is employed to obtain a range image of an object to be inspected. The sensor scans the object as the object translates and rotates through its working volume. Thus, range data points are obtained. The data points are arranged in data sets, also referred to herein as a scanned image, and the data sets are registered to one or more reference data sets. Reference data comprises geometric ideal models of the object and is also referred to herein as a reference image. The scanned image and the reference image are registered to each other such that both are represented in a common coordinate system. Normal deviations are then computed from the scanned image to the registered image. Random noise, which describes precision, and bias error, which describes accuracy, are estimated from the normal deviations and stored in a lookup table. The look up table is employed for 3D geometric correction and multiple view integration of images obtained by the sensor. 
     One embodiment of the method of the invention is illustrated in FIG.  1 . Step  42  of method  40  obtains a scanned image of an object to be inspected by translating the object on a translation stage, and rotating the object on a rotation stage along a plurality of directions throughout the 3 dimensional working volume of the object. This step is accomplished using typical scanning and digital imaging systems and techniques. 
     In step  44 , a reference image comprising data points corresponding to the ideal shape of the object, and the scanned image of the actual object are registered. One method of obtaining a reference image with which to register the scanned image is to grind a planar object to achieve flatness. Alternatively, the object itself is measured using a more accurate sensor like a CMM, and the measurements stored as reference data. Alternatively, computer assisted drawing (CAD) data or other engineering or design specifications may be used to provide a reference image. 
     As illustrated in FIG. 4, one embodiment of the invention uses a Robust-Closest-Patch (RCP) algorithm in the registration process. The RCP algorithm is the subject of co-pending application Ser. No. 09/303,241, entitled “Method and Apparatus for Image Registration”, filed Apr. 30, 1999 and assigned the assignee of the present invention and hereby incorporated by reference. According to the RCP algorithm, given an initial rigid pose, each scanned image data point is matched to its nearest data point on the reference image as indicated at  62  and  64  of FIG.  4 . In other words, the RCP algorithm matches reference image data points and scanned image data points based on the current pose estimate, and then refines the pose estimate based on these matches. 
     In one embodiment of the invention, pose is solved by singular value decomposition (SVD) of a linear system in six parameters. One embodiment of the invention employs a linear and symmetric formulation of the rotation constraint using Rodrigues&#39;formula rather than quaternions or orthonormal matrices. This is a simplified method of solving for pose. In one embodiment of the invention, a typical M-estimator is employed to estimate both the rigid pose parameters and the error standard deviation to ensure robustness to gross errors in the data. 
     The 3D rigid transformation that best aligns these matches is determined at step  66  and applied in step  68  of FIG.  4 . The foregoing steps are repeated using the most recently estimated pose until convergence. Accordingly, registration step  44  of FIG. 1 solves for the translation direction and the axis of rotation by which the reference image may be represented in the scanned image coordinates. 
     In step  46  of FIG. 1, normal deviations from registered data points to data points of the scanned image are found. In one embodiment of the invention, an approximate normal distance between model data points, also referred to herein as patches, and data surface points is used, avoiding the need to estimate local surface normal and curvature from noisy data. To accomplish step  46 , one embodiment of the invention computes the raw error The raw error e ij  along the normal,{right arrow over (n)} k , for the given direction D K , at the point {right arrow over (q)} ij , according to the relationship: 
     
       
           e   ij =( {right arrow over (q)}   ij   −{right arrow over (P)}hd ij )· {right arrow over (n)}   k   (1) 
       
     
     Random noise is filtered from the normal deviations using a Gaussian or mean filter. In one embodiment of the invention the projection b ijk  of the bias vector b ij  at each point is determined by: 
     
       
           {right arrow over (b)}   ijk   =b   ij·   {right arrow over (n)}   k   (2) 
       
     
     for the mean filter described by:                B   ij     =       1          M   i                   ∑   Mi                     e   ij                 (   3   )                                
     where M i  is a small region surrounding the data point. 
     The filter described in equation 3 above is utilized to find the projection b ijk  of bias vector b ij  at each data point, as indicated in step  50 . 
     FIG. 2, illustrates a portion of the step  50  of estimating bias vectors. Bias values  56  are determined for a set of planes  58 , from the plane  59  closest to the sensor, to the plane furthest from the sensor, along the z axis. A 3D geometric correction table is built by finding the projection of the bias vectors at regularly (evenly) spaced grid points p in the 3D volume of the object. To accomplish this the projections of the bias vectors found at each point q ij  are down-sampled and interpolated. One embodiment of the invention employs Gaussian interpolation to interpolate the projections of the bias vectors. 
     Returning to FIG. 1, step  50  estimates bias vectors as a function of surface location and orientation based upon the projection of the bias vector along a plurality of normals, all projections stemming from the same grid point. The previous steps provide, for each direction D k , the normal to the planes {right arrow over (n)} k , and the projections of the bias vector, b pk , at each grid point p. 
     In one embodiment of the invention, the following system of relationships are solved for each grid point p of the 3d working volume of the object to be inspected. 
     
       
           Nb   p =νhd p  (4) 
       
     
     Where N is the k×3 matrix of the normal vectors,              N   =     [           n   1   T             ⋮             n   k   T           ]             (   5   )                                
     And wherein b p  is the bias vector to be found at this grid point, and wherein v p  is the k×1 vector of the bias projections:                V   p     =     (           b   p1             ⋮             b     p                 k             )             (   6   )                                
     wherein b p  is the bias vector to be found grid point p, and v p  is the k×1 vector of the bias projections from gridpoint p. 
     In one embodiment of the invention the system described above is solved by applying a typical singular value decomposition (SVD) algorithm when the rank of N is 3. Thus, the smooth field of bias vectors is obtained. FIG. 3 illustrates three components X, Y and Z of bias vector components in a 3D grid. 
     In FIG. 1 at step  52 , a covariance matrix is estimated. The covariance matrix provides a model of the random noise and precision of the range sensor based on data points corrected for bias as described above. Principal eigenvalues and eigenvectors of the covariance matrix are found and analyzed to simplify the noise model. To accomplish this, the variance in normal direction {right arrow over (n)} k  at the grid point p is determined by the relationship:                s     p                 k     2     =       ∑                  (       e   jk     -     b     p                 k         )         2       j               M     p                 k       -   1               (   7   )                                
     where e jk  is the error previously calculated at the point j and M pk  is the number of points taken over a small region around p. 
     In one embodiment of the invention, the relationship between S pk   2  and the covariance matrix S p  at the point p is described by: 
     
       
           n   k   T   S   p   n   k   =s   pk   2   (8) 
       
     
     wherein:                S   p     =     (           S   11           S   12           S   13               S   12           S   22           S   23               S   13           S   23           S   33           )             (   9   )                                
     Wherein n′ k  is the vector:                n   k   ′     =     (           n   kz   2               2   ×     n   kz     ×     n   ky                 2   ×     n   kz     ×     n   kz                 n   ky   2               2   ×     n   ky     ×     n   kz                 n   kz   2           )             (   10   )                                
     wherein {right arrow over (n)} k =(n kz ,n ky ,n kz ). 
     And wherein s p  is:                S   p     =     (           S   11               S   12               S   13               S   22               S   23               S   33           )             (   11   )                                
     To illustrate one technique for estimating the six coefficients of the covariance matrix S p , the equation 3 is rewritten using the vector n′ k  as follows: 
     
       
           n′   k·   s   p =s pk   2   (12) 
       
     
     s p , which contains the terms of the covariance matrix S p , is estimated by forming the k×6 matrix as follows:              T   =     (           n   1   T             ⋮             n   k   T           )             (   13   )                                
     Wherein the k×1 vector is given by:                t   p     =     (           s   p1   2             ⋮             s     p                 k     2           )             (   14   )                                
     Wherein the constraint on s is given by: 
     
       
           Ts   p   =t   p   (15) 
       
     
     In one embodiment of the invention, the foregoing is solved using a typical least squares approach. An alternative embodiment of the invention employs an SVD or pseudo-inverse approach, as long as the rank of T p  is at least 6. 
     In step  54 , the calibration obtained by the process of the invention is verified using an independent data source relating to known features of the object. For example, use of a corner artifact allows independent verification of the sensor calibration. Alternatively, sphere artifacts of different radii can be employed to reveal the effect of curvature on the 3D geometric correction and the sensor noise model. 
     One skilled in the art will appreciate that the method  40  can be used to implement on-site calibration checks and re-calibration procedures that can extend the working life of the sensor. In one embodiment of the invention, calibration checks are performed at least at 8-hour intervals, and re-calibration procedures at least every week. 
     The present invention can be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. The present invention can also be embodied in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The present invention can also be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits. 
     While preferred embodiments have been shown and described, various modifications and substitutions may be made thereto without departing from the spirit and scope of the invention. Accordingly, it is to be understood that the present invention has been described by way of illustrations and not limitation.