Raw File
Tip revision: edce3fbb7ce8b72fd316f77f13ff3f1d75091a52 authored by Software Heritage on 19 February 2016, 00:00:00 UTC
ipol: Deposit 1282 in collection ipol
Tip revision: edce3fb
Robust Discontinuity Preserving Optical Flow Methods


This is a program for optical flow estimation based in the paper: 

Cite: Monzon, N.; Salgado, A.; Sanchez, J., "Regularization Strategies for Discontinuity-Preserving 
Optical Flow Methods," in Image Processing, IEEE Transactions on , vol.PP, no.12, pp.1-1
doi: 10.1109/TIP.2016.2526903


In this work, we present an implementation of discontinuity-preserving strategies in TV-L 1
optical flow methods. These are based on exponential functions that mitigate the regularization
at image edges, which usually provide precise flow boundaries. Nevertheless, if the smoothing
is not well controlled, it may produce instabilities in the computed motion fields. We present
an algorithm that allows three regularization strategies: The first uses an exponential function
together with a TV process; the second combines this strategy with a small constant that
ensures a minimum isotropic smoothing; the third is a fully automatic approach that adapts
the diffusion depending on the histogram of the image gradients. The last two alternatives
are aimed at reducing the effect of instabilities. In the experiments, we observe that the pure
exponential function is highly unstable while the other strategies preserve accurate motion
contours for a large range of parameters.

The program is part of an IPOL publication:

This program is written by 
Nelson Monzón López <> CTIM, Universidad de Las Palmas de Gran Canaria
Agustín Salgado de la Nuez <> CTIM, Universidad de Las Palmas de Gran Canaria
Javier Sánchez Pérez <> CTIM, Universidad de Las Palmas de Gran Canaria 

Version 1, released on February 19, 2016

This software is distributed under the terms of the BSD license (see file license.txt)


Required environment: Any unix-like system with a standard compilation
environment (make and C and C++ compilers)

Required libraries: libpng, lipjpeg, libtiff

Compilation instructions: run "make" to produce an executable "main" 


The program takes two input images, produce an optical flow as output, and
take some parameters.  The meaning of the parameters is thoroughly discussed on
the accompanying IPOL article.


	./main I1 I2


	./main I1 I2 out_file processors method_type alpha gamma lambda nscales zoom_factor TOL inner_iter outer_iter verbose


	I1: first input image
	I2: second input image
	out_file: name of the output optical flow file
	processors: number of threads
	method_type: Integer that selects the regularization strategy     
	alpha: weight of the smoothing term
	gamma: weight of the gradient constancy term
	lambda: It determines the influence of the exponential function in the regularization.
	nscales: desired number of scales
	zoom_factor: downsampling factor 
	TOL: stopping criterion threshold for the numerical scheme
	inner_iter: number of inner iterations in the numerical scheme
	outer_iter: number of outer iterations in the numerical scheme
	verbose: 0 or 1, for quiet or verbose behaviour

Parameters can be ommited starting from the end of the list, and they will be
assigned reasonable default values.  Examples:

	./main I1.png I2.png flow.flo
	./main I1.png I2.png flow.flo 1 2 145 15 0.5 100 0.75 0.0001 1 38 1

If a parameter is given an invalid value it will take the default value. 
If the output filename is omitted, the flow will be saved on a file named "flow.flo".
back to top