From 299fdd31bd8e1add3ac557a5e630de55b1b6659c Mon Sep 17 00:00:00 2001 From: Michalis Spyrou Date: Wed, 1 May 2019 13:03:59 +0100 Subject: COMPMID-2177 Fix clang warnings Change-Id: I4beacfd714ee3ed771fd174cce5d8009a2961380 Signed-off-by: Michalis Spyrou Reviewed-on: https://review.mlplatform.org/c/1065 Reviewed-by: Giuseppe Rossini Tested-by: Arm Jenkins --- src/runtime/NEON/functions/NEHOGMultiDetection.cpp | 50 +++++++++++++--------- 1 file changed, 30 insertions(+), 20 deletions(-) (limited to 'src/runtime/NEON/functions/NEHOGMultiDetection.cpp') diff --git a/src/runtime/NEON/functions/NEHOGMultiDetection.cpp b/src/runtime/NEON/functions/NEHOGMultiDetection.cpp index 6a6d04573c..26abc9d297 100644 --- a/src/runtime/NEON/functions/NEHOGMultiDetection.cpp +++ b/src/runtime/NEON/functions/NEHOGMultiDetection.cpp @@ -126,12 +126,12 @@ void NEHOGMultiDetection::configure(ITensor *input, const IMultiHOG *multi_hog, _num_block_norm_kernel = input_block_norm.size(); // Number of NEHOGBlockNormalizationKernel kernels to compute _num_hog_detect_kernel = input_hog_detect.size(); // Number of NEHOGDetector functions to compute - _orient_bin_kernel = arm_compute::support::cpp14::make_unique(_num_orient_bin_kernel); - _block_norm_kernel = arm_compute::support::cpp14::make_unique(_num_block_norm_kernel); - _hog_detect_kernel = arm_compute::support::cpp14::make_unique(_num_hog_detect_kernel); + _orient_bin_kernel.reserve(_num_orient_bin_kernel); + _block_norm_kernel.reserve(_num_block_norm_kernel); + _hog_detect_kernel.reserve(_num_hog_detect_kernel); + _hog_space.reserve(_num_orient_bin_kernel); + _hog_norm_space.reserve(_num_block_norm_kernel); _non_maxima_kernel = arm_compute::support::cpp14::make_unique(); - _hog_space = arm_compute::support::cpp14::make_unique(_num_orient_bin_kernel); - _hog_norm_space = arm_compute::support::cpp14::make_unique(_num_block_norm_kernel); // Allocate tensors for magnitude and phase TensorInfo info_mag(shape_img, Format::S16); @@ -167,13 +167,17 @@ void NEHOGMultiDetection::configure(ITensor *input, const IMultiHOG *multi_hog, // Allocate HOG space TensorInfo info_space(shape_hog_space, num_bins, DataType::F32); - _hog_space[i].allocator()->init(info_space); + auto hog_space_tensor = support::cpp14::make_unique(); + hog_space_tensor->allocator()->init(info_space); // Manage intermediate buffers - _memory_group.manage(_hog_space.get() + i); + _memory_group.manage(hog_space_tensor.get()); // Initialise orientation binning kernel - _orient_bin_kernel[i].configure(&_mag, &_phase, _hog_space.get() + i, multi_hog->model(idx_multi_hog)->info()); + auto orient_bin_kernel = support::cpp14::make_unique(); + orient_bin_kernel->configure(&_mag, &_phase, hog_space_tensor.get(), multi_hog->model(idx_multi_hog)->info()); + _orient_bin_kernel.emplace_back(std::move(orient_bin_kernel)); + _hog_space.emplace_back(std::move(hog_space_tensor)); } // Allocate intermediate tensors @@ -188,19 +192,23 @@ void NEHOGMultiDetection::configure(ITensor *input, const IMultiHOG *multi_hog, // Allocate normalized HOG space TensorInfo tensor_info(*(multi_hog->model(idx_multi_hog)->info()), width, height); - _hog_norm_space[i].allocator()->init(tensor_info); + auto hog_norm_space_tensor = support::cpp14::make_unique(); + hog_norm_space_tensor->allocator()->init(tensor_info); // Manage intermediate buffers - _memory_group.manage(_hog_norm_space.get() + i); + _memory_group.manage(hog_norm_space_tensor.get()); // Initialize block normalization kernel - _block_norm_kernel[i].configure(_hog_space.get() + idx_orient_bin, _hog_norm_space.get() + i, multi_hog->model(idx_multi_hog)->info()); + auto block_norm_kernel = support::cpp14::make_unique(); + block_norm_kernel->configure(_hog_space[idx_orient_bin].get(), hog_norm_space_tensor.get(), multi_hog->model(idx_multi_hog)->info()); + _block_norm_kernel.emplace_back(std::move(block_norm_kernel)); + _hog_norm_space.emplace_back(std::move(hog_norm_space_tensor)); } // Allocate intermediate tensors for(size_t i = 0; i < _num_orient_bin_kernel; ++i) { - _hog_space[i].allocator()->allocate(); + _hog_space[i].get()->allocator()->allocate(); } // Configure HOG detector kernel @@ -208,7 +216,9 @@ void NEHOGMultiDetection::configure(ITensor *input, const IMultiHOG *multi_hog, { const size_t idx_block_norm = input_hog_detect[i]; - _hog_detect_kernel[i].configure(_hog_norm_space.get() + idx_block_norm, multi_hog->model(i), detection_windows, detection_window_strides->at(i), threshold, i); + auto hog_detect_kernel = support::cpp14::make_unique(); + hog_detect_kernel->configure(_hog_norm_space[idx_block_norm].get(), multi_hog->model(i), detection_windows, detection_window_strides->at(i), threshold, i); + _hog_detect_kernel.emplace_back(std::move(hog_detect_kernel)); } // Configure non maxima suppression kernel @@ -217,7 +227,7 @@ void NEHOGMultiDetection::configure(ITensor *input, const IMultiHOG *multi_hog, // Allocate intermediate tensors for(size_t i = 0; i < _num_block_norm_kernel; ++i) { - _hog_norm_space[i].allocator()->allocate(); + _hog_norm_space[i]->allocator()->allocate(); } } @@ -234,21 +244,21 @@ void NEHOGMultiDetection::run() _gradient_kernel.run(); // Run orientation binning kernel - for(size_t i = 0; i < _num_orient_bin_kernel; ++i) + for(auto &kernel : _orient_bin_kernel) { - NEScheduler::get().schedule(_orient_bin_kernel.get() + i, Window::DimY); + NEScheduler::get().schedule(kernel.get(), Window::DimY); } // Run block normalization kernel - for(size_t i = 0; i < _num_block_norm_kernel; ++i) + for(auto &kernel : _block_norm_kernel) { - NEScheduler::get().schedule(_block_norm_kernel.get() + i, Window::DimY); + NEScheduler::get().schedule(kernel.get(), Window::DimY); } // Run HOG detector kernel - for(size_t i = 0; i < _num_hog_detect_kernel; ++i) + for(auto &kernel : _hog_detect_kernel) { - _hog_detect_kernel[i].run(); + kernel->run(); } // Run non-maxima suppression kernel if enabled -- cgit v1.2.1