Tracker keyframe selection code mistake #50919
Labels
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/libmv#50919
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
All, dosent matter.
Blender Version
Broken: all
Short description of error
keyframe selection can't work as expected.
Exact steps for others to reproduce the error
according the paper KEY FRAME EXTRACTION AND BROWSER-BASED VISUALIZATION FOR 3D RECONSTRUCTION FROM VIDEO STREAMS page 8
SymetricEpipolarDistance (libmv/multiview/fundamental.cc) function does return PELC (PointToEpipolarLineCost) page 8, equation 2.5 instead of what it should, page 8, equation 2.4
so keyframe selection cant work as expected.
The positive point is that we allready have PELC criterion computed witch shoud fix TODO(sergey): STEP 4: PELC criterion arround line 265
should be something like that :
Changed status to: 'Open'
Added subscriber: @StephenLeger
Added subscribers: @Sergey, @mont29
@Sergey might understand this? ;)
Equation 2.5 is derived from 2.4 in the paper you've referenced to by substituting
d(x, Fx)
with a proper distance to the epipolar line. The distance itself is used as a cost in your paper.Now, if i'm not missing something, your suggested implementation of
SymmetricEpipolarDistance()
uses euclidean distance ford(x, Fx)
, which makes it effectively the same asSymmetricGeometricDistance
.There might be some confusion about naming of PELC here, but mr. Zisserman calls it (see - [x], - [x]). The book - [x] is what is referenced as HZ in the
multiview/
.It is also interesting to see an exact case which demonstrates that your suggested line distance gives better keyframes.
The issue with lack of PELC criteria in the current code is not caused by the lack of PELC calculation, but because it requires some experimentally acquired weights. See Eq. 5 from [3].
P.S. While it is really interesting to investigate this, i don't see how this is a bug.
Different names used in papers for same function lead to confusion.
Facing issues with reconstruction process quality under automatic selection make me think there is a bug somewhere. Feel free to label this as "enhancement".
SymmetricEpipolarDistance use euclidian distance to epipolar d(x, Fx)
where SymmetricGeometricDistance use euclidian distance between mesured and apparent position d(x, x^)
Anyway, as far as i can understand, seem current implementation only use GRIC as criterion to select frames, where weighted mix of GRIC and PELC may significantely enhance result - [x] page 27 3.6 comparison page 45 4.2
Finally having some time to check on this task!
@StephenLeger, Thanks for the paper, it even provided weights! Did you try implementing KFWS and see if it improves quality for your scene?
Also, would be really helpful to have the scene which we can use to validate quality of changes.
Hi Sergey,
Looks like the paper is no more the same, was originally something from bf itself if i recall correctly, with a blender's implementation sample.
Will try to find original paper with source code on older laptop ;)
While i do rougthly understand the math behind the code, i'm by far not good enough on code side to manage required deps compilation.