ClipCfg.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. #ifndef __CLIP_CFG_H
  2. #define __CLIP_CFG_H
  3. #include "MAS_AlgoDef.h"
  4. #define NAMESPACE_CLIP_BEGIN namespace clip {
  5. #define NAMESPACE_CLIP_END };
  6. NAMESPACE_MAS_BEGIN
  7. NAMESPACE_CLIP_BEGIN
  8. struct ClipBuild {
  9. TZ_INT gpu_id;
  10. std::string model_path;
  11. std::string toJson() const
  12. {
  13. tzc::json::JsonDoc document;
  14. document.SetObject();
  15. tzc::json::setFiled(document, "gpu_id", gpu_id);
  16. tzc::json::setFiled(document, "model_path", model_path);
  17. return tzc::json::ValueToJson(document);
  18. }
  19. static TZ_BOOL fromJson(const std::string& json, ClipBuild& value)
  20. {
  21. tzc::json::JsonDoc document;
  22. document.Parse(json.c_str());
  23. if (document.HasParseError())
  24. {
  25. return FALSE;
  26. }
  27. value.gpu_id = tzc::json::getFiled(document, "gpu_id", 0);
  28. value.model_path = tzc::json::getFiled(document, "model_path", "");
  29. return TRUE;
  30. }
  31. };
  32. struct ClipCfg{
  33. TZ_INT freq;
  34. std::string toJson() const
  35. {
  36. tzc::json::JsonDoc document;
  37. document.SetObject();
  38. tzc::json::setFiled(document, "freq", freq);
  39. return tzc::json::ValueToJson(document);
  40. }
  41. static TZ_BOOL fromJson(const std::string& json, ClipCfg& value)
  42. {
  43. tzc::json::JsonDoc document;
  44. document.Parse(json.c_str());
  45. if (document.HasParseError())
  46. {
  47. return FALSE;
  48. }
  49. value.freq = tzc::json::getFiled(document, "freq", 0);
  50. return TRUE;
  51. }
  52. };
  53. struct OutputData
  54. {
  55. TZ_FLOAT val;
  56. std::string toJson() const
  57. {
  58. tzc::json::JsonDoc document;
  59. document.SetObject();
  60. tzc::json::setFiled(document, "val", val);
  61. return tzc::json::ValueToJson(document);
  62. }
  63. static TZ_BOOL fromJson(const std::string& json, OutputData& value)
  64. {
  65. tzc::json::JsonDoc document;
  66. document.Parse(json.c_str());
  67. if (document.HasParseError())
  68. {
  69. return FALSE;
  70. }
  71. value.val = tzc::json::getFiled(document, "val", 0.0f);
  72. return TRUE;
  73. }
  74. };
  75. struct AbandObjBox {
  76. TZ_DOUBLE x;
  77. TZ_DOUBLE y;
  78. TZ_DOUBLE w;
  79. TZ_DOUBLE h;
  80. AbandObjBox() : x(0.0), y(0.0), w(0.0), h(0.0) {}
  81. AbandObjBox(const AbandObjBox& box)
  82. : x(box.x), y(box.y), w(box.w), h(box.h) {}
  83. std::string toJson() const
  84. {
  85. tzc::json::JsonDoc document;
  86. document.SetObject();
  87. tzc::json::setFiled(document, "x", x);
  88. tzc::json::setFiled(document, "y", y);
  89. tzc::json::setFiled(document, "w", w);
  90. tzc::json::setFiled(document, "h", h);
  91. return tzc::json::ValueToJson(document);
  92. }
  93. static TZ_BOOL fromJson(const std::string& json, AbandObjBox& value)
  94. {
  95. tzc::json::JsonDoc document;
  96. document.Parse(json.c_str());
  97. if (document.HasParseError())
  98. {
  99. return FALSE;
  100. }
  101. value.x = tzc::json::getFiled(document, "x", 0.0);
  102. value.y = tzc::json::getFiled(document, "y", 0.0);
  103. value.w = tzc::json::getFiled(document, "w", 0.0);
  104. value.h = tzc::json::getFiled(document, "h", 0.0);
  105. return TRUE;
  106. }
  107. };
  108. struct ClipDetectResult{
  109. std::vector<AbandObjBox> boxes;
  110. std::vector<OutputData> output_data;
  111. std::string toJson() const
  112. {
  113. tzc::json::JsonDoc document;
  114. document.SetObject();
  115. tzc::json::setFiledArrayObject(document, "boxes", boxes);
  116. tzc::json::setFiledArrayObject(document, "output_data", output_data);
  117. return tzc::json::ValueToJson(document);
  118. }
  119. static TZ_BOOL fromJson(const std::string& json, ClipDetectResult& value)
  120. {
  121. tzc::json::JsonDoc document;
  122. document.Parse(json.c_str());
  123. if(document.HasParseError())
  124. {
  125. return FALSE;
  126. }
  127. TZ_BOOL rst = TRUE;
  128. rst &= tzc::json::ConverArrayObject(document, "boxes", value.boxes);
  129. rst &= tzc::json::ConverArrayObject(document, "output_data", value.output_data);
  130. return rst;
  131. }
  132. };
  133. NAMESPACE_CLIP_END
  134. NAMESPACE_MAS_END
  135. #endif