Typhoon is a motion estimator primarily aimed at (turbulent) fluid flows.
This algorithm extracts the apparent motion within a given image pair, and returns a 2D vector field representing this motion. It uses a dense optical flow approach, and relies on a multiscale wavelet representation of the estimated motion.
The figure below shows an example of motion estimation. Top figures are two consecutive frames from a video sequence of a rotating vortex that is visualized with smoke. Bottom is a vector plot of the motion field estimated by Typhoon from the pair of frames. The first frame is shown in the background for reference, and the vector field has been subsampled by a factor of 10 in both dimensions.
Note: this web app features an experimental demo version, with limited functionalities. In particular the following aspects are not supported here:
For extended information please refer to http://www.pierrederian.net/typhoon.html
A demo is available by simply typing
demo in the Parameters field. It features synthetic particle imagery (PIV) data.
User-specified files, if any, are ignored. At the end, the two input image files are available ("run010050000.tif", ""run010050010.tif"") as well as the estimated and ground-truth motions ("UV.inr", "UVtruth.inr").
The corresponding set of parameters (see below) would be
run010050000.tif run010050010.tif 3 3 1 1e-2.
The user should provide two image files using the Upload or URL fields, for instance "a.jpg" and "b.jpg". Most image formats are handled, more specifically all formats supported by Imagemagick.
Note: without the GPU-acceleration, the estimation can take some time with large images. For rapid results, it is highly recommended that no image dimension should be greater than 512 pixels.
The expected 6 parameters take the form
img1 img2 scales_decomposed scales_estimated regul_code alpha_value which correspond to:
An example would be
"a.jpg" "b.jpg" 8 6 -1 0 for an estimation featuring 6 motion scales estimated out of 8, and no regularization. See "More on parameters" below for detailed information.
The estimated motion is written as an INR file "UV.inr". It is given in pixel units, in the usual image reference: origin top-left, x positive towards the right, y positive towards the bottom. Basic functions are provided to open these .inr files in Python and Matlab.
These parameters are positive integers. Let scales_decomposed=D ≥ 0. It corresponds to a "subdivision" of the input images in square blocks of size 2^D (padding the images with 0 if necessary). Then, within each blocks, D wavelet scales are considered. The more scales, the better the algorithm can handle large displacements.
Now, regarding scales_estimated: it corresponds to the number of scales actually estimated with respect to the number of scales considered. Let scales_estimated=E ≥ 0, then 0 ≤ E ≤ D. E=0 means that only the very coarsest scale is estimated (faster, but coarse vector fields), while E=D means a full estimation (longer, but finer vector fields). In practice, it is often possible to get good results with E=D-1 or E=D-2. See Dérian et al. for more information on the wavelet-based optical flow.
The regul_code corresponds to the available regularization schemes. These can be:
At first, the most useful are probably (-1) and (1). Note that with (-1), no regularization, scales_estimated=E ≤ D-1 in order to close the estimation problem. See Kadri et al. for more details on the regularization schemes.
The alpha_value balances the respective influence of the regularization term and the image data model. The larger alpha_value, the more regularization. Typical starting values range around 0.001. Note that alpha_value is ignored when regul_code=-1.
Wavelet-based optical flow for two-component wind field estimation from single aerosol lidar data
Dérian, P.; Mauzey, C. F. & Mayor, S. D.
Journal of Atmospheric and Oceanic Technology , Vol. 32 , pp. 1759-1778 , 2015
Wavelets and Optical Flow Motion Estimation
Dérian, P.; Héas, P.; Herzet, C. & Mémin, E.
Numerical Mathematics: Theory, Method and Applications , Vol. 6 , pp. 116-137 , 2013
Divergence-free Wavelets and High Order Regularization
Kadri Harouna, S.; Dérian, P.; Héas, P. & Mémin, E.
International Journal of Computer Vision , Vol. 103 , pp. 80-99 , 2013
Wavelets and Fluid Motion Estimation
PhD thesis, MATISSE, Université Rennes 1 , 2012
In input :
In output :
24/06/2016 : Version 1.0, fixed demo mode
This app id is : 129
This curl command will create a job, and return your job url, and also the average execution timefiles and/or dataset are optionnal, think to remove them if not wanted
curl -H 'Authorization: Token token=<your_private_token>' -X POST -F job[webapp_id]=129 -F job[param]="" -F job[queue]=standard -F email@example.com -F firstname.lastname@example.org -F job[file_url]=<my_file_url> -F job[dataset]=<my_dataset_name> https://allgo.inria.fr/api/v1/jobs
Then, check your job to get the url files with :
curl -H 'Authorization: Token token=<your_private_token>' -X GET https://allgo.inria.fr/api/v1/jobs/<job_id>