1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 | #ifndef SAIGE_VISION_EXAMPLE_MAIN_H_
#define SAIGE_VISION_EXAMPLE_MAIN_H_
#include "SaigeVisionAPI.h"
#include <string>
#include <vector>
#include <map>
typedef enum Examples {
CLASSIFICATION,
DETECTION,
SEGMENTATION,
ANOMALY_DETECTION,
OCR,
IMAGE_ENHANCEMENT,
ROTATED_OBJECT_DETECTION,
CLASSIFICATION_DETECTION,
CLASSIFICATION_BATCH,
ANOMALY_DETECTION_BATCH,
SEGMENTATION_BATCH,
UTILITY,
ERROR_CODE,
CLASSIFICATION_WITH_META,
CLASSIFICATION_MULTIPAGE,
MULTI_THREAD_INFERENCE,
REPEAT_CREATE_DELETE,
VALIDATION_METRIC
};
static std::map<Examples, bool> exampleSelector = {{CLASSIFICATION, false},
{DETECTION, false},
{SEGMENTATION, false},
{ANOMALY_DETECTION, false},
{OCR, false},
{IMAGE_ENHANCEMENT, false},
{ROTATED_OBJECT_DETECTION, false},
{CLASSIFICATION_DETECTION, false},
{CLASSIFICATION_BATCH, false},
{ANOMALY_DETECTION_BATCH, false},
{SEGMENTATION_BATCH, false},
{UTILITY, false},
{ERROR_CODE, false},
{CLASSIFICATION_WITH_META, false},
{CLASSIFICATION_MULTIPAGE, false},
{MULTI_THREAD_INFERENCE, false},
{REPEAT_CREATE_DELETE, false},
{VALIDATION_METRIC, false}};
void UpdateExampleSelectorFromArgv(const char* arg1);
namespace cls {
int run();
int run_batch();
int run_with_meta();
int run_multipage();
} // namespace cls
namespace det {
int run();
}
namespace seg {
int run();
int run_batch();
} // namespace seg
namespace iad {
int run();
int run_batch();
} // namespace iad
namespace ocr {
int run();
}
namespace rod {
int run();
}
namespace cls_det {
int run();
}
namespace ien {
int run();
}
namespace err {
int run();
}
namespace util {
int run();
}
namespace mul {
int run_multi_models();
}
namespace repeat {
int run();
}
namespace valmetric {
int run();
}
std::string get_env_var(const std::string& key);
std::string get_runtime_base();
// 예제 실행 인자. 등록한 변수의 현재 값을 기본값으로 보여주고 "Default Run Mode(Y/n)" 에서
// n 을 입력하면 항목별로 새 값을 입력받는다. 빈 입력은 기본값을 유지한다.
// ExampleArgs().Add("data_dir", dataDir).Add("verbosity", verbosity).Prompt();
class ExampleArgs {
public:
ExampleArgs& Add(const std::string& name, std::string& value, const std::string& help = "");
ExampleArgs& Add(const std::string& name, int& value, const std::string& help = "");
ExampleArgs& Add(const std::string& name, bool& value, const std::string& help = "");
void Prompt();
private:
struct Item {
std::string name;
std::string help;
std::string* str = nullptr;
int* num = nullptr;
bool* flag = nullptr;
};
std::vector<Item> items_;
};
#endif
|