| // |
| // Copyright © 2017 Arm Ltd. All rights reserved. |
| // SPDX-License-Identifier: MIT |
| // |
| #pragma once |
| |
| #include "ClassifierTestCaseData.hpp" |
| |
| #include <array> |
| #include <string> |
| #include <vector> |
| #include <memory> |
| |
| /// Caffe requires BGR images, not normalized, mean adjusted and resized using smooth resize of STB library |
| |
| using ImageSet = std::pair<const std::string, unsigned int>; |
| |
| class CaffePreprocessor |
| { |
| public: |
| using DataType = float; |
| using TTestCaseData = ClassifierTestCaseData<DataType>; |
| |
| explicit CaffePreprocessor(const std::string& binaryFileDirectory, |
| unsigned int width = 227, |
| unsigned int height = 227, |
| const std::vector<ImageSet>& imageSet = std::vector<ImageSet>()); |
| std::unique_ptr<TTestCaseData> 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<float, 3> m_MeanBgr = {{104.007965f, 116.669472f, 122.675102f}}; |
| const std::vector<ImageSet> m_ImageSet; |
| }; |