Dataset for testing the optimal triangulation method

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Dataset for testing the optimal triangulation method

Jostein Austvik Jacobsen
I'm trying to implement the optimal triangulation method (Algorithm 12.1
from "Multiple View
Geometry<http://books.google.no/books?id=si3R3Pfa98QC&printsec=frontcover&dq=Multiple+View+Geometry+in+Computer+Vision>"),
but I'm having some trouble getting the results I want.

I haven't found many examples of fundamental matrices and on on the web, so
I'm wondering if someone has got a set of a fundamental matrix, two camera
matrices (one of which is the 3x4 identity matrix), and a few points in 2D
and 3D for me to test with.

In my implementation, I get to the last point "(xi) The 3-space point X may
then be obtained by the homogeneous method of 12.2". This, however, requires
two camera matrices. As suggested in the same book, I use P1 = [1 0 0 0; 0 1
0 0; 0 0 1 0] and P2 = [e2x * F | e2] where F is the fundamental matrix, e2
is the left epipole from e2' * F = 0 and e2x is the skew-symmetric matrix
form of e2. Using cvSVD to find e2 from F, and the input images left01.jpg
and right01.jpg from the repositories (in /opencv/samples/c/*) I obtain the
following e2 and P2:

F: ( 3 x 3 )
    0.00000041    -0.00003567    0.00938759
    0.00003563    -0.00000333    -0.03538222
    -0.01032410    0.03462822    1.00000000

e2: ( 1 x 3 )
    0.95907376
    0.28315455
    0.00101525

P2: ( 4 x 3 )
    -0.00292335    0.00980514    0.28319047    0.95907376
    0.00990157    -0.03321106    -0.95906423    0.28315455
    0.00003406    0.00000691    -0.03659230    0.00101525

I believe this camera matrix P2 is the problem. Shouldn't P2(0,0) and
P2(1,1) be closer to 1.0 ?

Of course, if anyone has a finished implementation which does this already
(which they'd like to share), I'd be happy to use that instead :)

-Jostein


[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|

Re: Dataset for testing the optimal triangulation method

Jostein Austvik Jacobsen
I have the fundamental matrix F =
    0.0000158837883646    -0.0000152334359882    -0.0002570398792159
    0.0000189358888747    0.0000186621982721    -0.0041565797291696
    -0.0049716099165380    -0.0040264814160764    1.0000000000000000

I want camera matrices on the canonical form P1 = [ I | 0 ], P2 = [ E*F | e
], where E is the skew-symmetric cross-product form of e and e is the left
epipole defined by e*F = 0. This is better explained on p.256 in "Multiple
View Geometry".

Could someone calculate e and P2 for me so I can see how they are supposed
to look like?

I get e = [ 0.11755536    0.99305763    0.00415794 ]

and P2 =
    -0.00493717    -0.00399861    0.99307491    0.11755536
    0.00058451    0.00047327    -0.11755643    0.99305763
    -0.00001355    0.00001732    -0.00023337    0.00415794

but P2 doesn't seem right...

-Jostein

2008/12/27 Jostein Austvik Jacobsen <[hidden email]>

> I'm trying to implement the optimal triangulation method (Algorithm 12.1
> from "Multiple View Geometry<http://books.google.no/books?id=si3R3Pfa98QC&printsec=frontcover&dq=Multiple+View+Geometry+in+Computer+Vision>"),
> but I'm having some trouble getting the results I want.
>
> I haven't found many examples of fundamental matrices and on on the web, so
> I'm wondering if someone has got a set of a fundamental matrix, two camera
> matrices (one of which is the 3x4 identity matrix), and a few points in 2D
> and 3D for me to test with.
>
> In my implementation, I get to the last point "(xi) The 3-space point X may
> then be obtained by the homogeneous method of 12.2". This, however, requires
> two camera matrices. As suggested in the same book, I use P1 = [1 0 0 0; 0 1
> 0 0; 0 0 1 0] and P2 = [e2x * F | e2] where F is the fundamental matrix, e2
> is the left epipole from e2' * F = 0 and e2x is the skew-symmetric matrix
> form of e2. Using cvSVD to find e2 from F, and the input images left01.jpg
> and right01.jpg from the repositories (in /opencv/samples/c/*) I obtain the
> following e2 and P2:
>
> F: ( 3 x 3 )
>     0.00000041    -0.00003567    0.00938759
>     0.00003563    -0.00000333    -0.03538222
>     -0.01032410    0.03462822    1.00000000
>
> e2: ( 1 x 3 )
>     0.95907376
>     0.28315455
>     0.00101525
>
> P2: ( 4 x 3 )
>     -0.00292335    0.00980514    0.28319047    0.95907376
>     0.00990157    -0.03321106    -0.95906423    0.28315455
>     0.00003406    0.00000691    -0.03659230    0.00101525
>
> I believe this camera matrix P2 is the problem. Shouldn't P2(0,0) and
> P2(1,1) be closer to 1.0 ?
>
> Of course, if anyone has a finished implementation which does this already
> (which they'd like to share), I'd be happy to use that instead :)
>
> -Jostein
>


[Non-text portions of this message have been removed]