xref: /aosp_15_r20/external/armnn/samples/ObjectDetection/include/IDetectionResultDecoder.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
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