Rerunning tracking to get perturbed curves. Fixed bug in branch estimation causing suboptimal branches to be chosen. Added penalty to avoid branching in the middle of a child curve by penalizing large negative offsets. Added parameter to adjust only the temperature of the local prior, leaving epipolar prior unchanged. However, setting it too high causes initial tree to be far from the optimal tree, and the optimal is never found. I'd really like to get this solved, possibly using a deeper likelihood pyramid and a mixture model rather than product of experts.
Debugged "mirrored reconstruction" issue -- it turned out to be a plotting mode in Matlab set wrong. Calling axis xy
fixed it.
MAP reconstruction now appears to be working:
View 1
View 2
Compare with maximum likelihood:
View 1
View 2
If the perturbation sigma is very high, we get some drifting toward the camera
Another reconstruction with uncertainty bounds shown:
Testing kalman filter...
OK Kalman filter works:
Results are slightly different; I wonder if this is due to numerical error. Kalman filter requires more intermediate matrix operations, which could allow error to drift in. However, most operations involve smaller matrices, whose operations should be more stable.
Next up: port kalman smoother so we can reconstruct more than just the last curve.
Next Goal: project and track in 3rd view.
Later: Add/remove curves. Grow/shrink curves.
Misc: Kalman filter; deep pyramid likelihood; mixture likelihood