Add a planar tracking implementation to libmv
authorKeir Mierle <mierle@gmail.com>
Sun, 13 May 2012 23:08:56 +0000 (23:08 +0000)
committerKeir Mierle <mierle@gmail.com>
Sun, 13 May 2012 23:08:56 +0000 (23:08 +0000)
commitbac340e6740ea4f5f1ac41a47b6a540d726c4ac6
tree43e171dfc1bea11758842a411ed56ee6440d5969
parentcf6450256db6eaf0ea37d4c64f648d22d8954099
Add a planar tracking implementation to libmv

This adds a new planar tracking implementation to libmv. The
tracker is based on Ceres[1], the new nonlinear minimizer that
myself and Sameer released from Google as open source. Since
the motion model is more involved, the interface is
different than the RegionTracker interface used previously
in Blender.

The start of a C API in libmv-capi.{cpp,h} is also included.

The ESM tracker, also known as the KLT tracker in the UI, is
temporarily changed to use the new Ceres-based planar
tracker in translation-only mode. Currently it is a bit
slower than ESM and also doesn't have all the bells and
whistles implemented. Those will come soon. Longer term,
both trackers will remain since Ceres is unlikely to be as
fast as ESM for pure translation solving, due to its
generality.

The next step is to implement a new tracking UI. The current
UI assumes a translational motion model; the new one must
support arbitrary perspective transforms of the pattern
regions.

[1] http://code.google.com/p/ceres-solver
extern/libmv/CMakeLists.txt
extern/libmv/libmv-capi.cpp
extern/libmv/libmv-capi.h
extern/libmv/libmv/multiview/homography.cc [new file with mode: 0644]
extern/libmv/libmv/multiview/homography.h [new file with mode: 0644]
extern/libmv/libmv/multiview/homography_parameterization.h [new file with mode: 0644]
extern/libmv/libmv/tracking/esm_region_tracker.cc
extern/libmv/libmv/tracking/track_region.cc [new file with mode: 0644]
extern/libmv/libmv/tracking/track_region.h [new file with mode: 0644]