1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #pragma once 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker #include "DetectedObject.hpp" 9*89c4ff92SAndroid Build Coastguard Worker #include "Types.hpp" 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Worker #include <vector> 12*89c4ff92SAndroid Build Coastguard Worker 13*89c4ff92SAndroid Build Coastguard Worker namespace od 14*89c4ff92SAndroid Build Coastguard Worker { 15*89c4ff92SAndroid Build Coastguard Worker 16*89c4ff92SAndroid Build Coastguard Worker class IDetectionResultDecoder 17*89c4ff92SAndroid Build Coastguard Worker { 18*89c4ff92SAndroid Build Coastguard Worker public: 19*89c4ff92SAndroid Build Coastguard Worker /** 20*89c4ff92SAndroid Build Coastguard Worker * @brief Returns decoded detected objects from a network model. 21*89c4ff92SAndroid Build Coastguard Worker * @desc Outputs 4 vectors: bounding boxes, label, probabilities & number of detections. 22*89c4ff92SAndroid Build Coastguard Worker * This function decodes network model output and converts it to expected format. 23*89c4ff92SAndroid Build Coastguard Worker * 24*89c4ff92SAndroid Build Coastguard Worker * @param[in] results Vector of outputs from a model. 25*89c4ff92SAndroid Build Coastguard Worker * @param[in] outputFrameSize Struct containing height & width of output frame that is displayed. 26*89c4ff92SAndroid Build Coastguard Worker * @param[in] resizedFrameSize Struct containing height & width of resized input frame before padding 27*89c4ff92SAndroid Build Coastguard Worker * and inference. 28*89c4ff92SAndroid Build Coastguard Worker * @param[in] labels Vector of network labels. 29*89c4ff92SAndroid Build Coastguard Worker * @param[in] detectionScoreThreshold float value for the detection score threshold. 30*89c4ff92SAndroid Build Coastguard Worker * 31*89c4ff92SAndroid Build Coastguard Worker * @return Vector of decoded detected objects. 32*89c4ff92SAndroid Build Coastguard Worker */ 33*89c4ff92SAndroid Build Coastguard Worker virtual DetectedObjects Decode(const common::InferenceResults<float>& results, 34*89c4ff92SAndroid Build Coastguard Worker const common::Size& outputFrameSize, 35*89c4ff92SAndroid Build Coastguard Worker const common::Size& resizedFrameSize, 36*89c4ff92SAndroid Build Coastguard Worker const std::vector<std::string>& labels) = 0; 37*89c4ff92SAndroid Build Coastguard Worker 38*89c4ff92SAndroid Build Coastguard Worker }; 39*89c4ff92SAndroid Build Coastguard Worker }// namespace od