-
Notifications
You must be signed in to change notification settings - Fork 32
Description
I've built a two view system for camera resectioning.
The equations are all like that:
equation = line' * intrinsic * R * point_at_infinity = 0
Where:
- variables:
- intrinsic: shared, they are the same for each view
- R: each view has it's R matrix with it's own variables
- parameters:
- point_at_infinity: real 3d point in Homogeneous coordinates that is the same between them
- line: different for each view because it's the projection of a real contour but seen from two different views
Solving works perfectly in absence of noise and I get the right perfect solution. The moment I introduce noise (on the projection) I get zero solutions.
I believe it is because intrinsic, R, and point_at_infinity are still treated equally but as the line from view 1 and line from view 2 are deformed in different ways there is no more a set of variables that exactly solves the system. There is no real pair of projection that achieves those two views.
Which trackers or endgame options do I need to set to accept solutions that do not equal zero but are within certain boundaries?
I tried differentiating the above system and solving a minimization problem like in some of the guides but the solving times changes from 10 minutes to months even.
I can provide code or systems dumps if needed but I'm not using macro to generate variables and instead using Variable function directly as I have a dynamic number of parameters depending on the exact configuration so it's not straightforward.
Thanks