blob: ee3afb5788dd62240d974c57e76e6e8da71eee12 [file] [log] [blame]
Aron Virginas-Tard089b742019-01-29 11:09:51 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
7#include <string>
8#include <utility>
9
10namespace
11{
12
13struct BoundingBox
14{
15 BoundingBox()
16 : BoundingBox(0.0f, 0.0f, 0.0f, 0.0f)
17 {}
18
19 BoundingBox(float xMin, float yMin, float xMax, float yMax)
20 : m_XMin(xMin)
21 , m_YMin(yMin)
22 , m_XMax(xMax)
23 , m_YMax(yMax)
24 {}
25
26 float m_XMin;
27 float m_YMin;
28 float m_XMax;
29 float m_YMax;
30};
31
32struct DetectedObject
33{
Narumol Prangnawarat4628d052019-02-25 17:26:05 +000034 DetectedObject(float detectedClass,
Aron Virginas-Tard089b742019-01-29 11:09:51 +000035 const BoundingBox& boundingBox,
36 float confidence)
37 : m_Class(detectedClass)
38 , m_BoundingBox(boundingBox)
39 , m_Confidence(confidence)
40 {}
41
Narumol Prangnawarat4628d052019-02-25 17:26:05 +000042 bool operator<(const DetectedObject& other) const
43 {
44 return m_Confidence < other.m_Confidence ||
45 (m_Confidence == other.m_Confidence && m_Class < other.m_Class);
46 }
47
48 float m_Class;
Aron Virginas-Tard089b742019-01-29 11:09:51 +000049 BoundingBox m_BoundingBox;
50 float m_Confidence;
51};
52
Narumol Prangnawarat4628d052019-02-25 17:26:05 +000053using ObjectDetectionInput = std::pair<std::string, std::vector<DetectedObject>>;
Aron Virginas-Tard089b742019-01-29 11:09:51 +000054
55} // anonymous namespace