Improve the KLT tracking behaviour and UI
authorKeir Mierle <mierle@gmail.com>
Sun, 30 Oct 2011 12:42:56 +0000 (12:42 +0000)
committerKeir Mierle <mierle@gmail.com>
Sun, 30 Oct 2011 12:42:56 +0000 (12:42 +0000)
commitdb86c6bcf810fc7cd2e311634c3caf42bd8ade1e
tree2a01197754932a5057fd5e1350d4ac67e7e8c17e
parente4cbb8dd94e59d305ec97c0e5512ea87f2c65def
Improve the KLT tracking behaviour and UI

- Remove the overly-conservative use of libmv's re-track tracker. The re-track
  tracker would take a normal tracker such as TRKLT or KLT or pyramid KLT, and
  track from frame 1 to 2, then back from the position found in 2 back to 1.
  Then, when the reverse-track doesn't match the original track with high
  precision, the track is considered "failed". This is a good approach for
  fully automatic reconstruction, but is too conservative for supervised
  tracking.

  The retrack-tracker will return when fully automatic tracking is added.

- Always solve for (dx, dy) in the TRKLT loop even if the linear system is
  ill-conditioned. The client (Blender in this case) can still use the solved
  position, even though it is less reliable.

- Expose the pyramid level setting to the tracking UI when in KLT tracking
  mode. While it was tempting to hide this detail from the user, in reality it
  does more harm than good, since the way tracking fails depends on the pyramid
  level. For now, exposing the pyramid details is a good compromise.

- Move the settings for the tracking algorithm, including search window,
  tracking algorithm, pyramid levels, etc, into the track object instead of a
  global movie clip object.
14 files changed:
extern/libmv/libmv-capi.cpp
extern/libmv/libmv-capi.h
extern/libmv/libmv/tracking/pyramid_region_tracker.cc
extern/libmv/libmv/tracking/trklt_region_tracker.cc
extern/libmv/libmv/tracking/trklt_region_tracker.h
release/scripts/startup/bl_ui/space_clip.py
source/blender/blenkernel/BKE_tracking.h
source/blender/blenkernel/intern/movieclip.c
source/blender/blenkernel/intern/tracking.c
source/blender/editors/space_clip/clip_draw.c
source/blender/makesdna/DNA_space_types.h
source/blender/makesdna/DNA_tracking_types.h
source/blender/makesrna/intern/rna_space.c
source/blender/makesrna/intern/rna_tracking.c