// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "ClassifierTestCaseData.hpp" #include #include #include #include /// Caffe requires BGR images, not normalized, mean adjusted and resized using smooth resize of STB library using ImageSet = std::pair; class CaffePreprocessor { public: using DataType = float; using TTestCaseData = ClassifierTestCaseData; explicit CaffePreprocessor(const std::string& binaryFileDirectory, unsigned int width = 227, unsigned int height = 227, const std::vector& imageSet = std::vector()); std::unique_ptr GetTestCaseData(unsigned int testCaseId); private: unsigned int GetNumImageElements() const { return 3 * m_Width * m_Height; } unsigned int GetNumImageBytes() const { return 4 * GetNumImageElements(); } std::string m_BinaryDirectory; unsigned int m_Height; unsigned int m_Width; // Mean value of the database [B, G, R]. const std::array m_MeanBgr = {{104.007965f, 116.669472f, 122.675102f}}; const std::vector m_ImageSet; };