aboutsummaryrefslogtreecommitdiff
path: root/samples/ObjectDetection/include/YoloResultDecoder.hpp
diff options
context:
space:
mode:
authorÉanna Ó Catháin <eanna.ocathain@arm.com>2020-09-14 17:36:49 +0100
committerJim Flynn <jim.flynn@arm.com>2020-09-14 18:40:01 +0000
commit919c14ef132986aa1514b2070ce6d19b5579a6ab (patch)
tree5c281e02a083768f65871cb861ab9b32ac7d8767 /samples/ObjectDetection/include/YoloResultDecoder.hpp
parent589e3e81a86c83456580e112978bf7a0ed5f43ac (diff)
downloadarmnn-919c14ef132986aa1514b2070ce6d19b5579a6ab.tar.gz
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>
Diffstat (limited to 'samples/ObjectDetection/include/YoloResultDecoder.hpp')
-rw-r--r--samples/ObjectDetection/include/YoloResultDecoder.hpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/samples/ObjectDetection/include/YoloResultDecoder.hpp b/samples/ObjectDetection/include/YoloResultDecoder.hpp
new file mode 100644
index 0000000000..98435e3cc9
--- /dev/null
+++ b/samples/ObjectDetection/include/YoloResultDecoder.hpp
@@ -0,0 +1,43 @@
+//
+// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include "Types.hpp"
+#include "ArmnnNetworkExecutor.hpp"
+#include "DetectedObject.hpp"
+#include "IDetectionResultDecoder.hpp"
+#include "NonMaxSuppression.hpp"
+
+namespace od
+{
+
+class YoloResultDecoder : public IDetectionResultDecoder
+{
+
+public:
+ /**
+ * Constructs Yolo V3 inference reuslts decoder.
+ *
+ * @param NMSThreshold non max suppression threshold
+ * @param ClsThreshold class probability threshold
+ * @param ObjectThreshold detected object score threshold
+ */
+ YoloResultDecoder(float NMSThreshold, float ClsThreshold, float ObjectThreshold);
+
+ DetectedObjects Decode(const InferenceResults& results,
+ const Size& outputFrameSize,
+ const Size& resizedFrameSize,
+ const std::vector <std::string>& labels) override;
+private:
+ float m_NmsThreshold;
+ float m_ClsThreshold;
+ float m_objectThreshold;
+
+ unsigned int m_boxElements = 4U;
+ unsigned int m_confidenceElements = 1U;
+ unsigned int m_numClasses = 80U;
+ unsigned int m_numBoxes = 2535U;
+};
+}// namespace od \ No newline at end of file