blob: 315ebccf075d43476b665df510302f2ce31bd942 [file] [log] [blame]
//
// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
#pragma once
#include "BoundingBox.hpp"
#include <string>
#include <vector>
namespace od
{
/**
* An object detection network inference result decoded data representation.
*/
class DetectedObject
{
public:
DetectedObject();
/**
* Creates detection with given parameters.
*
* @param id - class id
* @param label - human readable text class label
* @param boundingBox - rectangular detection coordinates
* @param score - detection score/probability
*/
DetectedObject(unsigned int id,
std::string label,
const BoundingBox& boundingBox,
float score);
~DetectedObject() = default;
/**
* Get class id
* @return id
*/
unsigned int GetId() const;
/**
* Get human readable text class label
* @return label
*/
const std::string& GetLabel() const;
/**
* Get rectangular detection coordinates
* @return detection coordinates
*/
const BoundingBox& GetBoundingBox() const;
/**
* Get detection score
* @return score
*/
float GetScore() const;
/**
* Set class id
* @param[in] id - class id
*/
void SetId(unsigned int id);
/**
* Set class label
* @param[in] label - human readable text class label
*/
void SetLabel(const std::string& label);
/**
* Set detection coordinates
* @param[in] boundingBox detection coordinates
*/
void SetBoundingBox(const BoundingBox& boundingBox);
/**
* Set detection score
* @param[in] score - detection score
*/
void SetScore(float score);
private:
unsigned int m_Id;
std::string m_Label;
BoundingBox m_BoundingBox;
float m_Score;
};
using DetectedObjects = std::vector<DetectedObject>;
}// namespace od