aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAbe Mbise <abe.mbise@arm.com>2017-12-19 13:00:58 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:46:07 +0000
commit25a340f84cdecb2c15fde251e59cc1af48648031 (patch)
treefc64ba0ed6d814bd91bd88124ba52596dc99d8e1 /src
parent40df1e9b770393a77afc2ebb94ff7e8f6f8696ed (diff)
downloadComputeLibrary-25a340f84cdecb2c15fde251e59cc1af48648031.tar.gz
COMPMID-578: Implement FAST corners for CL/NEON
Change-Id: Ifa74e2bf05546de9a49aa185e22fba50438d8ad6 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/113946 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/CL/cl_kernels/fast_corners.cl5
-rw-r--r--src/core/CL/kernels/CLFastCornersKernel.cpp4
-rw-r--r--src/core/NEON/kernels/NEFillArrayKernel.cpp5
-rw-r--r--src/runtime/CL/functions/CLFastCorners.cpp8
4 files changed, 14 insertions, 8 deletions
diff --git a/src/core/CL/cl_kernels/fast_corners.cl b/src/core/CL/cl_kernels/fast_corners.cl
index 3e1929c637..76b35b931b 100644
--- a/src/core/CL/cl_kernels/fast_corners.cl
+++ b/src/core/CL/cl_kernels/fast_corners.cl
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -254,6 +254,9 @@ __kernel void copy_to_keypoint(
out[id].x = get_global_id(0) + offset;
out[id].y = get_global_id(1) + offset;
out[id].tracking_status = 1;
+ out[id].scale = 0.f;
+ out[id].orientation = 0.f;
+ out[id].error = 0.f;
}
}
}
diff --git a/src/core/CL/kernels/CLFastCornersKernel.cpp b/src/core/CL/kernels/CLFastCornersKernel.cpp
index 1d4d776730..616e41b5fc 100644
--- a/src/core/CL/kernels/CLFastCornersKernel.cpp
+++ b/src/core/CL/kernels/CLFastCornersKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -138,7 +138,7 @@ void CLCopyToArrayKernel::configure(const ICLImage *input, bool update_number, I
// Set static kernel arguments
unsigned int idx = num_arguments_per_2D_tensor(); // Skip the input and output parameters
- _kernel.setArg<unsigned int>(idx++, corners->max_num_values());
+ _kernel.setArg<unsigned int>(idx++, _corners->max_num_values());
_kernel.setArg<cl_uint>(idx++, offset);
_kernel.setArg(idx++, *_num_buffer);
_kernel.setArg(idx++, _corners->cl_buffer());
diff --git a/src/core/NEON/kernels/NEFillArrayKernel.cpp b/src/core/NEON/kernels/NEFillArrayKernel.cpp
index 5a2e1a0aa4..c6c6c452b7 100644
--- a/src/core/NEON/kernels/NEFillArrayKernel.cpp
+++ b/src/core/NEON/kernels/NEFillArrayKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -81,6 +81,9 @@ void NEFillArrayKernel::run(const Window &window, const ThreadInfo &info)
p.y = id.y();
p.strength = value;
p.tracking_status = 1;
+ p.scale = 0.f;
+ p.orientation = 0.f;
+ p.error = 0.f;
if(!_output->push_back(p))
{
diff --git a/src/runtime/CL/functions/CLFastCorners.cpp b/src/runtime/CL/functions/CLFastCorners.cpp
index 7a0dd09fbe..d6cda91cea 100644
--- a/src/runtime/CL/functions/CLFastCorners.cpp
+++ b/src/runtime/CL/functions/CLFastCorners.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -52,7 +52,7 @@ CLFastCorners::CLFastCorners(std::shared_ptr<IMemoryManager> memory_manager)
{
}
-void CLFastCorners::configure(const ICLImage *input, float threshold, bool nonmax_suppression, CLKeyPointArray *const corners,
+void CLFastCorners::configure(const ICLImage *input, float threshold, bool nonmax_suppression, ICLKeyPointArray *corners,
unsigned int *num_corners, BorderMode border_mode, uint8_t constant_border_value)
{
ARM_COMPUTE_ERROR_ON_TENSOR_NOT_2D(input);
@@ -76,7 +76,7 @@ void CLFastCorners::configure(const ICLImage *input, float threshold, bool nonma
if(!_non_max)
{
- _copy_array_kernel.configure(&_output, update_number, corners, &_num_buffer);
+ _copy_array_kernel.configure(&_output, update_number, _corners, &_num_buffer);
}
else
{
@@ -84,7 +84,7 @@ void CLFastCorners::configure(const ICLImage *input, float threshold, bool nonma
_memory_group.manage(&_suppr);
_suppr_func.configure(&_output, &_suppr, border_mode);
- _copy_array_kernel.configure(&_suppr, update_number, corners, &_num_buffer);
+ _copy_array_kernel.configure(&_suppr, update_number, _corners, &_num_buffer);
_suppr.allocator()->allocate();
}