JeVoisBase  1.3
JeVois Smart Embedded Machine Vision Toolkit Base Modules
Share this page:
FastOpticalFlow Class Reference

Fast optical flow computation using dense inverse search. More...

#include <jevoisbase/Components/OpticalFlow/FastOpticalFlow.H>

Inheritance diagram for FastOpticalFlow:
Collaboration diagram for FastOpticalFlow:

Public Member Functions

 FastOpticalFlow (std::string const &instance)
 Constructor. More...
 
virtual ~FastOpticalFlow ()
 Destructor. More...
 
void process (cv::Mat const &src, cv::Mat &dst)
 Process a greyscale image and return flow in a pre-allocated greyscale image of same with and 2x height. More...
 
- Public Member Functions inherited from jevois::Component
 Component (std::string const &instance)
 
virtual ~Component ()
 
std::shared_ptr< ComponentgetSubComponent (std::string const &instance) const
 
std::shared_ptr< Comp > addSubComponent (std::string const &instance, Args &&...args)
 
void removeSubComponent (std::shared_ptr< Comp > &component)
 
void removeSubComponent (std::string const &instance, bool warnIfNotFound=true)
 
std::shared_ptr< Comp > getSubComponent (std::string const &instance) const
 
bool isTopLevel () const
 
bool initialized () const
 
std::string const & className () const
 
std::string const & instanceName () const
 
std::vector< std::string > setParamVal (std::string const &paramdescriptor, T const &val)
 
void setParamValUnique (std::string const &paramdescriptor, T const &val)
 
std::vector< std::pair< std::string, T > > getParamVal (std::string const &paramdescriptor) const
 
getParamValUnique (std::string const &paramdescriptor) const
 
std::vector< std::string > setParamString (std::string const &paramdescriptor, std::string const &val)
 
void setParamStringUnique (std::string const &paramdescriptor, std::string const &val)
 
std::vector< std::pair< std::string, std::string > > getParamString (std::string const &paramdescriptor) const
 
std::string getParamStringUnique (std::string const &paramdescriptor) const
 
void freezeParam (std::string const &paramdescriptor)
 
void unFreezeParam (std::string const &paramdescriptor)
 
void freezeAllParams ()
 
void unFreezeAllParams ()
 
std::string descriptor () const
 
void setParamsFromFile (std::string const &filename)
 
std::istream & setParamsFromStream (std::istream &is, std::string const &absfile)
 
void setPath (std::string const &path)
 
std::string absolutePath (std::string const &path="")
 
std::shared_ptr< Comp > addSubComponent (std::string const &instance, Args &&...args)
 
void removeSubComponent (std::shared_ptr< Comp > &component)
 
void removeSubComponent (std::string const &instance, bool warnIfNotFound=true)
 
std::shared_ptr< Comp > getSubComponent (std::string const &instance) const
 
bool isTopLevel () const
 
bool initialized () const
 
std::string const & className () const
 
std::string const & instanceName () const
 
std::vector< std::string > setParamVal (std::string const &paramdescriptor, T const &val)
 
void setParamValUnique (std::string const &paramdescriptor, T const &val)
 
std::vector< std::pair< std::string, T > > getParamVal (std::string const &paramdescriptor) const
 
getParamValUnique (std::string const &paramdescriptor) const
 
std::vector< std::string > setParamString (std::string const &paramdescriptor, std::string const &val)
 
void setParamStringUnique (std::string const &paramdescriptor, std::string const &val)
 
std::vector< std::pair< std::string, std::string > > getParamString (std::string const &paramdescriptor) const
 
std::string getParamStringUnique (std::string const &paramdescriptor) const
 
void freezeParam (std::string const &paramdescriptor)
 
void unFreezeParam (std::string const &paramdescriptor)
 
void freezeAllParams ()
 
void unFreezeAllParams ()
 
std::string descriptor () const
 
void setParamsFromFile (std::string const &filename)
 
