Skip to content

Accept solutions that do not exactly solve the system in case of noise #616

@EnricoBarbieri1997

Description

@EnricoBarbieri1997

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions