From: Dave K. <da...@al...> - 2004-12-09 20:12:22
|
Hi there, I'm attempting to use the MVL portion of the VXL libraries to estimate camera pose from a sequence of images from a monocular camera system. I'm essentially attempting to use optical flow between two images to compute the fundamental matrix and estimate translation and rotation. I have approximately 200 motion vectors from a given pair of images. I've got my code structured in much the same way as the compute_F_matrix.cxx example code. I create my lists of correlated points. points1 contains the initial positions of each block and points2 contains the initial positions + an offset. I then do the following: FMatrixComputeRANSAC computor( true, 2 ); FMatrix fm = computor.compute(points1, points2); fm.set_rank2_using_svd(); PMatrix P; fm.compute_P_matrix(P); PMatrixDecompCR decomp(P); I've tried several of the methods provided to compute the fundamental matrix. None seem to provide reasonable results. As I understand it, decomp.Po is essentially [R t]. So I look at t (the 4th column vector in decomp.Po), and this is often a rediculously large vector. R appears to be a reasonable rotation matrix, but doesn't seem to agree with the input data points. Do you have any suggestions? Any sample code? Am I understanding this correctly? I've read through Zhang's papers on the fundamental matrix, and so I understand the general principle, but am unable to get reasonable results. Any help you could provide would be GREATLY appreciated! Thanks, Dave Kroetsch, University of Waterloo, Ontario, Canada |