×

Methods for registration of three-dimensional frames to create three-dimensional virtual models of objects

  • US 7,027,642 B2
  • Filed: 04/13/2001
  • Issued: 04/11/2006
  • Est. Priority Date: 04/28/2000
  • Status: Expired due to Term
First Claim
Patent Images

1. A method of constructing a virtual three-dimensional model of an object from a scanner, a data processing system, and at least one machine-readable memory accessible to said data processing system, comprising the steps of:

  • (a) scanning the object with the scanner and thereby obtaining at least two two-dimensional images of the object, wherein during scanning the scanner and object are moved relative to each other resulting in each image being taken from a different position relative to the surface of the object;

    (b) processing said data representing said set of images with said data processing system so as to convert each of said two-dimensional images into data representing a frame and thereby generate a set of frames corresponding to said images, said set of frames comprising a cloud of individual points, each point in each frame expressed as a location in a three-dimensional X, Y, and Z coordinate system;

    (c) storing data representing said set of frames in said memory; and

    (d) further processing said data representing said set of frames with said data processing system so as to register said frames relative to each other using a frame to frame registration process to thereby produce a three-dimensional virtual model of the object substantially consistent with all of said frames;

    said frame to frame registration process comprising the steps of;

    (i) performing an initialization step comprising the sub-steps of;

    (A) selecting one of the frames from said set of frames as the first frame;

    (B) ordering said set of frames in a sequence of frames Framei for i=1 to N for further processing, wherein Frame1 is the first frame;

    (C) setting a quality index for evaluating the quality of the overall registration of one frame to another frame;

    (D) setting the frame subscript value i=2; and

    (E) selecting Framei−

    1
    and Framei for registering Framei to Framei−

    1
    ;

    (ii) transforming the Z coordinate of every point in Framei, thereby bringing Framei closer to Framei−

    1
    , comprising the sub-steps of;

    (A) calculating for Framei−

    1
    ;

    (1) the sum of all Z coordinates Zsum i−

    1
    =sum of the Z coordinate of every point in Framei−

    1
    ; and

    (2) the median Z coordinate Zmedian i−

    1
    =Zsum i−

    1
    divided by the number of points in Framei−

    1
    ;

    (B) calculating for Framei;

    (1) the sum of all Z coordinates Zsum i=sum of the Z coordinate of every point in Framei; and

    (2) the median Z coordinate Zmedian i=Zsum i divided by the number of points in Framei; and

    (C) calculating Δ

    Z=Zmedian i

    Zmedian i−

    1
    ;

    subtracting Δ

    Z from the Z coordinate of every point in Framei, thereby transforming the Z coordinate of every point in Framei, and setting Framei=Framei having the transformed Z coordinates.(iii) calculating the translation matrix for Framei comprising the sub-steps of;

    (A) calculating a minimum distance vector from every point in Framei to the surface of Framei−

    1
    , thereby creating a set of minimum distance vectors for Framei;

    (B) eliminating from said set of minimum distance vectors for Framei each of said set of minimum distance vector for Framei that satisfies one or more exclusion criteria from a set of exclusion criteria, thereby creating a remaining set of minimum distance vectors for Framei, and marking each of the points corresponding to the remaining set of minimum distance vectors for Framei as an overlapping point, wherein said overlapping points define the area of overlap between Framei−

    1
    and Framei;

    (C) calculating a vector sum of minimum distance vectors for Framei by summing all minimum distance vectors corresponding to said overlapping points in Framei; and

    (D) calculating a median minimal distance vector (t)i for Framei by dividing the vector sum of minimum distance vectors for Framei with the number of vectors corresponding to said overlapping points in Framei thereby the median minimal distance vector (t)i for Framei forming the translation matrix [T](t)i;

    (iv) calculating the rotation transformation matrix for Framei comprising the sub-steps of;

    A creating a copy of Framei, and designating said copy of Framei Framei*;

    (B) subtracting the median minimal distance vector (t)i from every point in Framei*;

    (C) getting a position vector for every overlapping point in Framei* extending from the origin of the coordinate system for Framei* to the overlapping point in Framei*;

    (D) calculating a vector sum of all position vectors corresponding to all of the overlapping points in Framei*;

    (E) calculating the center of mass for Framei* by dividing the vector sum of all position vectors corresponding to all of the overlapping points in Framei* with the number of said position vectors corresponding to all of said overlapping points in Framei*;

    (F) calculating a cross-vector for every overlapping point in Framei* by performing a cross-product operation of (1) the position vector for the overlapping point in Framei* substracted by the vector of the center of mass for Framei* and (2) said minimum distance vector for the overlapping point in Framei*;

    (G) calculating a sum of all the cross-vectors corresponding to all of the overlapping points in Framei*;

    (H) applying a weighting factor to the sum of all of said cross-vectors for Framei* thereby producing a weighted sum of all the cross-vectors for Framei*; and

    (I) scaling the weighted sum of all the cross-vectors for Framei* with an empirical acceleration factor f thereby creating a scaled weighted sum of all the cross-vectors for Framei* thereby said scaled weighted sum of all the cross-vectors for Framei* forming the rotation transformation matrix [T](R)i,(v) applying the transformation to Framei and evaluating the results comprising the sub-steps of;

    (A) computing the transformation matrix for Framei [T]i=+[T](t)i+[T](R)i; and

    applying the transformation matrix [T]i to every point in Framei thereby producing a transformed Framei wherein [T](t)i produces the transalation of the X, Y and Z coordinates of every point in Framei and [T](R)i produces the magnitude and direction of rotation of Framei;

    (B) calculating the closeness factor of the transformed Framei and Framei−

    1
    and comparing said closeness factor with the quality index;

    (C) if the closeness factor>

    the quality index, then returning to step (iii);

    otherwise proceeding to the next step;

    (D) if i<

    N, setting i=i+1 and returning to step (ii) until FrameN is registered.

View all claims
  • 6 Assignments
Timeline View
Assignment View
    ×
    ×