/* * Copyright (c) 2022 Arm Limited. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef BASE_PROCESSING_HPP #define BASE_PROCESSING_HPP #include namespace arm { namespace app { /** * @brief Base class exposing pre-processing API. * Use cases should provide their own PreProcessing class that inherits from this one. * All steps required to take raw input data and populate tensors ready for inference * should be handled. */ class BasePreProcess { public: virtual ~BasePreProcess() = default; /** * @brief Should perform pre-processing of 'raw' input data and load it into * TFLite Micro input tensors ready for inference * @param[in] input Pointer to the data that pre-processing will work on. * @param[in] inputSize Size of the input data. * @return true if successful, false otherwise. **/ virtual bool DoPreProcess(const void* input, size_t inputSize) = 0; }; /** * @brief Base class exposing post-processing API. * Use cases should provide their own PostProcessing class that inherits from this one. * All steps required to take inference output and populate results vectors should be handled. */ class BasePostProcess { public: virtual ~BasePostProcess() = default; /** * @brief Should perform post-processing of the result of inference then populate * populate result data for any later use. * @return true if successful, false otherwise. **/ virtual bool DoPostProcess() = 0; }; } /* namespace app */ } /* namespace arm */ #endif /* BASE_PROCESSING_HPP */