Announcement

Collapse
No announcement yet.

DLT responses

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • DLT responses

    Dear Biomch-l readers,

    Last week I have asked some questions concerning DLT. I thank all of you who tried to help me. I am submiting all responses I have received, although the first
    two are the most representive.
    But first here is my original question:

    I am new biomech postgraduate student. At the present time I am involved
    in human motion analysis by means of 3-D reconstruction with DLT.
    I am trying to write computer program of my own (although I am aware of contributed packages for Matlab and C on various sites e.g.http://www.kin.ucalgary.ca/isb/software/kinemat/readme1.htm). Currently I am stuck with the issue of camera calibration. According to the basic equations:

    u=(L1*X + L2*Y + L3*Z + L4) / (L9*X + L10*Y+ L11*Z + 1)

    v=(L5*X + L6*Y + L7*Z + L8) / (L9*X + L10*Y+ L11*Z + 1)

    one needs six or more calibration points in order to calculate 11 DLT parameters.
    Since we then deal with overdetermined system of equations many authors are therefore mentioning and employing linear least-square techniques to compute DLT
    parameters (e.g. Hatze, H. (1988) High-precision three-dimensional photogrammetric calibration and object space reconstruction using a modified DLT-approach.
    J. Biomechanics Vol 21. No. 7. pp. 533-538).
    However, I have not seen anywhere the exact way how the above mentioned technique is preformed. The essence of linear least-square technique is in the form of

    F(a,b)=sum( (y(i)-(a*x(i)+b))^2 ) i=1,...n
    y(i),x(i) coordinates of various points
    a,b parameters of line y=a*x+b.
    Afterwards one takes partial derivate of F(a,b) with a and b in order to compute the parameters of line. One gets two equations with two unknowns and the rest is easy. What I do not understand is how it is applied in case of computing DLT parameters.
    Do I have to write the entire thing in the form of:


    F(a,b,L1,L2,...L11)=sum( (v(i)-(a*u(i)+b))^2 )

    i=1,...n calibration points
    u(i)=(L1*X(i) + L2*Y(i) + L3*Z(i) + L4) / (L9*X(i) + L10*Y(i)+ L11*Z(i) + 1)
    v(i)=(L5*X(i) + L6*Y(i) + L7*Z(i) + L8) / (L9*X(i) + L10*Y(i)+ L11*Z(i) + 1)?
    And then take the partial derivations of function F(a,b,L1,....L11) with a,b,L1,L2,....L11 in order to find parameters?
    Or maybe I am supposed to go as follows:

    F(L1,L2,...L11)=
    sum( (u(i)-(L1*X(i) + L2*Y(i) + L3*Z(i) + L4) / (L9*X(i) + L10*Y(i)+ L11*Z(i) + 1))^2+
    + (v(i)-(L5*X(i) + L6*Y(i) + L7*Z(i) + L8) / (L9*X(i) + L10*Y(i)+ L11*Z(i) + 1))^2 )
    and now also preform partial derivations of the L1,L2,..L11 unknowns?
    I have tried both ways, but it did not seem to be right direction for all kinds of reasons. Also, once I acquire all parameters and try to gain the space coordinates of the unknown point out of two or more cameras picture I am again dealing with more equations than I need. Do I act in a similar fashion as above?
    What is the matematical procedure when is MDLT (Modified DLT) concerned,
    rather than conventional DLT?
    I would be glad to post on the List all answers I recieve, once I collected them.

    Thanks in advance for any help/comments.

    RESPONSES:
    ************************************************** *****************************
    Dear Tomislav,

    The best way to deal with the problem of solving linear equations with
    fewer unknowns than equations
    (over-determined system) is to use matrix manipulation . You can use
    numerical methods to do that.
    For example to deal with a system of three equations with two unknowns that
    can be represented by:

    [A](subscript: 3x2 ){X}(subscript:
    2x1 )= {B}(subscript: 3x1)

    (where {X}(subscript: 2x1) is the unknown
    matrix)

    You multiply both sides of the equation by the transpose of [A] to get:

    [A](superscript: T)(subscript: 2x3) [A]
    (subscript: 3x2 ){X}(subscript: 2x1 )= [A](superscript: T)(subscript: 2x3)
    {B}(subscript: 3x1 )

    you will end up with a system of two equations with two unknowns that
    should be easy to solve:

    [A'](subscript: 2x2 ){X}
    (subscript: 2x1 )= {B'}(subscript: 2x1)

    This can be applied to get the calibration coefficients for each camera and
    also to get the 3D coordinates of
    the targets from two or more cameras. Let me know if you have any
    questions. Good luck.

    Ali M. Elhagediab, PhD
    Research Scientist
    Aerotek Corp. (in contract with General Motors Corp.)
    email: aelhaged@notes.gmr.com
    ************************************************** *****************************

    Dear Tomislav:

    I was in a similar situation some time ago when I was a Master's student in
    Seoul, Korea. I've read a lot of things since then and finally could figure
    out what DLT is all about. I even have written a motion analysis package
    based on DLT after that.

    For camera calibration with n (>6) control points, the system will be
    over-determined. Then the linear system looks like this:

    X B = Y

    where, X = known 2n x 11 matrix, B = transpose of (L1 .... L11), and Y =
    known 2n x 1 matrix made of u and v.

    Multiply both sides with the transpose of X, X', to make the matrix in front
    of B square. This stage is called normal equation:

    (X' X) B = X' Y

    Then Multiply both sides with the inverse of (X' X) or (X' X)^-1:

    (X' X)^-1 (X' X) B = (X' X)^-1 (X' Y)

    Then, the left side of the above equation is the same to the least-square
    estimate of B:

    B = (X' X)^-1 (X' Y)

    With only manipulation of the matrices, you will be able to do the least
    square estimation.

    This procedure is in fact exactly the same to the multiple linear regression
    in statistics. Consult any statistics textbook for this procedure: multiple
    linear regression using matrix approach.

    You may use exactly the same approach to compute the 3-D coordinates of the
    unknown points with more than 2 cameras.

    In reality, if you include the additional parameters to correct the optical
    distortion and the de-centering distortion due to the optical system, the
    situation is much more complex than this. I am in the middle of putting
    these things on the web, and I'll let you know when it is done.

    Hope this to be helpful.

    Young-Hoo

    --------------------------------------------------------------
    Young-Hoo Kwon, Ph.D.
    Assistant Professor
    Biomechanics Lab, PL 202
    Ball State University
    Muncie, IN 47306
    U.S.A.

    Phone: +1 (765) 285-5126 (O), +1 (765) 284-4880 (H)
    Internet: ykwon@bsu-cs.bsu.edu
    Homepage: http://www.bsu.edu/cast/biomch/kwon/
    --------------------------------------------------------------
    ************************************************** *******************************
    (L9*X + L10*Y+ L11*Z + 1)*u = (L1*X + L2*Y + L3*Z + L4)

    This is a LINEAR SYSTEM in the L1--L11 unknown.
    The coefficients are Xu,Yu, Zyu X Y Z and 1.
    The term on the right side is u.

    N. Alberto Borghese

    ************************************************** *******************************
    I used the methods as presented by J.S. Walton (1978)
    Close range cine-photogrammetry: another approach to motion analysis.
    Pages 69-97 in Terauds, J.S., editor, Sciences in Biomechanics
    Cinematography, International Congress of Sports Sciences. Del Mar,
    California: Academic Publishers.
    ************************************************** **********************************

    > F(a,b)=sum( (y(i)-(a*x(i)+b))^2 ) i=1,...n
    > y(i),x(i) coordinates of various points
    > a,b parameters of line y=a*x+b.
    > Afterwards one takes partial derivate of F(a,b) with a and b in order to compute the parameters of line. One gets two equations with two unknowns and the rest is easy. What I do not understand is how it is applied in case of computing DLT parameters.
    > Do I have to write the entire thing in the form of:
    >
    > F(a,b,L1,L2,...L11)=sum( (v(i)-(a*u(i)+b))^2 )
    >
    > i=1,...n calibration points
    > u(i)=(L1*X(i) + L2*Y(i) + L3*Z(i) + L4) / (L9*X(i) + L10*Y(i)+ L11*Z(i) + 1)
    > v(i)=(L5*X(i) + L6*Y(i) + L7*Z(i) + L8) / (L9*X(i) + L10*Y(i)+ L11*Z(i) + 1)?

    Take the two DLT equations, and multiply left and right sides by
    (L9*X(i) + L10*Y(i)+ L11*Z(i) + 1). Then you have linear equations.
    Define F as:

    F = sum( (leftside - rightside)^2 )

    (sum over all equations, two equations (u,v) for each calibration point).

    Fortunately, Matlab has a builtin linear least squares solver (say 'help slash' for
    help). You simply collect the coefficients in a matrix, and use the
    backslash operator. This was used in the kinemat functions.

    > What is the matematical procedure when is MDLT (Modified DLT) concerned,
    > rather than conventional DLT?
    > I would be glad to post on the List all answers I recieve, once I collected them.

    The MDLT has only 10 calibration parameters (not 11), since it assumes that the
    u and v axis in image space are perpendicular. This is true for film and video.
    With MDLT, you need at least 5 calibration points, but more is recommended
    for reliability. Reference:

    Chen, L., Armstrong, C.W., Raftopoulos, D.D., (1994) An investigation on the
    accuracy of three-dimensional space reconstruction using the direct linear
    transformation technique. J. Biomech. 27:493-500.
    [Good paper on performance of the DLT using different sets of calibration
    points. It is shown that significant improvement can be gained by
    increasing the number of calibration points to 16. More than that
    does not help much. Some discussion of nonlinearity and how to
    correct for that.]

    -- Ton van den Bogert
    Department of Biomedical Engineering
    Cleveland Clinic Foundation
    ************************************************** *****************************

    I use the singular value decomposition (SVD) method to perform linear least
    squares. the book Numerical Recipes in C provides C code to perform these
    routines. There is also a Numerical Recipes in Pascal, Fortran, etc....

    Once you solve the linear least squares procedure to determine the 11 DLT
    parameters, you need to rewrite your equations to obtain XYZ in terms of
    U,V, and the eleven parameters. In this way you can again use linear least
    squares to find the optimum XYZ positions to fit the digitized UV coordinates.
    ************************************************** *****************************
    Dear Tomislav:

    As I told you earlier, here is the URL of my DLT page:

    http://www.bsu.edu/cast/biomch/kwon/kwon3d/

    It has some information on the DLT method and optical distortion-related
    stuffs.

    Sincerely,

    Young-Hoo

    --------------------------------------------------------------
    Young-Hoo Kwon, Ph.D.
    Assistant Professor
    Biomechanics Lab, PL 202
    Ball State University
    Muncie, IN 47306
    U.S.A.

    Phone: +1 (765) 285-5126 (O), +1 (765) 284-4880 (H)
    Internet: ykwon@bsu-cs.bsu.edu
    Homepage: http://www.bsu.edu/cast/biomch/kwon/
    --------------------------------------------------------------
    ************************************************** *****************************



    Tomislav Pribanic
    Faculty of Electrical Engineering and Computing
    University of Zagreb
    10 000 Zagreb
    CROATIA
    E-mail:Tomislav.pribanic@zesoi.fer.hr

Working...
X