From: Eduardo L. A. <mai...@gm...> - 2007-07-26 14:38:37
|
Hi everyone, i'm trying to use vxl to solve a minimization problem using vxl. However I found myself a bit lost when I started to model the f function needed to pass to Levenberg-Marquardt. Let me explain it in a bette way, what I'm trying to do is to minimize the reprojection error of 3D points once I established a 2D-3D correspondence, I mean: r_t =3D sum || m_i - R(P, M_i) ||^2 where the m_i are 2D points and the function R is a function that project= s the M_i points using the matrix P. What I would like to do is to improve my estimation of matrix P once I know m_i and M_i. How can I do that using VXL= ? I'm assuming everything I need to do to use VXL Levenberg-marquardt implementation is to define a structure that provides an overloading of the f function. My first approach for my problem was to fill the y vector with the result of the application of the function i'm trying to minimize, I mean: void f(vnl_vector<double> const& x, vnl_vector<double>& y){ // I construct a matrix P using the vector x for(int i =3D 0; i < m_i.size(); i++){ y[2*i] =3D (m_i - R(P, M_i))[0]; y[2*i + 1] =3D (m_i - R(P, M_i))[1]; } } As you can see, what I'm trying to minimize here is the values of my matri= x P, but I'm not pretty sure my approach is correct. I would really appreciat= e if you can give me a hand on it, some book or paper, anything would be fine= . Thank you. -- Eduardo Louren=E7o Apolin=E1rio Federal University of Pernambuco, Brazil Multimedia and Virtual Reality Research Group |