multiframe patch fit flow

Performance on the yosemite benchmark

No sky mean err=1.47, stdev=2.76
With sky mean err=4.93, stdev=10.13

Benchmark Details

The Barron/Fleet/Beauchemin error is the angle in degrees between ground truth and computed vectors; each vector is (u,v,1) normalized. This gives a measure of both directional and distance error in a single number.

The best reported dense flow score in the Barrons et.al. survey (mid 90s) was avgerr=11.26+std.dev=16.41 for a modified Horn-Schunck. A more competitive result is that from M.Black's code: with sky avgerr=8.6,std.dev=9.3

The sky in the Yosemite frames is an evolving layered Perlin-noise thing without a clear ground truth. The first version of the ground truth file gave it a velocity of 1,0; a later version gave it velocity 2,0. Most benchmarks report the score excluding the sky (omit all vectors 2,0 or 1,0, use the -gmask in FlowCalcError), others include the sky -- be aware of this when comparing scores.

Files

flowbench.pl
	script to run the benchmark.

	This can be modified to run on other sequences, however:
	NOTE that pyramid code is disabled, so images with large translation
	or higher-than-video resolution will not work.  Also the
	parameters are tuned for this benchmark; the flow calculated 
	for non-synthetic images may be smoother than desirable.

yos.jar	 
	zip file containing y.0002.ppm-y.0014.ppm
	These are the input frames, 316x252, black&white

yos_newcorrect.9.Gflow
	Ground truth flow file for frame 9.
	In this file the sky has velocity 2,0; 
	in earlier versions of this file the sky had velocity 1,0.
	(See "The Sky" below).

	This file is the same as new_correct_yos.Z (unix compressed)
	from ftp.csd.uwo.ca (anonymous ftp)
	/pub/vision/TESTDATA/CORRECT_FLOWS/new_correct_yos.Z

FlowCalcError.java
	source for the Barrons/Beauchemin error calculation
gr.jar,gnu.jar,zlib.jar
	libraries needed to compile FlowCalcError.

jnl.jar
	library needed by FlowPatch

FlowUtil.java
	library code that converts between the flow format written
	by FlowPatch and the benchmark format.