MLECO-929 Add Object Detection sample application using the public ArmNN C++ API

Change-Id: I14aa1b4b726212cffbefd6687203f93f936fa872
Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
diff --git a/samples/ObjectDetection/include/DetectedObject.hpp b/samples/ObjectDetection/include/DetectedObject.hpp
new file mode 100644
index 0000000..315ebcc
--- /dev/null
+++ b/samples/ObjectDetection/include/DetectedObject.hpp
@@ -0,0 +1,96 @@
+//
+// 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
\ No newline at end of file