From c577f2c6a3b4ddb6ba87a882723c53a248afbeba Mon Sep 17 00:00:00 2001 From: telsoa01 Date: Fri, 31 Aug 2018 09:22:23 +0100 Subject: Release 18.08 --- tests/ImagePreprocessor.hpp | 73 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 tests/ImagePreprocessor.hpp (limited to 'tests/ImagePreprocessor.hpp') diff --git a/tests/ImagePreprocessor.hpp b/tests/ImagePreprocessor.hpp new file mode 100644 index 0000000000..b8a473d92c --- /dev/null +++ b/tests/ImagePreprocessor.hpp @@ -0,0 +1,73 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// See LICENSE file in the project root for full license information. +// +#pragma once + +#include "ClassifierTestCaseData.hpp" + +#include +#include +#include +#include + +///Tf requires RGB images, normalized in range [0, 1] and resized using Bilinear algorithm + + +using ImageSet = std::pair; + +template +class ImagePreprocessor +{ +public: + using DataType = TDataType; + using TTestCaseData = ClassifierTestCaseData; + + enum DataFormat + { + NHWC, + NCHW + }; + + explicit ImagePreprocessor(const std::string& binaryFileDirectory, + unsigned int width, + unsigned int height, + const std::vector& imageSet, + float scale=1.0, + int32_t offset=0, + const std::array mean={{0, 0, 0}}, + const std::array stddev={{1, 1, 1}}, + DataFormat dataFormat=DataFormat::NHWC) + : m_BinaryDirectory(binaryFileDirectory) + , m_Height(height) + , m_Width(width) + , m_Scale(scale) + , m_Offset(offset) + , m_ImageSet(imageSet) + , m_Mean(mean) + , m_Stddev(stddev) + , m_DataFormat(dataFormat) + { + } + + std::unique_ptr GetTestCaseData(unsigned int testCaseId); + +private: + unsigned int GetNumImageElements() const { return 3 * m_Width * m_Height; } + unsigned int GetNumImageBytes() const { return sizeof(DataType) * GetNumImageElements(); } + unsigned int GetLabelAndResizedImageAsFloat(unsigned int testCaseId, + std::vector & result); + + std::string m_BinaryDirectory; + unsigned int m_Height; + unsigned int m_Width; + // Quantization parameters + float m_Scale; + int32_t m_Offset; + const std::vector m_ImageSet; + + const std::array m_Mean; + const std::array m_Stddev; + + DataFormat m_DataFormat; +}; -- cgit v1.2.1