xref: /aosp_15_r20/external/armnn/tests/ObjectDetectionCommon.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker #pragma once
6*89c4ff92SAndroid Build Coastguard Worker 
7*89c4ff92SAndroid Build Coastguard Worker #include <string>
8*89c4ff92SAndroid Build Coastguard Worker #include <utility>
9*89c4ff92SAndroid Build Coastguard Worker 
10*89c4ff92SAndroid Build Coastguard Worker namespace
11*89c4ff92SAndroid Build Coastguard Worker {
12*89c4ff92SAndroid Build Coastguard Worker 
13*89c4ff92SAndroid Build Coastguard Worker struct BoundingBox
14*89c4ff92SAndroid Build Coastguard Worker {
BoundingBox__anon7b21a3a90111::BoundingBox15*89c4ff92SAndroid Build Coastguard Worker     BoundingBox()
16*89c4ff92SAndroid Build Coastguard Worker         : BoundingBox(0.0f, 0.0f, 0.0f, 0.0f)
17*89c4ff92SAndroid Build Coastguard Worker     {}
18*89c4ff92SAndroid Build Coastguard Worker 
BoundingBox__anon7b21a3a90111::BoundingBox19*89c4ff92SAndroid Build Coastguard Worker     BoundingBox(float xMin, float yMin, float xMax, float yMax)
20*89c4ff92SAndroid Build Coastguard Worker         : m_XMin(xMin)
21*89c4ff92SAndroid Build Coastguard Worker         , m_YMin(yMin)
22*89c4ff92SAndroid Build Coastguard Worker         , m_XMax(xMax)
23*89c4ff92SAndroid Build Coastguard Worker         , m_YMax(yMax)
24*89c4ff92SAndroid Build Coastguard Worker     {}
25*89c4ff92SAndroid Build Coastguard Worker 
26*89c4ff92SAndroid Build Coastguard Worker     float m_XMin;
27*89c4ff92SAndroid Build Coastguard Worker     float m_YMin;
28*89c4ff92SAndroid Build Coastguard Worker     float m_XMax;
29*89c4ff92SAndroid Build Coastguard Worker     float m_YMax;
30*89c4ff92SAndroid Build Coastguard Worker };
31*89c4ff92SAndroid Build Coastguard Worker 
32*89c4ff92SAndroid Build Coastguard Worker struct DetectedObject
33*89c4ff92SAndroid Build Coastguard Worker {
DetectedObject__anon7b21a3a90111::DetectedObject34*89c4ff92SAndroid Build Coastguard Worker     DetectedObject(float detectedClass,
35*89c4ff92SAndroid Build Coastguard Worker                    const BoundingBox& boundingBox,
36*89c4ff92SAndroid Build Coastguard Worker                    float confidence)
37*89c4ff92SAndroid Build Coastguard Worker         : m_Class(detectedClass)
38*89c4ff92SAndroid Build Coastguard Worker         , m_BoundingBox(boundingBox)
39*89c4ff92SAndroid Build Coastguard Worker         , m_Confidence(confidence)
40*89c4ff92SAndroid Build Coastguard Worker     {}
41*89c4ff92SAndroid Build Coastguard Worker 
operator <__anon7b21a3a90111::DetectedObject42*89c4ff92SAndroid Build Coastguard Worker     bool operator<(const DetectedObject& other) const
43*89c4ff92SAndroid Build Coastguard Worker     {
44*89c4ff92SAndroid Build Coastguard Worker         return m_Confidence < other.m_Confidence ||
45*89c4ff92SAndroid Build Coastguard Worker             (m_Confidence == other.m_Confidence && m_Class < other.m_Class);
46*89c4ff92SAndroid Build Coastguard Worker     }
47*89c4ff92SAndroid Build Coastguard Worker 
48*89c4ff92SAndroid Build Coastguard Worker     float        m_Class;
49*89c4ff92SAndroid Build Coastguard Worker     BoundingBox  m_BoundingBox;
50*89c4ff92SAndroid Build Coastguard Worker     float        m_Confidence;
51*89c4ff92SAndroid Build Coastguard Worker };
52*89c4ff92SAndroid Build Coastguard Worker 
53*89c4ff92SAndroid Build Coastguard Worker using ObjectDetectionInput = std::pair<std::string, std::vector<DetectedObject>>;
54*89c4ff92SAndroid Build Coastguard Worker 
55*89c4ff92SAndroid Build Coastguard Worker } // anonymous namespace