std::istream & setParamsFromStream (std::istream &is, std::string const &absfile)
 
void setPath (std::string const &path)
 
std::string absolutePath (std::string const &path="")
 
- Public Member Functions inherited from jevois::ParameterRegistry
virtual ~ParameterRegistry ()
 

Protected Member Functions

void onParamChange (fastopticalflow::opoint const &param, int const &val)
 
void onParamChange (fastopticalflow::thetasf const &param, int const &val)
 
void onParamChange (fastopticalflow::thetaps const &param, int const &val)
 
void onParamChange (fastopticalflow::thetaov const &param, float const &val)
 
- Protected Member Functions inherited from jevois::Component
virtual void preInit ()
 
virtual void postInit ()
 
virtual void preUninit ()
 
virtual void postUninit ()
 
virtual void preInit ()
 
virtual void postInit ()
 
virtual void preUninit ()
 
virtual void postUninit ()
 
- Protected Member Functions inherited from jevois::ParameterRegistry
void addParameter (ParameterBase *const param)
 
void removeParameter (ParameterBase *const param)
 
void callbackInitCall ()
 

Protected Attributes

jevois::Profiler itsProfiler
 
std::mutex itsMtx
 
bool itsNuke
 
const float ** img_bo_pyr
 
const float ** img_bo_dx_pyr
 
const float ** img_bo_dy_pyr
 
cv::Mat * img_bo_fmat_pyr
 
cv::Mat * img_bo_dx_fmat_pyr
 
cv::Mat * img_bo_dy_fmat_pyr
 
cv::Mat img_bo_mat
 
cv::Mat img_bo_fmat
 
int itsHeight
 
int itsWidth
 
int itsPyrDepth
 

Related Functions

(Note that these are not member functions.)

 JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK (opoint, int,"Algorithm operating point", 1, jevois::Range< int >(1, 4), ParamCateg)
 Parameter. More...
 
 JEVOIS_DECLARE_PARAMETER (factor, float,"Factor to use when converting float velocities to byte", 25.0F, ParamCateg)
 Parameter. More...
 
 JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK (thetasf, int,"Finest scale in the pyramid, or -1 for auto",-1, ParamCateg)
 Parameter. More...
 
 JEVOIS_DECLARE_PARAMETER (thetait, int,"Number of gradient descent iterations, or -1 for auto", 5, ParamCateg)
 Parameter. More...
 
 JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK (thetaps, int,"Patch size in pixels, or -1 for auto",-1, ParamCateg)
 Parameter. More...
 
 JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK (thetaov, float,"Patch overlap on each scale, or -1 for auto", 0.1F, ParamCateg)
 Parameter. More...
 
 JEVOIS_DECLARE_PARAMETER (usevref, bool,"Use variational refinement when true", false, ParamCateg)
 Parameter. More...
 

Detailed Description

Fast optical flow computation using dense inverse search.

This algorithm computes what moved between two images (optical flow). It is based on the paper "Fast Optical Flow using Dense Inverse Search" by Till Kroeger, Radu Timofte, Dengxin Dai and Luc Van Gool, Proc ECCV, 2016. Also see here: http://www.vision.ee.ethz.ch/~kroegert/OFlow/

Definition at line 61 of file FastOpticalFlow.H.

Constructor & Destructor Documentation

FastOpticalFlow::FastOpticalFlow ( std::string const &  instance)

Constructor.

Definition at line 29 of file FastOpticalFlow.C.

FastOpticalFlow::~FastOpticalFlow ( )
virtual

Member Function Documentation

void FastOpticalFlow::onParamChange ( fastopticalflow::opoint const &  param,
int const &  val 
)
protected
void FastOpticalFlow::onParamChange ( fastopticalflow::thetasf const &  param,
int const &  val 
)
protected
void FastOpticalFlow::onParamChange ( fastopticalflow::thetaps const &  param,
int const &  val 
)
protected
void FastOpticalFlow::onParamChange ( fastopticalflow::thetaov const &  param,
float const &  val 
)
protected
void FastOpticalFlow::process ( cv::Mat const &  src,
cv::Mat &  dst 
)

