|
|
@@ -20,9 +20,15 @@
|
|
|
|
|
|
namespace PaddleX {
|
|
|
|
|
|
+/*
|
|
|
+ * @brief
|
|
|
+ * This class represents mask in instance segmentation tasks.
|
|
|
+ * */
|
|
|
template <class T>
|
|
|
struct Mask {
|
|
|
+ // raw data of mask
|
|
|
std::vector<T> data;
|
|
|
+ // the shape of mask
|
|
|
std::vector<int> shape;
|
|
|
void clear() {
|
|
|
data.clear();
|
|
|
@@ -30,19 +36,34 @@ struct Mask {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * @brief
|
|
|
+ * This class represents target box in detection or instance segmentation tasks.
|
|
|
+ * */
|
|
|
struct Box {
|
|
|
int category_id;
|
|
|
+ // category label this box belongs to
|
|
|
std::string category;
|
|
|
+ // confidence score
|
|
|
float score;
|
|
|
std::vector<float> coordinate;
|
|
|
Mask<float> mask;
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * @brief
|
|
|
+ * This class is prediction result based class.
|
|
|
+ * */
|
|
|
class BaseResult {
|
|
|
public:
|
|
|
+ // model type
|
|
|
std::string type = "base";
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * @brief
|
|
|
+ * This class represent classification result.
|
|
|
+ * */
|
|
|
class ClsResult : public BaseResult {
|
|
|
public:
|
|
|
int category_id;
|
|
|
@@ -51,17 +72,28 @@ class ClsResult : public BaseResult {
|
|
|
std::string type = "cls";
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * @brief
|
|
|
+ * This class represent detection or instance segmentation result.
|
|
|
+ * */
|
|
|
class DetResult : public BaseResult {
|
|
|
public:
|
|
|
+ // target boxes
|
|
|
std::vector<Box> boxes;
|
|
|
int mask_resolution;
|
|
|
std::string type = "det";
|
|
|
void clear() { boxes.clear(); }
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * @brief
|
|
|
+ * This class represent segmentation result.
|
|
|
+ * */
|
|
|
class SegResult : public BaseResult {
|
|
|
public:
|
|
|
+ // represent label of each pixel on image matrix
|
|
|
Mask<int64_t> label_map;
|
|
|
+ // represent score of each pixel on image matrix
|
|
|
Mask<float> score_map;
|
|
|
std::string type = "seg";
|
|
|
void clear() {
|