#ifndef __CLIP_CFG_H #define __CLIP_CFG_H #include "MAS_AlgoDef.h" #define NAMESPACE_CLIP_BEGIN namespace clip { #define NAMESPACE_CLIP_END }; NAMESPACE_MAS_BEGIN NAMESPACE_CLIP_BEGIN struct ClipBuild { TZ_INT gpu_id; std::string model_path; std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiled(document, "gpu_id", gpu_id); tzc::json::setFiled(document, "model_path", model_path); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string& json, ClipBuild& value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if (document.HasParseError()) { return FALSE; } value.gpu_id = tzc::json::getFiled(document, "gpu_id", 0); value.model_path = tzc::json::getFiled(document, "model_path", ""); return TRUE; } }; struct ClipCfg{ TZ_INT freq; std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiled(document, "freq", freq); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string& json, ClipCfg& value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if (document.HasParseError()) { return FALSE; } value.freq = tzc::json::getFiled(document, "freq", 0); return TRUE; } }; struct OutputData { TZ_FLOAT val; std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiled(document, "val", val); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string& json, OutputData& value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if (document.HasParseError()) { return FALSE; } value.val = tzc::json::getFiled(document, "val", 0.0f); return TRUE; } }; struct AbandObjBox { TZ_DOUBLE x; TZ_DOUBLE y; TZ_DOUBLE w; TZ_DOUBLE h; AbandObjBox() : x(0.0), y(0.0), w(0.0), h(0.0) {} AbandObjBox(const AbandObjBox& box) : x(box.x), y(box.y), w(box.w), h(box.h) {} std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiled(document, "x", x); tzc::json::setFiled(document, "y", y); tzc::json::setFiled(document, "w", w); tzc::json::setFiled(document, "h", h); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string& json, AbandObjBox& value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if (document.HasParseError()) { return FALSE; } value.x = tzc::json::getFiled(document, "x", 0.0); value.y = tzc::json::getFiled(document, "y", 0.0); value.w = tzc::json::getFiled(document, "w", 0.0); value.h = tzc::json::getFiled(document, "h", 0.0); return TRUE; } }; struct ClipDetectResult{ std::vector boxes; std::vector output_data; std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiledArrayObject(document, "boxes", boxes); tzc::json::setFiledArrayObject(document, "output_data", output_data); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string& json, ClipDetectResult& value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if(document.HasParseError()) { return FALSE; } TZ_BOOL rst = TRUE; rst &= tzc::json::ConverArrayObject(document, "boxes", value.boxes); rst &= tzc::json::ConverArrayObject(document, "output_data", value.output_data); return rst; } }; NAMESPACE_CLIP_END NAMESPACE_MAS_END #endif