Cpp-Processing
CompilationParams.h
1 #pragma once
2 #include <ostream>
3 #include <tuple>
4 #include <map>
5 #include <any>
6 #include <string>
7 #include <iostream>
8 #include <algorithm>
9 
10 
11 namespace celantur {
28 struct MinOptMaxDims {
29  std::tuple<int, int, int> values;
30  static MinOptMaxDims from_tuple(std::tuple<int, int, int>&& in) {
31  return MinOptMaxDims {
32  .values = in
33  };
34  }
35 };
36 
45 enum class OptimisationLevel {
46  Low,
47  Medium,
48  Full
49 };
50 
59 enum class CompilePrecision {
60  FP32,
61  FP16,
62  INT8
63 };
64 
65 
67 enum class InferenceEnginePluginId {
68  None,
69  TensorRT,
70  ONNX,
71  OpenVINO,
72  Total
73 };
75 
81 enum class LogSeverity {
82  Error,
83  Warning,
84  Debug
85 };
86 
94  float face{0.5f};
95  float license_plate{0.5f};
96  float person{0.5f};
97  float vehicle{0.5f};
98 
99  float min() const {
100  return std::min({face, license_plate, person, vehicle});
101  }
102 };
103 
108 typedef std::map<std::string, std::any > InferenceEnginePluginSettings;
109 
114 typedef std::map<std::string, std::any > InferenceEnginePluginCompileSettings;
121 std::istream& operator>>(std::istream& in, celantur::OptimisationLevel& opt_level);
122 std::ostream& operator<<(std::ostream& out, const celantur::OptimisationLevel& opt_level);
123 std::istream& operator>>(std::istream& in, celantur::CompilePrecision& precision);
124 std::ostream& operator<<(std::ostream& out, const celantur::CompilePrecision& precision);
125 std::istream& operator>>(std::istream& in, celantur::MinOptMaxDims& dims);
126 std::ostream& operator<<(std::ostream& out, const celantur::MinOptMaxDims& dims);
127 std::istream& operator>>(std::istream& in, celantur::InferenceEnginePluginId& plugin_id);
128 std::ostream& operator<<(std::ostream& out, const celantur::InferenceEnginePluginId& plugin_id);
129 std::istream& operator>>(std::istream& in, celantur::LogSeverity& log_severity);
130 std::ostream& operator<<(std::ostream& out, const celantur::LogSeverity& log_severity);
131 std::istream& operator>>(std::istream& in, celantur::MinOptMaxDims& dims);
132 std::ostream& operator<<(std::ostream& out, const celantur::MinOptMaxDims& dims);
135 }
136 
137 
138 
std::map< std::string, std::any > InferenceEnginePluginCompileSettings
The settings for compiling the model for the inference engine. The settings are passed as a map of ke...
Definition: CompilationParams.h:114
std::map< std::string, std::any > InferenceEnginePluginSettings
The settings for the inference engine used during runtime. The settings are passed as a map of key-va...
Definition: CompilationParams.h:108
std::istream & operator>>(std::istream &os, celantur::BlurType &blur_type)
Definition: CommonParameters.cpp:23
std::ostream & operator<<(std::ostream &os, const celantur::BlurType &blur_type)
Definition: CommonParameters.cpp:5
LogSeverity
Enumeration for different log severity levels.
Definition: CompilationParams.h:81
OptimisationLevel
Enumeration for different levels of optimization. This enum is used to specify the desired level of o...
Definition: CompilationParams.h:45
CompilePrecision
Enumeration for different precision levels during model compilation. This enum is used to specify the...
Definition: CompilationParams.h:59
Definition: CelanturDetection.h:6
A tuple representing minimum, optimal, and maximum dimensions. This tuple is used to specify the rang...
Definition: CompilationParams.h:28
std::tuple< int, int, int > values
Definition: CompilationParams.h:29
static MinOptMaxDims from_tuple(std::tuple< int, int, int > &&in)
Definition: CompilationParams.h:30
Structure to hold model threshold values for different object classes. This structure contains thresh...
Definition: CompilationParams.h:93
float face
Definition: CompilationParams.h:94
float min() const
Definition: CompilationParams.h:99
float person
Definition: CompilationParams.h:96
float license_plate
Definition: CompilationParams.h:95
float vehicle
Definition: CompilationParams.h:97