diff options
author | Kwanghoon Son <k.son@samsung.com> | 2022-08-29 02:44:00 -0400 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2022-09-02 17:09:25 +0900 |
commit | b693ad22d1587459d8494eb092662c8ddca99599 (patch) | |
tree | ff2d5104bd35c84b48aa070f89b0764c75d0fa63 | |
parent | 72bf17c96c7c0e0b18596dc9ecc76d80b6da5012 (diff) | |
download | mediavision-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.h | 10 | ||||
-rw-r--r-- | mv_machine_learning/inference/src/BoxInfo.cpp | 25 |
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); |