21.02
|
Interface to run the second stage of LKTracker, where the motion vectors of the given points are computed. More...
#include <CLLKTrackerKernel.h>
Public Member Functions | |
CLLKTrackerStage1Kernel () | |
Default constructor. More... | |
CLLKTrackerStage1Kernel (const CLLKTrackerStage1Kernel &)=delete | |
Prevent instances of this class from being copied (As this class contains pointers) More... | |
CLLKTrackerStage1Kernel & | operator= (const CLLKTrackerStage1Kernel &)=delete |
Prevent instances of this class from being copied (As this class contains pointers) More... | |
CLLKTrackerStage1Kernel (CLLKTrackerStage1Kernel &&)=default | |
Allow instances of this class to be moved. More... | |
CLLKTrackerStage1Kernel & | operator= (CLLKTrackerStage1Kernel &&)=default |
Allow instances of this class to be moved. More... | |
void | configure (const ICLTensor *new_input, ICLLKInternalKeypointArray *new_points_internal, ICLCoefficientTableArray *coeff_table, ICLOldValArray *old_ival, Termination termination, float epsilon, size_t num_iterations, size_t window_dimension, size_t level) |
Initialise the kernel input and output. More... | |
void | configure (const CLCompileContext &compile_context, const ICLTensor *new_input, ICLLKInternalKeypointArray *new_points_internal, ICLCoefficientTableArray *coeff_table, ICLOldValArray *old_ival, Termination termination, float epsilon, size_t num_iterations, size_t window_dimension, size_t level) |
Initialise the kernel input and output. More... | |
void | run (const Window &window, cl::CommandQueue &queue) override |
Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue. More... | |
Public Member Functions inherited from ICLKernel | |
ICLKernel () | |
Constructor. More... | |
cl::Kernel & | kernel () |
Returns a reference to the OpenCL kernel of this object. More... | |
template<typename T > | |
void | add_1D_array_argument (unsigned int &idx, const ICLArray< T > *array, const Strides &strides, unsigned int num_dimensions, const Window &window) |
Add the passed 1D array's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_1D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 1D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_1D_tensor_argument_if (bool cond, unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 1D tensor's parameters to the object's kernel's arguments starting from the index idx if the condition is true. More... | |
void | add_2D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 2D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_2D_tensor_argument_if (bool cond, unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 2D tensor's parameters to the object's kernel's arguments starting from the index idx if the condition is true. More... | |
void | add_3D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 3D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
void | add_4D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
Add the passed 4D tensor's parameters to the object's kernel's arguments starting from the index idx. More... | |
virtual void | run_op (ITensorPack &tensors, const Window &window, cl::CommandQueue &queue) |
Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue. More... | |
template<typename T > | |
void | add_argument (unsigned int &idx, T value) |
Add the passed parameters to the object's kernel's arguments starting from the index idx. More... | |
void | set_lws_hint (const cl::NDRange &lws_hint) |
Set the Local-Workgroup-Size hint. More... | |
cl::NDRange | lws_hint () const |
Return the Local-Workgroup-Size hint. More... | |
void | set_wbsm_hint (const cl_int &wbsm_hint) |
Set the workgroup batch size modifier hint. More... | |
cl_int | wbsm_hint () const |
Return the workgroup batch size modifier hint. More... | |
const std::string & | config_id () const |
Get the configuration ID. More... | |
void | set_target (GPUTarget target) |
Set the targeted GPU architecture. More... | |
void | set_target (cl::Device &device) |
Set the targeted GPU architecture according to the CL device. More... | |
GPUTarget | get_target () const |
Get the targeted GPU architecture. More... | |
size_t | get_max_workgroup_size () |
Get the maximum workgroup size for the device the CLKernelLibrary uses. More... | |
template<unsigned int dimension_size> | |
void | add_tensor_argument (unsigned &idx, const ICLTensor *tensor, const Window &window) |
template<typename T , unsigned int dimension_size> | |
void | add_array_argument (unsigned &idx, const ICLArray< T > *array, const Strides &strides, unsigned int num_dimensions, const Window &window) |
Add the passed array's parameters to the object's kernel's arguments starting from the index idx. More... | |
Public Member Functions inherited from IKernel | |
IKernel () | |
Constructor. More... | |
virtual | ~IKernel ()=default |
Destructor. More... | |
virtual bool | is_parallelisable () const |
Indicates whether or not the kernel is parallelisable. More... | |
virtual BorderSize | border_size () const |
The size of the border for that kernel. More... | |
const Window & | window () const |
The maximum window the kernel can be executed on. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ICLKernel | |
static constexpr unsigned int | num_arguments_per_1D_array () |
Returns the number of arguments enqueued per 1D array object. More... | |
static constexpr unsigned int | num_arguments_per_1D_tensor () |
Returns the number of arguments enqueued per 1D tensor object. More... | |
static constexpr unsigned int | num_arguments_per_2D_tensor () |
Returns the number of arguments enqueued per 2D tensor object. More... | |
static constexpr unsigned int | num_arguments_per_3D_tensor () |
Returns the number of arguments enqueued per 3D tensor object. More... | |
static constexpr unsigned int | num_arguments_per_4D_tensor () |
Returns the number of arguments enqueued per 4D tensor object. More... | |
static cl::NDRange | gws_from_window (const Window &window) |
Get the global work size given an execution window. More... | |
Interface to run the second stage of LKTracker, where the motion vectors of the given points are computed.
Definition at line 156 of file CLLKTrackerKernel.h.
Default constructor.
Definition at line 227 of file CLLKTrackerKernel.cpp.
|
delete |
Prevent instances of this class from being copied (As this class contains pointers)
|
default |
Allow instances of this class to be moved.
void configure | ( | const ICLTensor * | new_input, |
ICLLKInternalKeypointArray * | new_points_internal, | ||
ICLCoefficientTableArray * | coeff_table, | ||
ICLOldValArray * | old_ival, | ||
Termination | termination, | ||
float | epsilon, | ||
size_t | num_iterations, | ||
size_t | window_dimension, | ||
size_t | level | ||
) |
Initialise the kernel input and output.
[in] | new_input | Pointer to the input new tensor. Data types supported: U8 |
[in,out] | new_points_internal | Pointer to the array of CLLKInternalKeypoint for new points |
[in] | coeff_table | Pointer to the array holding the Spatial Gradient coefficients |
[in] | old_ival | Pointer to the array holding internal values |
[in] | termination | The criteria to terminate the search of each keypoint. |
[in] | epsilon | The error for terminating the algorithm |
[in] | num_iterations | The maximum number of iterations before terminating the algorithm |
[in] | window_dimension | The size of the window on which to perform the algorithm |
[in] | level | The pyramid level |
Definition at line 232 of file CLLKTrackerKernel.cpp.
References CLKernelLibrary::get().
void configure | ( | const CLCompileContext & | compile_context, |
const ICLTensor * | new_input, | ||
ICLLKInternalKeypointArray * | new_points_internal, | ||
ICLCoefficientTableArray * | coeff_table, | ||
ICLOldValArray * | old_ival, | ||
Termination | termination, | ||
float | epsilon, | ||
size_t | num_iterations, | ||
size_t | window_dimension, | ||
size_t | level | ||
) |
Initialise the kernel input and output.
[in] | compile_context | The compile context to be used. |
[in] | new_input | Pointer to the input new tensor. Data types supported: U8 |
[in,out] | new_points_internal | Pointer to the array of CLLKInternalKeypoint for new points |
[in] | coeff_table | Pointer to the array holding the Spatial Gradient coefficients |
[in] | old_ival | Pointer to the array holding internal values |
[in] | termination | The criteria to terminate the search of each keypoint. |
[in] | epsilon | The error for terminating the algorithm |
[in] | num_iterations | The maximum number of iterations before terminating the algorithm |
[in] | window_dimension | The size of the window on which to perform the algorithm |
[in] | level | The pyramid level |
Definition at line 238 of file CLLKTrackerKernel.cpp.
References ARM_COMPUTE_ERROR_ON, ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN, ICLArray< T >::cl_buffer(), arm_compute::create_kernel(), Window::DimX, Window::DimY, ValidRegion::end(), arm_compute::quantization::epsilon, ITensor::info(), ICLKernel::num_arguments_per_2D_tensor(), IArray< T >::num_values(), Window::set(), ValidRegion::start(), arm_compute::TERM_CRITERIA_BOTH, arm_compute::TERM_CRITERIA_EPSILON, arm_compute::U8, arm_compute::update_window_and_padding(), arm_compute::test::validation::valid_region, ITensorInfo::valid_region(), and IKernel::window().
|
delete |
Prevent instances of this class from being copied (As this class contains pointers)
|
default |
Allow instances of this class to be moved.
|
overridevirtual |
Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue.
[in] | window | Region on which to execute the kernel. (Must be a valid region of the window returned by window()). |
[in,out] | queue | Command queue on which to enqueue the kernel. |
Reimplemented from ICLKernel.
Definition at line 304 of file CLLKTrackerKernel.cpp.
References ICLKernel::add_2D_tensor_argument(), ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW, ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL, arm_compute::enqueue(), ICLKernel::lws_hint(), and IKernel::window().