Process a greyscale image and return flow in a pre-allocated greyscale image of same with and 2x height.

The results are the concatenation of 2 images: vx on top of vy, both converted to byte.

Definition at line 154 of file FastOpticalFlow.C.

References jevois::Profiler::checkpoint(), img_bo_dx_fmat_pyr, img_bo_dx_pyr, img_bo_dy_fmat_pyr, img_bo_dy_pyr, img_bo_fmat, img_bo_fmat_pyr, img_bo_mat, img_bo_pyr, itsHeight, itsMtx, itsNuke, itsProfiler, itsPyrDepth, itsWidth, LFATAL, jevois::Profiler::start(), and jevois::Profiler::stop().

Friends And Related Function Documentation

JEVOIS_DECLARE_PARAMETER ( factor  ,
float  ,
"Factor to use when converting float velocities to byte ,
25.  0F,
ParamCateg   
)
related

Parameter.

JEVOIS_DECLARE_PARAMETER ( thetait  ,
int  ,
"Number of gradient descent  iterations,
or-1 for auto"  ,
,
ParamCateg   
)
related

Parameter.

JEVOIS_DECLARE_PARAMETER ( usevref  ,
bool  ,
"Use variational refinement when true"  ,
false  ,
ParamCateg   
)
related

Parameter.

JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK ( opoint  ,
int  ,
"Algorithm operating point"  ,
,
jevois::Range< int >  1, 4,
ParamCateg   
)
related

Parameter.

JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK ( thetasf  ,
int  ,
"Finest scale in the  pyramid,
or-1 for auto"  ,
1,
ParamCateg   
)
related

Parameter.

JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK ( thetaps  ,
int  ,
"Patch size in  pixels,
or-1 for auto"  ,
1,
ParamCateg   
)
related

Parameter.

JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK ( thetaov  ,
float  ,
"Patch overlap on each  scale,
or-1 for auto"  ,
0.  1F,
ParamCateg   
)
related

Parameter.

Member Data Documentation

cv::Mat* FastOpticalFlow::img_bo_dx_fmat_pyr
protected

Definition at line 94 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

const float** FastOpticalFlow::img_bo_dx_pyr
protected

Definition at line 90 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

cv::Mat* FastOpticalFlow::img_bo_dy_fmat_pyr
protected

Definition at line 95 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

const float** FastOpticalFlow::img_bo_dy_pyr
protected

Definition at line 91 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

cv::Mat FastOpticalFlow::img_bo_fmat
protected

Definition at line 98 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

cv::Mat* FastOpticalFlow::img_bo_fmat_pyr
protected

Definition at line 93 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

cv::Mat FastOpticalFlow::img_bo_mat
protected

Definition at line 97 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

const float** FastOpticalFlow::img_bo_pyr
protected

Definition at line 89 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

int FastOpticalFlow::itsHeight
protected

Definition at line 100 of file FastOpticalFlow.H.

Referenced by process().

std::mutex FastOpticalFlow::itsMtx
protected

Definition at line 85 of file FastOpticalFlow.H.

Referenced by process().

bool FastOpticalFlow::itsNuke
protected

Definition at line 87 of file FastOpticalFlow.H.

Referenced by process().

jevois::Profiler FastOpticalFlow::itsProfiler
protected

Definition at line 84 of file FastOpticalFlow.H.

Referenced by process().

int FastOpticalFlow::itsPyrDepth
protected

Definition at line 101 of file FastOpticalFlow.H.

Referenced by process(), and ~FastOpticalFlow().

int FastOpticalFlow::itsWidth
protected

Definition at line 100 of file FastOpticalFlow.H.

Referenced by process().


The documentation for this class was generated from the following files: