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