summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKwanghoon Son <k.son@samsung.com>2022-08-29 02:44:00 -0400
committerInki Dae <inki.dae@samsung.com>2022-09-02 17:09:25 +0900
commitb693ad22d1587459d8494eb092662c8ddca99599 (patch)
treeff2d5104bd35c84b48aa070f89b0764c75d0fa63
parent72bf17c96c7c0e0b18596dc9ecc76d80b6da5012 (diff)
downloadmediavision-b693ad22d1587459d8494eb092662c8ddca99599.tar.gz
mediavision-b693ad22d1587459d8494eb092662c8ddca99599.tar.bz2
mediavision-b693ad22d1587459d8494eb092662c8ddca99599.zip
Change box name to vector in meta json
outputmetadata box name was single string, but needs to change to handle yolo models.(multiple names) `before` "box" : { "name" : "some name", ... } `after` "box" : { "name" : ["some name"], ... } Change-Id: Ia76001c2670c0a1fae272c31ba56dfc0cbc591de Signed-off-by: Kwanghoon Son <k.son@samsung.com>
-rw-r--r--mv_machine_learning/inference/include/BoxInfo.h10
-rw-r--r--mv_machine_learning/inference/src/BoxInfo.cpp25
2 files changed, 26 insertions, 9 deletions
diff --git a/mv_machine_learning/inference/include/BoxInfo.h b/mv_machine_learning/inference/include/BoxInfo.h
index 783342a4..d4d6c6ab 100644
--- a/mv_machine_learning/inference/include/BoxInfo.h
+++ b/mv_machine_learning/inference/include/BoxInfo.h
@@ -51,7 +51,7 @@ struct Number
class BoxInfo
{
private:
- std::string name;
+ std::vector<std::string> names;
DimInfo dimInfo;
inference_box_type_e type; // 0:L-T-R-B, 1: Cx-Cy-W-H
std::vector<int> order; // Order based on box type
@@ -69,7 +69,7 @@ private:
public:
BoxInfo()
- : name()
+ : names()
, dimInfo()
, type(INFERENCE_BOX_TYPE_ORIGIN_LEFTTOP)
, order()
@@ -98,10 +98,8 @@ public:
~BoxInfo() = default;
- std::string GetName()
- {
- return name;
- }
+ std::string GetName();
+
DimInfo GetDimInfo()
{
return dimInfo;
diff --git a/mv_machine_learning/inference/src/BoxInfo.cpp b/mv_machine_learning/inference/src/BoxInfo.cpp
index 2c447571..1e57a19b 100644
--- a/mv_machine_learning/inference/src/BoxInfo.cpp
+++ b/mv_machine_learning/inference/src/BoxInfo.cpp
@@ -16,9 +16,19 @@
*/
#include <BoxInfo.h>
+#include <mv_private.h>
using namespace mediavision::inference::box;
+std::string BoxInfo::GetName()
+{
+ // OutputMetadata needs empty sting
+ if (names.empty())
+ return "";
+
+ return names[0];
+}
+
int BoxInfo::ParseBox(JsonObject *root)
{
LOGI("ENTER");
@@ -30,10 +40,19 @@ int BoxInfo::ParseBox(JsonObject *root)
JsonObject *pObject = json_object_get_object_member(root, "box");
- name = json_object_get_string_member(pObject, "name");
- LOGI("layer: %s", name.c_str());
+ JsonArray *array = json_object_get_array_member(pObject, "name");
+ MEDIA_VISION_NULL_ARG_CHECK(array);
+
+ unsigned int elements1 = json_array_get_length(array);
+ MEDIA_VISION_CHECK_CONDITION(elements1 > 0,
+ MEDIA_VISION_ERROR_INVALID_PARAMETER,
+ "No name on meta file");
+
+ for (unsigned int elem1 = 0; elem1 < elements1; ++elem1) {
+ names.push_back(json_array_get_string_element(array, elem1));
+ }
- JsonArray *array = json_object_get_array_member(pObject, "index");
+ array = json_object_get_array_member(pObject, "index");
unsigned int elements2 = json_array_get_length(array);
LOGI("range dim: size[%u]", elements2);